[grass] 01/05: Imported Upstream version 7.0.2~rc2

Sebastiaan Couwenberg sebastic at moszumanska.debian.org
Tue Nov 3 12:05:41 UTC 2015


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch experimental
in repository grass.

commit 83308c9dc39fd91301da885353d7a6d5bc576c81
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Tue Nov 3 12:11:12 2015 +0100

    Imported Upstream version 7.0.2~rc2
---
 ChangeLog_7.0.2RC1.gz                              | Bin 807802 -> 0 bytes
 ChangeLog_7.0.2RC2.gz                              | Bin 0 -> 809698 bytes
 db/drivers/dbf/column.c                            |   2 +-
 db/drivers/ogr/select.c                            |   2 +-
 db/drivers/postgres/db.c                           |   4 +-
 doc/howto_release.txt                              |  10 +--
 gui/wxpython/core/workspace.py                     |   5 ++
 gui/wxpython/docs/wxGUI.iscatt.html                |   4 +-
 gui/wxpython/gmodeler/dialogs.py                   |   5 +-
 gui/wxpython/iscatt/controllers.py                 |   4 +-
 gui/wxpython/mapdisp/main.py                       |   2 +-
 gui/wxpython/nviz/mapwindow.py                     |   2 +-
 gui/wxpython/vnet/toolbars.py                      |  12 ++++
 gui/wxpython/vnet/vnet_core.py                     |   2 +-
 gui/wxpython/vnet/vnet_data.py                     |  24 +++++--
 gui/wxpython/wxplot/histogram.py                   |   3 +
 gui/wxpython/wxplot/scatter.py                     |   8 ++-
 gui/wxpython/xml/menudata.README                   |  11 ++-
 gui/wxpython/xml/toolboxes.xml                     |   6 ++
 imagery/i.landsat.toar/landsat_met.c               |   4 +-
 imagery/i.modis.qc/main.c                          |  80 ++++++++++++---------
 imagery/i.ortho.photo/i.ortho.rectify/cp.c         |   4 +-
 imagery/i.ortho.photo/i.ortho.rectify/target.c     |   2 +-
 imagery/i.ortho.photo/lib/camera.c                 |   2 +-
 imagery/i.ortho.photo/lib/conz_points.c            |  10 +--
 imagery/i.ortho.photo/lib/fopen_camera.c           |   2 +-
 imagery/i.ortho.photo/lib/init_info.c              |   6 +-
 imagery/i.ortho.photo/lib/m_mult.c                 |   2 +-
 imagery/i.ortho.photo/lib/open_camera.c            |   2 +-
 imagery/i.ortho.photo/lib/ref_points.c             |   6 +-
 imagery/i.rectify/cp.c                             |   2 +-
 imagery/i.rectify/target.c                         |   2 +-
 include/VERSION                                    |   2 +-
 lib/gis/parser_standard_options.c                  |   4 +-
 lib/init/grass7.html                               |   4 +-
 lib/python/docs/Makefile                           |   2 +
 lib/python/docs/conf.py                            |   5 +-
 lib/python/pygrass/utils.py                        |   2 +-
 lib/raster3d/test/test_put_get_value_large_file.c  |   1 +
 lib/temporal/lib/connect.c                         |   8 ++-
 lib/vector/Vlib/dgraph.h                           |   2 +-
 lib/vector/Vlib/write_nat.c                        |   2 +-
 lib/vector/vectorlib.dox                           |   2 +-
 lib/vector/vectorlib_lists.dox                     |   2 +-
 lib/vector/vectorlib_pg.dox                        |   2 +-
 locale/po/grassmods_it.po                          |   2 +-
 locale/po/grasswxpy_cs.po                          |   4 +-
 locale/po/grasswxpy_de.po                          |   4 +-
 locale/po/grasswxpy_el.po                          |   4 +-
 locale/po/grasswxpy_es.po                          |   4 +-
 locale/po/grasswxpy_fi.po                          |   4 +-
 locale/po/grasswxpy_fr.po                          |   4 +-
 locale/po/grasswxpy_id.po                          |   4 +-
 locale/po/grasswxpy_it.po                          |   4 +-
 locale/po/grasswxpy_ja.po                          |   4 +-
 locale/po/grasswxpy_ko.po                          |   4 +-
 locale/po/grasswxpy_lv.po                          |   4 +-
 locale/po/grasswxpy_ml.po                          |   4 +-
 locale/po/grasswxpy_pl.po                          |   4 +-
 locale/po/grasswxpy_pt.po                          |   4 +-
 locale/po/grasswxpy_pt_br.po                       |   4 +-
 locale/po/grasswxpy_ro.po                          |   4 +-
 locale/po/grasswxpy_ru.po                          |   4 +-
 locale/po/grasswxpy_th.po                          |   4 +-
 locale/po/grasswxpy_tr.po                          |   4 +-
 locale/po/grasswxpy_vi.po                          |   4 +-
 locale/po/grasswxpy_zh.po                          |   4 +-
 man/build_html.py                                  |   2 +-
 mswindows/GRASS-Installer.nsi.tmpl                 |   4 +-
 mswindows/env.bat                                  |   2 +-
 mswindows/osgeo4w/env.bat.tmpl                     |   2 +-
 mswindows/osgeo4w/postinstall.bat                  |  18 +++++
 raster/r.carve/enforce_ds.c                        |   1 +
 raster/r.external.out/r.external.out.html          |  23 +++---
 raster/r.external/proj.c                           |   2 +-
 raster/r.external/r.external.html                  |  18 ++---
 raster/r.flow/mem.h                                |  10 +--
 raster/r.in.gdal/main.c                            |   2 +-
 raster/r.in.lidar/main.c                           |   4 +-
 raster/r.in.xyz/main.c                             |   2 +-
 raster/r.mapcalc/r.mapcalc.html                    |   4 +-
 raster/r.mapcalc/r3.mapcalc.html                   |   4 +-
 raster/r.profile/main.c                            |   2 +-
 raster/r.quant/read_rules.c                        |   4 +-
 raster/r.random.surface/init.c                     |   4 +-
 raster/r.reclass/main.c                            |   2 +-
 raster/r.regression.line/main.c                    |   1 +
 raster/r.regression.line/r.regression.line.html    |  58 +++++++++++----
 raster/r.regression.multi/main.c                   |   1 +
 raster/r.regression.multi/r.regression.multi.html  |  13 +++-
 raster/r.resamp.interp/r.resamp.interp.html        |  23 ++++--
 .../r.resamp.interp/r_resamp_interp_new_250m.png   | Bin 0 -> 8731 bytes
 .../r.resamp.interp/r_resamp_interp_orig_500m.png  | Bin 0 -> 5931 bytes
 raster/r.resamp.stats/r.resamp.stats.html          |   5 +-
 raster/r.to.rast3/main.c                           |   2 +-
 raster/r.to.rast3elev/main.c                       |   2 +-
 raster/r.to.vect/main.c                            |   4 +-
 raster/r.to.vect/util.c                            |   2 +-
 raster3d/r3.cross.rast/main.c                      |   2 +-
 raster3d/r3.in.ascii/main.c                        |   2 +-
 raster3d/r3.in.v5d/main.c                          |   2 +-
 raster3d/r3.out.ascii/main.c                       |   2 +-
 raster3d/r3.out.v5d/main.c                         |   2 +-
 raster3d/r3.retile/main.c                          |   2 +-
 raster3d/r3.to.rast/main.c                         |   2 +-
 scripts/d.correlate/d.correlate.html               |   7 +-
 scripts/d.correlate/d_correlate_plot.png           | Bin 0 -> 61486 bytes
 scripts/db.in.ogr/db.in.ogr.py                     |   8 ++-
 scripts/r.in.wms/srs.py                            |   2 +-
 scripts/v.import/v.import.py                       |   2 +-
 temporal/t.rast.aggregate/t.rast.aggregate.html    |   4 +-
 temporal/t.shift/t.shift.py                        |   2 +-
 vector/v.external.out/format.c                     |   1 +
 vector/v.external/main.c                           |   2 +
 vector/v.in.ascii/main.c                           |   2 +-
 vector/v.in.ascii/points.c                         |   2 +-
 vector/v.in.lidar/main.c                           |   6 +-
 vector/v.in.ogr/main.c                             |   6 +-
 vector/v.in.ogr/v.in.ogr.html                      |   8 +--
 vector/v.net.allpairs/main.c                       |   4 +-
 vector/v.net.centrality/main.c                     |   2 +-
 vector/v.net.components/main.c                     |   4 +-
 vector/v.net.distance/main.c                       |   4 +-
 vector/v.net.flow/main.c                           |   4 +-
 vector/v.net.path/path.c                           |   4 +-
 vector/v.net.timetable/main.c                      |   6 +-
 vector/v.net/main.c                                |   2 +-
 vector/v.net/v.net.html                            |  43 ++++++++---
 vector/v.out.postgis/create.c                      |   4 +-
 vector/v.out.postgis/v.out.postgis.html            |   8 +--
 vector/v.overlay/area_area.c                       |   2 +-
 vector/v.overlay/line_area.c                       |   2 +-
 vector/v.overlay/main.c                            |   2 +-
 vector/v.random/main.c                             |   4 +-
 vector/v.rectify/cp.c                              |   2 +-
 vector/v.rectify/target.c                          |   2 +-
 vector/v.select/v.select.html                      |   4 +-
 vector/v.surf.rst/main.c                           |   2 +-
 vector/v.vol.rst/main.c                            |   2 +-
 vector/v.vol.rst/vector.c                          |   2 +-
 vector/v.what.rast/main.c                          |   2 +-
 vector/v.what.rast3/main.c                         |   2 +-
 142 files changed, 471 insertions(+), 283 deletions(-)

diff --git a/ChangeLog_7.0.2RC1.gz b/ChangeLog_7.0.2RC1.gz
deleted file mode 100644
index 5c4419d..0000000
Binary files a/ChangeLog_7.0.2RC1.gz and /dev/null differ
diff --git a/ChangeLog_7.0.2RC2.gz b/ChangeLog_7.0.2RC2.gz
new file mode 100644
index 0000000..bfc54dc
Binary files /dev/null and b/ChangeLog_7.0.2RC2.gz differ
diff --git a/db/drivers/dbf/column.c b/db/drivers/dbf/column.c
index ee0fd6e..1d2780e 100644
--- a/db/drivers/dbf/column.c
+++ b/db/drivers/dbf/column.c
@@ -40,7 +40,7 @@ int add_column(int tab, int type, char *name, int width, int decimals)
 	sprintf(buf, "DBMI-DBF driver: column name '%s'", name);
 	name[DBF_COL_NAME - 1] = '\0';
 	sprintf(buf + strlen(buf), " truncated to '%s'", name);
-	G_warning(buf);
+	G_warning("%s", buf);
     }
 
     /* Check if the column exists */
diff --git a/db/drivers/ogr/select.c b/db/drivers/ogr/select.c
index 27ae090..6584bd5 100644
--- a/db/drivers/ogr/select.c
+++ b/db/drivers/ogr/select.c
@@ -48,7 +48,7 @@ int db__driver_open_select_cursor(dbString * sel, dbCursor * dbc, int mode)
 
     if (c->hLayer == NULL) {
 	db_d_append_error(_("Unable to select: \n"));
-	db_d_append_error(db_get_string(sel));
+	db_d_append_error("%s", db_get_string(sel));
 	db_d_append_error("\n");
 	db_d_report_error();
 	return DB_FAILED;
diff --git a/db/drivers/postgres/db.c b/db/drivers/postgres/db.c
index b02bade..5e171eb 100644
--- a/db/drivers/postgres/db.c
+++ b/db/drivers/postgres/db.c
@@ -248,7 +248,7 @@ int create_delete_db(dbHandle *handle, int create)
     if (PQstatus(pg_conn) == CONNECTION_BAD) {
 	db_d_append_error(_("Connection failed."));
 	db_d_append_error("\n");
-	db_d_append_error(PQerrorMessage(pg_conn));
+	db_d_append_error("%s", PQerrorMessage(pg_conn));
 	db_d_report_error();
 	PQfinish(pg_conn);
 	return DB_FAILED;
@@ -269,7 +269,7 @@ int create_delete_db(dbHandle *handle, int create)
 	else
 	    db_d_append_error(_("Unable to drop database <%s>"), name);
 	db_d_append_error("\n");
-	db_d_append_error(PQerrorMessage(pg_conn));
+	db_d_append_error("%s", PQerrorMessage(pg_conn));
 	db_d_report_error();
 	
 	PQclear(res);	
diff --git a/doc/howto_release.txt b/doc/howto_release.txt
index 0756396..dc1b62f 100644
--- a/doc/howto_release.txt
+++ b/doc/howto_release.txt
@@ -1,6 +1,6 @@
 How to release GRASS GIS binaries and source code
 
-$Date: 2015-06-14 22:22:23 +0200 (Sun, 14 Jun 2015) $
+$Date: 2015-10-29 09:40:50 +0100 (Thu, 29 Oct 2015) $
 
 Note: This text contains *some* rules only applicable to the
       development coordinator (currently Markus Neteler, PSC Chair).
@@ -125,8 +125,8 @@ Contents
 
 
  o Store the source tarball (twice) in (use scp -p FILES grass:):
-    SERVER1=grass.osgeo.org:/osgeo/grass/grass-cms/grass$MAJOR$MINOR/source/
-    SERVER2=download.osgeo.org:/osgeo/download/grass/grass$MAJOR$MINOR/source/
+    SERVER1=grass.osgeo.org:/var/www/grass/grass-cms/grass$MAJOR$MINOR/source/
+    SERVER2=upload.osgeo.org:/osgeo/download/grass/grass$MAJOR$MINOR/source/
     echo $SERVER1
     echo $SERVER2
 
@@ -155,7 +155,7 @@ Contents
       -  cd dist.$ARCH/docs/html
          echo www/grass$MAJOR$MINOR/manuals/
          scp -r * neteler at grass.osgeo.org:/osgeo/grass/grass-cms/grass$MAJOR$MINOR/manuals/
-         scp -r * neteler at download.osgeo.org:/osgeo/download/grass/grass$MAJOR$MINOR/manuals/
+         scp -r * neteler at upload.osgeo.org:/osgeo/download/grass/grass$MAJOR$MINOR/manuals/
 
  o stable release: update cronjob 'cron_grass_HEAD_src_snapshot.sh' to next but one
                    release tag for the differences
@@ -261,7 +261,7 @@ Contents
            svn switch https://svn.osgeo.org/grass/grass/branches/releasebranch_7_0 .
 
 ----------
-GRASS GIS 7.0 release branch creation
+Example: GRASS GIS 7.0 release branch creation
 
 svn copy https://svn.osgeo.org/grass/grass/trunk/ \
     https://svn.osgeo.org/grass/grass/branches/releasebranch_7_0 \
diff --git a/gui/wxpython/core/workspace.py b/gui/wxpython/core/workspace.py
index e8db602..6f001cf 100644
--- a/gui/wxpython/core/workspace.py
+++ b/gui/wxpython/core/workspace.py
@@ -124,6 +124,11 @@ class ProcessWorkspaceFile:
                 except:
                     pos  = None
                     size = None
+                # this happens on Windows when mapwindow is minimized when saving workspace
+                else:
+                    if posVal[0] == -32000:
+                        pos = None
+                        size = None
             else:
                 pos  = None
                 size = None
diff --git a/gui/wxpython/docs/wxGUI.iscatt.html b/gui/wxpython/docs/wxGUI.iscatt.html
index 6bc6b87..9408801 100644
--- a/gui/wxpython/docs/wxGUI.iscatt.html
+++ b/gui/wxpython/docs/wxGUI.iscatt.html
@@ -5,7 +5,7 @@
 
 <b>Interactive Scatter Plot Tool</b> allows analyzing group of raster
 maps. The tool is integrated into <em><a href="wxGUI.iclass.html">
-Supervised Classification Tool</a></em> (see the screen shot bellow).
+Supervised Classification Tool</a></em> (see the screen shot below).
 Also it is possible to launch it from Map Display Window (<tt>Analyze map
 → Interactive Scatter Plot Tool</tt>).
 
@@ -82,4 +82,4 @@ Turek, <a href="http://grasswiki.osgeo.org/wiki/GRASS_GSoC_2013_GRASS_GIS_Intera
 Summer of Code 2013</a> (mentor: Martin Landa)
 
 <p>
-<i>$Date: 2015-02-13 16:16:22 +0100 (Fri, 13 Feb 2015) $</i>
+<i>$Date: 2015-10-22 00:41:33 +0200 (Thu, 22 Oct 2015) $</i>
diff --git a/gui/wxpython/gmodeler/dialogs.py b/gui/wxpython/gmodeler/dialogs.py
index b1b2c9d..e5968e3 100644
--- a/gui/wxpython/gmodeler/dialogs.py
+++ b/gui/wxpython/gmodeler/dialogs.py
@@ -789,8 +789,9 @@ class ItemListCtrl(ModelListCtrl):
         
         self.SetColumnWidth(0, 100)
         self.SetColumnWidth(1, 75)
-        self.SetColumnWidth(2, 65)
-        
+        if len(self.columns) >= 3:
+            self.SetColumnWidth(2, 65)
+
     def GetData(self):
         """Get list data"""
         return self.itemDataMap
diff --git a/gui/wxpython/iscatt/controllers.py b/gui/wxpython/iscatt/controllers.py
index 4d1e688..fc50248 100644
--- a/gui/wxpython/iscatt/controllers.py
+++ b/gui/wxpython/iscatt/controllers.py
@@ -228,7 +228,7 @@ class ScattsManager:
                      message=_("Number of cells (rows*cols) <%d> in current region is "
                                "higher than recommended threshold <%d>.\n"
                                "It is strongly advised to reduce number of cells "
-                               "in current region bellow recommend threshold.\n "
+                               "in current region below recommend threshold.\n "
                                "It can be done by <g.region> command.\n\n" 
                                "Do you want to continue using "
                                "Interactive Scatter Plot Tool with this region?" 
@@ -314,7 +314,7 @@ class ScattsManager:
                      message=_("Multiple of bands ranges <%s:%d * %s:%d = %d> " 
                                "is higher than recommended limit <%d>.\n" 
                                "It is strongly advised to reduce range extend of bands" 
-                               "(e. g. using r.rescale) bellow recommended threshold.\n\n"
+                               "(e. g. using r.rescale) below recommended threshold.\n\n"
                                "Do you really want to add this scatter plot?" 
                                 % (b_1_name, b_1_i['range'], b_1_name, b_2_i['range'], 
                                    mrange, WARN_SCATT_SIZE)), 
diff --git a/gui/wxpython/mapdisp/main.py b/gui/wxpython/mapdisp/main.py
index 5e54e3b..7d66ae0 100644
--- a/gui/wxpython/mapdisp/main.py
+++ b/gui/wxpython/mapdisp/main.py
@@ -397,7 +397,7 @@ class MapApp(wx.App):
         cmdfile)
         """
         try:
-            # GISBASE and other sytem enviromental variables can not be used
+            # GISBASE and other system enviromental variables can not be used
             # since the process inherited them from GRASS
             # raises exception when vaiable does not exists
             grass.gisenv()['GISDBASE']
diff --git a/gui/wxpython/nviz/mapwindow.py b/gui/wxpython/nviz/mapwindow.py
index 82ccc75..c913a27 100644
--- a/gui/wxpython/nviz/mapwindow.py
+++ b/gui/wxpython/nviz/mapwindow.py
@@ -2035,7 +2035,7 @@ class GLWindow(MapWindowBase, glcanvas.GLCanvas):
                             continue
                         if map and not grass.find_file(value, element='grid3')['fullname']:
                             continue
-                    elif attrb ==  'color':
+                    if attrb ==  'color':
                         self._display.SetIsosurfaceColor(id, isosurfId, map, str(value))
                     elif attrb ==  'mask':
                         # TODO: invert mask
diff --git a/gui/wxpython/vnet/toolbars.py b/gui/wxpython/vnet/toolbars.py
index 893e8db..1028f01 100644
--- a/gui/wxpython/vnet/toolbars.py
+++ b/gui/wxpython/vnet/toolbars.py
@@ -89,6 +89,18 @@ class PointListToolbar(BaseToolbar):
         pt_id = self.vnet_pts_mgr.GetSelected()
         self.vnet_pts_mgr.DeletePoint(pt_id)
 
+    def OnTool(self, event):
+        """Tool selected - overriden BaseToolbar method to avoid calling UnregisterAllHandlers 
+            through toggleToolChanged signal for certain buttons in the toolbar
+            It is temporary HACK before r66434 will be backported.
+        """
+        id = event.GetId()
+        if self.toolSwitcher:
+            
+            if  self.toolSwitcher.IsToolInGroup(id, 'mouseUse'):
+                self.toolSwitcher.ToolChanged(event.GetId())
+        
+        event.Skip()
 
 class MainToolbar(BaseToolbar):
     """Main toolbar
diff --git a/gui/wxpython/vnet/vnet_core.py b/gui/wxpython/vnet/vnet_core.py
index b6f89b2..83104aa 100644
--- a/gui/wxpython/vnet/vnet_core.py
+++ b/gui/wxpython/vnet/vnet_core.py
@@ -697,7 +697,7 @@ class VNETAnalyses:
         self.tmp_maps.DeleteTmpMap(self.tmpInPtsConnected)
         try_remove(self.tmpPtsAsciiFile)
 
-        if cmd[0] == "v.net.flow":
+        if event.cmd[0] == "v.net.flow":
             self.tmp_maps.DeleteTmpMap(self.vnetFlowTmpCut)
 
         self._onDone(event)
diff --git a/gui/wxpython/vnet/vnet_data.py b/gui/wxpython/vnet/vnet_data.py
index 95f78fb..0c23ef8 100644
--- a/gui/wxpython/vnet/vnet_data.py
+++ b/gui/wxpython/vnet/vnet_data.py
@@ -307,6 +307,11 @@ class VNETPointsData:
             idx = self.cols["name"].index(col)
             self.data[pt_id][idx] = v
 
+
+        # if type is changed checked columns must be recalculated by _usePoint
+        if data.has_key('type') and not data.has_key('use'):
+            data["use"] = self.GetPointData(pt_id)['use']
+
         if data.has_key('use'):
             if self._usePoint(pt_id, data["use"]) == -1:
                 data["use"] =  False
@@ -373,6 +378,9 @@ class VNETPointsData:
         if "analysis" in kwargs["changed_params"].keys():
             self._updateTypeCol()
 
+            if self.an_params.GetParam("analysis")[0] == "v.net.path":
+                self._vnetPathUpdateUsePoints(None)
+
     def _updateTypeCol(self):
         """Rename category values when module is changed. Expample: Start point -> Sink point"""
         colValues = [""]
@@ -414,21 +422,29 @@ class VNETPointsData:
         if len(cats) <= 1:
             return 0
 
-        type_idx = self.cols["name"].index("type")
         use_idx = self.cols["name"].index("use")
         checkedVal = self.data[pt_id][1]
 
+        # point without given type cannot be selected
         if checkedVal == 0:
             self.data[pt_id][use_idx] = False
             self.pointsChanged.emit(method = "SetPointData", kwargs = {"pt_id" : pt_id, "data" : {"use" : False}})
             return -1
 
         if analysis == "v.net.path" and use:
+            self._vnetPathUpdateUsePoints(pt_id)
+
+    def _vnetPathUpdateUsePoints(self, checked_pt_id):
+
             alreadyChecked = []
 
-            if pt_id:
-                checkedKey = pt_id
-                alreadyChecked.append(self.data[pt_id][type_idx])
+
+            type_idx = self.cols["name"].index("type")
+            use_idx = self.cols["name"].index("use")
+
+            if checked_pt_id is not None:
+                checkedKey = checked_pt_id
+                alreadyChecked.append(self.data[checked_pt_id][type_idx])
             else:
                 checkedKey = -1
 
diff --git a/gui/wxpython/wxplot/histogram.py b/gui/wxpython/wxplot/histogram.py
index dfae6e2..b28ef7a 100644
--- a/gui/wxpython/wxplot/histogram.py
+++ b/gui/wxpython/wxplot/histogram.py
@@ -84,9 +84,12 @@ class HistogramPlotFrame(BasePlotFrame):
             pass
         
         self.SetGraphStyle()
+        wx.BeginBusyCursor()
+        wx.SafeYield()
         self.SetupHistogram()
         p = self.CreatePlotList()
         self.DrawPlot(p)
+        wx.EndBusyCursor()
 
     def OnSelectRaster(self, event):
         """Select raster map(s) to profile
diff --git a/gui/wxpython/wxplot/scatter.py b/gui/wxpython/wxplot/scatter.py
index c81b419..e01df94 100644
--- a/gui/wxpython/wxplot/scatter.py
+++ b/gui/wxpython/wxplot/scatter.py
@@ -79,11 +79,15 @@ class ScatterFrame(BasePlotFrame):
         """
         self.SetCursor(wx.StockCursor(wx.CURSOR_ARROW))
         self.SetGraphStyle()
+        wx.BeginBusyCursor()
+        wx.SafeYield()
         self.SetupScatterplot()
         p = self.CreatePlotList()
         if p:
             self.DrawPlot(p)
+            wx.EndBusyCursor()
         else:
+            wx.EndBusyCursor()
             GMessage(_("Nothing to plot."), parent = self)
 
     def OnSelectRaster(self, event):
@@ -243,8 +247,8 @@ class ScatterFrame(BasePlotFrame):
             rast1 = rast1.split('@')[0] 
             rast2 = rast2.split('@')[0] 
             ret = grass.parse_command('r.regression.line', 
-                                      map1 = rast1, 
-                                      map2 = rast2, 
+                                      mapx = rast1, 
+                                      mapy = rast2, 
                                       flags = 'g', quiet = True,
                                       parse = (grass.parse_key_val, { 'sep' : '=' }))
             eqtitle = _('Regression equation for raster map <%(rast1)s> vs. <%(rast2)s>:\n\n') % \
diff --git a/gui/wxpython/xml/menudata.README b/gui/wxpython/xml/menudata.README
index 00292dc..a83c61d 100644
--- a/gui/wxpython/xml/menudata.README
+++ b/gui/wxpython/xml/menudata.README
@@ -1,3 +1,8 @@
-Find more info about how to add item in the menu:
-http://grass.osgeo.org/programming7/wxguitoolboxes.html
-
+MENU
+- the entries in menudata.xml and module_tree_menudata.xml are autogenerated 
+  via tools/build_modules_xml.py (see ../Makefile)
+- Find more info at
+  https://grass.osgeo.org/grass70/manuals/wxGUI.toolboxes.html
+  (../docs/wxgui_sphinx/src/)
+- additionally
+  https://trac.osgeo.org/grass/wiki/wxGUIDevelopment/Toolboxes
diff --git a/gui/wxpython/xml/toolboxes.xml b/gui/wxpython/xml/toolboxes.xml
index 0d972cf..208fb3f 100644
--- a/gui/wxpython/xml/toolboxes.xml
+++ b/gui/wxpython/xml/toolboxes.xml
@@ -249,6 +249,9 @@
     <label>Import raster data</label>
     <items>
       <wxgui-item name="CommonFormatsImport"/>
+      <module-item name="r.import">
+        <label>Import of common formats with reprojection</label>
+      </module-item>
       <separator/>
       <module-item name="r.in.xyz">
         <label>ASCII x,y,z point import and gridding</label>
@@ -298,6 +301,9 @@
     <label>Import vector data</label>
     <items>
       <wxgui-item name="CommonImportFormats"/>
+      <module-item name="v.import">
+        <label>Import of common formats with reprojection</label>
+      </module-item>
       <separator/>
       <module-item name="v.in.ascii">
         <label>ASCII points or GRASS ASCII format</label>
diff --git a/imagery/i.landsat.toar/landsat_met.c b/imagery/i.landsat.toar/landsat_met.c
index 506d719..5b612a4 100644
--- a/imagery/i.landsat.toar/landsat_met.c
+++ b/imagery/i.landsat.toar/landsat_met.c
@@ -384,14 +384,14 @@ void lsat_metadata(char *metafile, lsat_data * lsat)
 	    sprintf(key, "Band%dGainSetting", lsat->band[i].code);
 	    get_mtldata(mtldata, key, value);
 	    if (value[0] == '\0') {
-		G_warning(key);
+                G_warning("%s", key);
 		continue;
 	    }
 	    lsat->band[i].gain = atof(value);
 	    sprintf(key, "Band%dBiasSetting", lsat->band[i].code);
 	    get_mtldata(mtldata, key, value);
 	    if (value[0] == '\0') {
-		G_warning(key);
+		G_warning("%s", key);
 		continue;
 	    }
 	    lsat->band[i].bias = atof(value);
diff --git a/imagery/i.modis.qc/main.c b/imagery/i.modis.qc/main.c
index 5bb4b47..c411507 100644
--- a/imagery/i.modis.qc/main.c
+++ b/imagery/i.modis.qc/main.c
@@ -334,12 +334,24 @@ int main(int argc, char *argv[])
     result = output->answer;
 
     /*mod09Q1*/
-    if ((strcmp(qcflag, "cloud") && !(strcmp(product, "mod09Q1"))) || 
-	(strcmp(qcflag, "diff_orbit_from_500m") && !(strcmp(product, "mod09Q1"))))
+    if ((!strcmp(qcflag, "cloud") && strcmp(product, "mod09Q1")) || 
+	(!strcmp(qcflag, "diff_orbit_from_500m") && strcmp(product, "mod09Q1")))
 	G_fatal_error(_("This bit flag is only available for MOD09Q1 @ 250m products"));
 
     if (!strcmp(qcflag, "data_quality")) {
-	if (bandno < 1 || bandno > 7)
+	if (!strcmp(product, "mod09Q1") && (bandno < 1 || bandno > 2)) 
+	    G_fatal_error(_("Band number out of allowed range [1-2]"));
+	if (!strcmp(product, "mod09A1") && (bandno < 1 || bandno > 7)) 
+	    G_fatal_error(_("Band number out of allowed range [1-7]"));
+	if (!strcmp(product, "mod09CMG") && (bandno < 1 || bandno > 7)) 
+	    G_fatal_error(_("Band number out of allowed range [1-7]"));
+	if (!strcmp(product, "mod09CMGs") && (bandno < 1 || bandno > 7)) 
+	    G_fatal_error(_("Band number out of allowed range [1-7]"));
+	if (!strcmp(product, "mod09CMGi") && (bandno < 1 || bandno > 7)) 
+	    G_fatal_error(_("Band number out of allowed range [1-7]"));
+	if (!strcmp(product, "mod43B2") && (bandno < 1 || bandno > 7))
+	    G_fatal_error(_("Band number out of allowed range [1-7]"));
+	if (!strcmp(product, "mod43B2q") && (bandno < 1 || bandno > 7)) 
 	    G_fatal_error(_("Band number out of allowed range [1-7]"));
 	if (!strcmp(product, "mod09Q1") && bandno > 2)
 	    G_fatal_error(_("mod09Q1 product only has 2 bands"));
@@ -364,37 +376,37 @@ int main(int argc, char *argv[])
 */
 
     /*mod09CMG*/
-    if ((strcmp(qcflag, "icm_cloudy") && !(strcmp(product, "mod09CMGi"))) ||
-	(strcmp(qcflag, "icm_clear") && !(strcmp(product, "mod09CMGi"))) ||
-	(strcmp(qcflag, "icm_high_clouds") && !(strcmp(product, "mod09CMGi"))) ||
-	(strcmp(qcflag, "icm_low_clouds") && !(strcmp(product, "mod09CMGi"))) ||
-	(strcmp(qcflag, "icm_snow") && !(strcmp(product, "mod09CMGi"))) ||
-	(strcmp(qcflag, "icm_fire") && !(strcmp(product, "mod09CMGi"))) ||
-	(strcmp(qcflag, "icm_sun_glint") && !(strcmp(product, "mod09CMGi"))) ||
-	(strcmp(qcflag, "icm_dust") && !(strcmp(product, "mod09CMGi"))) ||
-	(strcmp(qcflag, "icm_cloud_shadow") && !(strcmp(product, "mod09CMGi"))) ||
-	(strcmp(qcflag, "icm_pixel_is_adjacent_to_cloud") && !(strcmp(product, "mod09CMGi"))) ||
-	(strcmp(qcflag, "icm_cirrus") && !(strcmp(product, "mod09CMGi"))) ||
-	(strcmp(qcflag, "icm_pan_flag") && !(strcmp(product, "mod09CMGi"))) ||
-	(strcmp(qcflag, "icm_criteria_for_aerosol_retrieval") && !(strcmp(product, "mod09CMGi"))) ||
-	(strcmp(qcflag, "icm_aot_has_clim_val") && !(strcmp(product, "mod09CMGi"))))
+    if ((!strcmp(qcflag, "icm_cloudy") && strcmp(product, "mod09CMGi")) ||
+	(!strcmp(qcflag, "icm_clear") && strcmp(product, "mod09CMGi")) ||
+	(!strcmp(qcflag, "icm_high_clouds") && strcmp(product, "mod09CMGi")) ||
+	(!strcmp(qcflag, "icm_low_clouds") && strcmp(product, "mod09CMGi")) ||
+	(!strcmp(qcflag, "icm_snow") && strcmp(product, "mod09CMGi")) ||
+	(!strcmp(qcflag, "icm_fire") && strcmp(product, "mod09CMGi")) ||
+	(!strcmp(qcflag, "icm_sun_glint") && strcmp(product, "mod09CMGi")) ||
+	(!strcmp(qcflag, "icm_dust") && strcmp(product, "mod09CMGi")) ||
+	(!strcmp(qcflag, "icm_cloud_shadow") && strcmp(product, "mod09CMGi")) ||
+	(!strcmp(qcflag, "icm_pixel_is_adjacent_to_cloud") && strcmp(product, "mod09CMGi")) ||
+	(!strcmp(qcflag, "icm_cirrus") && strcmp(product, "mod09CMGi")) ||
+	(!strcmp(qcflag, "icm_pan_flag") && strcmp(product, "mod09CMGi")) ||
+	(!strcmp(qcflag, "icm_criteria_for_aerosol_retrieval") && strcmp(product, "mod09CMGi")) ||
+	(!strcmp(qcflag, "icm_aot_has_clim_val") && strcmp(product, "mod09CMGi")))
 	G_fatal_error(_("This bit flag is only available for mod09CMGi @ 5000m products"));
 
     /*mod13A2*/
-    if ((strcmp(qcflag, "vi_usefulness") && !(strcmp(product, "mod13A2"))) ||
-        (strcmp(qcflag, "mixed_clouds") && !(strcmp(product, "mod13A2"))) ||
-        (strcmp(qcflag, "possible_snow_ice") && !(strcmp(product, "mod13A2"))) ||
-        (strcmp(qcflag, "possible_shadow") && !(strcmp(product, "mod13A2"))))
+    if ((!strcmp(qcflag, "vi_usefulness") && strcmp(product, "mod13A2")) ||
+        (!strcmp(qcflag, "mixed_clouds") && strcmp(product, "mod13A2")) ||
+        (!strcmp(qcflag, "possible_snow_ice") && strcmp(product, "mod13A2")) ||
+        (!strcmp(qcflag, "possible_shadow") && strcmp(product, "mod13A2")))
         G_fatal_error(_("This bit flag is only available for MOD13A2 @ 1km products"));
 
     /*mcd43B2*/
-    if ((strcmp(qcflag, "platform") && !(strcmp(product, "mcd43B2"))) ||
-        (strcmp(qcflag, "land_water") && !(strcmp(product, "mcd43B2"))) ||
-        (strcmp(qcflag, "sun_z_angle_at_local_noon") && !(strcmp(product, "mcd43B2"))))
+    if ((!strcmp(qcflag, "platform") && !strcmp(product, "mcd43B2")) ||
+        (!strcmp(qcflag, "land_water") && !strcmp(product, "mcd43B2")) ||
+        (!strcmp(qcflag, "sun_z_angle_at_local_noon") && !strcmp(product, "mcd43B2")))
         G_fatal_error(_("This bit flag is only available for MCD43B2 @ 1km products"));
 
      /*mcd43B2q*/
-    if (strcmp(product, "mcd43B2q") && (bandno < 1 || bandno > 7))
+    if (!strcmp(product, "mcd43B2q") && (bandno < 1 || bandno > 7))
 	    G_fatal_error(_("Band number out of allowed range [1-7]"));
 
     infd = Rast_open_old(qcchan, "");
@@ -411,6 +423,8 @@ int main(int argc, char *argv[])
     /* Create New raster files */ 
     outfd = Rast_open_new(result, data_type_output);
 
+    G_debug(3, "Product is %s and QC flag is %s", product, qcflag);
+
     /* Process pixels */ 
     for (row = 0; row < nrows; row++)
     {
@@ -478,31 +492,31 @@ int main(int argc, char *argv[])
 	    }
             else if (!strcmp(product, "mod11A1"))
             {
-                if (!strcmp(qcflag, "mandatory_qa"))
+                if (!strcmp(qcflag, "mandatory_qa_11A1"))
                 /*calculate mod11A1 mandatory qa flags  */
                     c = mod11A1a(c);
-                if (!strcmp(qcflag, "data_quality_flag"))
+                if (!strcmp(qcflag, "data_quality_flag_11A1"))
                 /*calculate mod11A1 data quality flag  */
                     c = mod11A1b(c);
-                if (!strcmp(qcflag, "emis_error"))
+                if (!strcmp(qcflag, "emis_error_11A1"))
                 /*calculate mod11A1 emissivity error flag  */
                     c = mod11A1c(c);
-                if (!strcmp(qcflag, "lst_error"))
+                if (!strcmp(qcflag, "lst_error_11A1"))
                 /*calculate mod11A1 lst error flag  */
                     c = mod11A1d(c);
             }
             else if (!strcmp(product, "mod11A2"))
             {
-                if (!strcmp(qcflag, "mandatory_qa")) 
+                if (!strcmp(qcflag, "mandatory_qa_11A2")) 
 		/*calculate mod11A2 mandatory qa flags  */ 
                     c = mod11A2a(c);
-	        if (!strcmp(qcflag, "data_quality_flag"))
+	        if (!strcmp(qcflag, "data_quality_flag_11A2"))
 		/*calculate mod11A2 data quality flag  */ 
                     c = mod11A2b(c);
-                if (!strcmp(qcflag, "emis_error")) 
+                if (!strcmp(qcflag, "emis_error_11A2")) 
 		/*calculate mod11A2 emissivity error flag  */ 
                     c = mod11A2c(c);
-	        if (!strcmp(qcflag, "lst_error")) 
+	        if (!strcmp(qcflag, "lst_error_11A2")) 
 		/*calculate mod11A2 lst error flag  */ 
                     c = mod11A2d(c);
             }
diff --git a/imagery/i.ortho.photo/i.ortho.rectify/cp.c b/imagery/i.ortho.photo/i.ortho.rectify/cp.c
index b8ec48c..86e5b33 100644
--- a/imagery/i.ortho.photo/i.ortho.rectify/cp.c
+++ b/imagery/i.ortho.photo/i.ortho.rectify/cp.c
@@ -31,7 +31,7 @@ int get_conz_points(void)
     default:
 	return 1;
     }
-    G_fatal_error(msg);
+    G_fatal_error("%s", msg);
 }
 
 int get_ref_points(void)
@@ -61,6 +61,6 @@ int get_ref_points(void)
     default:
 	return 1;
     }
-    G_fatal_error(msg);
+    G_fatal_error("%s", msg);
     /* exit(1);   shouldn't get here */
 }
diff --git a/imagery/i.ortho.photo/i.ortho.rectify/target.c b/imagery/i.ortho.photo/i.ortho.rectify/target.c
index 99f8480..462833a 100644
--- a/imagery/i.ortho.photo/i.ortho.rectify/target.c
+++ b/imagery/i.ortho.photo/i.ortho.rectify/target.c
@@ -31,5 +31,5 @@ int get_target(char *group)
     sprintf(buf, _("Mapset <%s> in target location <%s> - "), mapset, location);
     strcat(buf, stat == 0 ? _("permission denied") : _("not found"));
   error:
-    G_fatal_error(buf);
+    G_fatal_error("%s", buf);
 }
diff --git a/imagery/i.ortho.photo/lib/camera.c b/imagery/i.ortho.photo/lib/camera.c
index 26e454e..7d298be 100644
--- a/imagery/i.ortho.photo/lib/camera.c
+++ b/imagery/i.ortho.photo/lib/camera.c
@@ -36,7 +36,7 @@ int I_get_group_camera(char *group, char *camera)
 	sprintf(buf,
 		_("Unable to open camera file for group <%s> in mapset <%s>"),
 		group, G_mapset());
-	G_warning(buf);
+	G_warning("%s", buf);
 	return 0;
     }
     G_getl2(buf, sizeof(buf), fd);
diff --git a/imagery/i.ortho.photo/lib/conz_points.c b/imagery/i.ortho.photo/lib/conz_points.c
index ad604dd..9d6f940 100644
--- a/imagery/i.ortho.photo/lib/conz_points.c
+++ b/imagery/i.ortho.photo/lib/conz_points.c
@@ -104,7 +104,7 @@ int I_get_con_points(char *group, struct Ortho_Control_Points *cp)
 	sprintf(msg,
 		"unable to open control point (Z) file for group [%s in %s]",
 		group, G_mapset());
-	G_warning(msg);
+	G_warning("%s", msg);
 	G_sleep(4);
 	return 0;
     }
@@ -114,7 +114,7 @@ int I_get_con_points(char *group, struct Ortho_Control_Points *cp)
     if (stat < 0) {
 	sprintf(msg, "bad format in control point file for group [%s in %s]",
 		group, G_mapset());
-	G_warning(msg);
+	G_warning("%s", msg);
 	G_sleep(4);
 	return 0;
     }
@@ -131,7 +131,7 @@ int I_put_con_points(char *group, struct Ortho_Control_Points *cp)
 	sprintf(msg,
 		"unable to create control point file for group [%s in %s]",
 		group, G_mapset());
-	G_warning(msg);
+	G_warning("%s", msg);
 	G_sleep(4);
 	return 0;
     }
@@ -156,7 +156,7 @@ int I_convert_con_points(char *group, struct Ortho_Control_Points *con_cp,
 	sprintf(msg,
 		"unable to open control point (Z) file for group [%s in %s]",
 		group, G_mapset());
-	G_warning(msg);
+	G_warning("%s", msg);
 	G_sleep(4);
 	return 0;
     }
@@ -166,7 +166,7 @@ int I_convert_con_points(char *group, struct Ortho_Control_Points *con_cp,
     if (stat < 0) {
 	sprintf(msg, "bad format in control point file for group [%s in %s]",
 		group, G_mapset());
-	G_warning(msg);
+	G_warning("%s", msg);
 	G_sleep(4);
 	return 0;
     }
diff --git a/imagery/i.ortho.photo/lib/fopen_camera.c b/imagery/i.ortho.photo/lib/fopen_camera.c
index 93cb326..2e904e9 100644
--- a/imagery/i.ortho.photo/lib/fopen_camera.c
+++ b/imagery/i.ortho.photo/lib/fopen_camera.c
@@ -46,7 +46,7 @@ static int error(char *camera, char *msga, char *msgb)
 
     sprintf(buf, "%s camera file [%s] in [%s %s] %s",
 	    msga, camera, G_location(), G_mapset(), msgb);
-    G_warning(buf);
+    G_warning("%s", buf);
 
     return 0;
 }
diff --git a/imagery/i.ortho.photo/lib/init_info.c b/imagery/i.ortho.photo/lib/init_info.c
index 0bb1a67..11f4bc6 100644
--- a/imagery/i.ortho.photo/lib/init_info.c
+++ b/imagery/i.ortho.photo/lib/init_info.c
@@ -101,7 +101,7 @@ int I_get_init_info(char *group, struct Ortho_Camera_Exp_Init *init_info)
     if (fd == NULL) {
 	sprintf(msg, "unable to open camera initial file %s in %s",
 		group, G_mapset());
-	G_warning(msg);
+	G_warning("%s", msg);
 	return 0;
     }
 
@@ -110,7 +110,7 @@ int I_get_init_info(char *group, struct Ortho_Camera_Exp_Init *init_info)
     if (stat < 0) {
 	sprintf(msg, "bad format in camera initial file %s in %s",
 		group, G_mapset());
-	G_warning(msg);
+	G_warning("%s", msg);
 	return 0;
     }
     return 1;
@@ -125,7 +125,7 @@ int I_put_init_info(char *group, struct Ortho_Camera_Exp_Init *init_info)
     if (fd == NULL) {
 	sprintf(msg, "unable to open camera initial file %s in %s",
 		group, G_mapset());
-	G_warning(msg);
+	G_warning("%s", msg);
 	return 0;
     }
 
diff --git a/imagery/i.ortho.photo/lib/m_mult.c b/imagery/i.ortho.photo/lib/m_mult.c
index 301ebc0..b93a512 100644
--- a/imagery/i.ortho.photo/lib/m_mult.c
+++ b/imagery/i.ortho.photo/lib/m_mult.c
@@ -21,7 +21,7 @@ int m_mult(MATRIX * a, MATRIX * b, MATRIX * c)
     if (a->ncols != b->nrows) {
 	sprintf(message, "*: matrices not conformable, %d x %d * %d x %d\n",
 		a->nrows, a->ncols, b->nrows, b->ncols);
-	fprintf(stderr, message);
+	fprintf(stderr, "%s", message);
 	return error(message);
     }
 
diff --git a/imagery/i.ortho.photo/lib/open_camera.c b/imagery/i.ortho.photo/lib/open_camera.c
index 30c6184..1b7af57 100644
--- a/imagery/i.ortho.photo/lib/open_camera.c
+++ b/imagery/i.ortho.photo/lib/open_camera.c
@@ -50,7 +50,7 @@ static int camera_error(char *camera, char *file, char *msga, char *msgb)
 
     sprintf(buf, "%sfile [%s] of group [%s in %s]%s",
 	    msga, file, camera, G_mapset(), msgb);
-    G_warning(buf);
+    G_warning("%s", buf);
 
     return 0;
 }
diff --git a/imagery/i.ortho.photo/lib/ref_points.c b/imagery/i.ortho.photo/lib/ref_points.c
index 6f03e8d..2fa6e65 100644
--- a/imagery/i.ortho.photo/lib/ref_points.c
+++ b/imagery/i.ortho.photo/lib/ref_points.c
@@ -97,7 +97,7 @@ int I_get_ref_points(char *groupname, struct Ortho_Photo_Points *cp)
 	sprintf(msg,
 		"unable to open reference point file for group [%s in %s]",
 		groupname, G_mapset());
-	G_warning(msg);
+	G_warning("%s", msg);
 	return 0;
     }
 
@@ -108,7 +108,7 @@ int I_get_ref_points(char *groupname, struct Ortho_Photo_Points *cp)
 	sprintf(msg,
 		"bad format in reference point file for group [%s in %s]",
 		groupname, G_mapset());
-	G_warning(msg);
+	G_warning("%s", msg);
 	return 0;
     }
     return 1;
@@ -124,7 +124,7 @@ int I_put_ref_points(char *groupname, struct Ortho_Photo_Points *cp)
 	sprintf(msg,
 		"unable to create reference point file for group [%s in %s]",
 		groupname, G_mapset());
-	G_warning(msg);
+	G_warning("%s", msg);
 	return 0;
     }
 
diff --git a/imagery/i.rectify/cp.c b/imagery/i.rectify/cp.c
index b0b2123..5cf06d6 100644
--- a/imagery/i.rectify/cp.c
+++ b/imagery/i.rectify/cp.c
@@ -67,7 +67,7 @@ int get_control_points(char *group, int order	/* THIS HAS BEEN ADDED WITH THE CR
 	    return 1;
 	}
     }
-    G_fatal_error(msg);
+    G_fatal_error("%s", msg);
 
     return 0; /* G_fatal_error() calls exit() */
 }
diff --git a/imagery/i.rectify/target.c b/imagery/i.rectify/target.c
index d97e3df..043628c 100644
--- a/imagery/i.rectify/target.c
+++ b/imagery/i.rectify/target.c
@@ -34,6 +34,6 @@ int get_target(char *group)
   error:
     strcat(buf, _("Please run i.target for group."));
     strcat(buf, group);
-    G_fatal_error(buf);
+    G_fatal_error("%s", buf);
     return 1;			/* never reached */
 }
diff --git a/include/VERSION b/include/VERSION
index b7ffb64..69f4dfd 100644
--- a/include/VERSION
+++ b/include/VERSION
@@ -1,4 +1,4 @@
 7
 0
-2RC1
+2RC2
 2015
diff --git a/lib/gis/parser_standard_options.c b/lib/gis/parser_standard_options.c
index 1408d9a..ce5266c 100644
--- a/lib/gis/parser_standard_options.c
+++ b/lib/gis/parser_standard_options.c
@@ -25,7 +25,7 @@
   parameter <i>opt</i>.
 
   Valid parameters are defined by the STD_OPT enum in the file gis.h.
-  A list of valid parameter values sorted to groups is bellow.
+  A list of valid parameter values sorted to groups is below.
 
   This function allocates memory for the Option structure and returns a
   pointer to this memory.
@@ -889,7 +889,7 @@ struct Option *G_define_standard_option(int opt)
   \brief Create standardised Flag structure.
   
   This function will create a standardised Flag structure defined by
-  parameter <i>flag</i>. A list of valid parameters bellow. It
+  parameter <i>flag</i>. A list of valid parameters below. It
   allocates memory for the Flag structure and returns a pointer to
   this memory.
   
diff --git a/lib/init/grass7.html b/lib/init/grass7.html
index a470bcf..3d799e4 100644
--- a/lib/init/grass7.html
+++ b/lib/init/grass7.html
@@ -223,7 +223,7 @@ script. The script file must have its executable bit set.
 <dt><b>grass70 -text</b>
 <dd> Start GRASS using the text-based user interface. Appropriate
 location and mapset must be set by environmental variables (see
-examples bellow) otherwise taken from the last GRASS session.</dd>
+examples below) otherwise taken from the last GRASS session.</dd>
 
 <dt><b>grass70 -gtext</b>
 <dd> Start GRASS using the text-based user interface. The user will be
@@ -355,4 +355,4 @@ Hamish Bowman<br>
 Martin Landa, Czech Technical University in Prague, Czech Republic
 
 <p>
-<i>Last changed: $Date: 2015-01-25 18:56:33 +0100 (Sun, 25 Jan 2015) $</i>
+<i>Last changed: $Date: 2015-10-22 00:41:33 +0200 (Thu, 22 Oct 2015) $</i>
diff --git a/lib/python/docs/Makefile b/lib/python/docs/Makefile
index 0abc8e1..ef92bfd 100644
--- a/lib/python/docs/Makefile
+++ b/lib/python/docs/Makefile
@@ -89,6 +89,8 @@ libpythonepub:
 	@echo
 	@echo "Build finished. The epub file is in $(BUILDDIR)/epub/"
 
+# requires: 
+#  texlive-titlesec texlive-framed texlive-threeparttable texlive-wrapfig texlive-upquote texlive-multirow
 libpythonlatex:
 	@echo "SPHINXBUILD: Using <$(SPHINXBUILD)>"
 	$(call run_grass,$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex)
diff --git a/lib/python/docs/conf.py b/lib/python/docs/conf.py
index 2d029fe..8b533df 100644
--- a/lib/python/docs/conf.py
+++ b/lib/python/docs/conf.py
@@ -94,7 +94,8 @@ copyright = u'2014, GRASS Development Team'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
-language = 'python'
+# http://sphinx-doc.org/config.html#options-for-internationalization
+language = 'en'
 
 # There are two options for replacing |today|: either, you set today to some
 # non-false value, then it is used:
@@ -233,7 +234,7 @@ latex_elements = {
 # (source start file, target name, title,
 #  author, documentclass [howto, manual, or own class]).
 latex_documents = [
-  ('index', 'PythonLib.tex', u'Python Librart Documentation',
+  ('index', 'PythonLib.tex', u'Python Library Documentation',
    u'GRASS Development Team', 'manual'),
 ]
 
diff --git a/lib/python/pygrass/utils.py b/lib/python/pygrass/utils.py
index 9f559b9..44d3d72 100644
--- a/lib/python/pygrass/utils.py
+++ b/lib/python/pygrass/utils.py
@@ -292,7 +292,7 @@ def set_path(modulename, dirname, path='.'):
     pathlib = os.path.join(path, dirname)
     if os.path.exists(pathlib):
         # we are running the script from the script directory
-        sys.path.append(os.path.abspath(path))
+        sys.path.append(os.path.abspath(pathlib))
     else:
         # running from GRASS GIS session
         from grass.pygrass.utils import get_lib_path
diff --git a/lib/raster3d/test/test_put_get_value_large_file.c b/lib/raster3d/test/test_put_get_value_large_file.c
index a6f01e7..cb2cefb 100644
--- a/lib/raster3d/test/test_put_get_value_large_file.c
+++ b/lib/raster3d/test/test_put_get_value_large_file.c
@@ -16,6 +16,7 @@
 *****************************************************************************/
 #include <stdlib.h>
 #include <string.h>
+#include <math.h>
 #include "test_raster3d_lib.h"
 #include "grass/interpf.h"
 
diff --git a/lib/temporal/lib/connect.c b/lib/temporal/lib/connect.c
index e7a4db5..c23115c 100644
--- a/lib/temporal/lib/connect.c
+++ b/lib/temporal/lib/connect.c
@@ -99,13 +99,17 @@ static char *get_mapset_connection_name(const char *mapset, int contype)
     ret = G_mapset_permissions2(gisdbase, location, mapset);
     switch (ret) {
     case 0: /* Check if the mapset exists and user is owner */
-        G_warning(_("You don't have permission to access the mapset <%s>"),
+        /* We suppress this warning, since G_mapset_permission2() does not
+         * properly check the access privileges to the mapset of a different user.
+         * TODO: develop a dedicated G_mapset_permission3() for that
+        G_warning(_("You are not the owner of mapset <%s>"),
                       mapset);
+        */
         break;
     case -1:
         G_warning(_("Mapset <%s> does not exist."),
 	              mapset);
-        break;
+        return ret_val;
     default:
         break;
     }    
diff --git a/lib/vector/Vlib/dgraph.h b/lib/vector/Vlib/dgraph.h
index 2c56898..ce5113d 100644
--- a/lib/vector/Vlib/dgraph.h
+++ b/lib/vector/Vlib/dgraph.h
@@ -16,7 +16,7 @@ struct pg_vertex {
     double x; /* coordinates */
     double y;
     int ecount; /* number of neighbours */
-    int eallocated; /* size of the array bellow */
+    int eallocated; /* size of the array below */
     struct pg_edge **edges; /* array of pointers */
     double *angles; /* precalculated angles with Ox */
 };
diff --git a/lib/vector/Vlib/write_nat.c b/lib/vector/Vlib/write_nat.c
index 0875885..d748970 100644
--- a/lib/vector/Vlib/write_nat.c
+++ b/lib/vector/Vlib/write_nat.c
@@ -427,7 +427,7 @@ int V2_restore_line_nat(struct Map_info *Map, off_t line)
     return V2__add_line_to_topo_nat(Map, offset, type, Points, Cats, line, NULL) > 0 ? 0 : -1;
 }
 
-/*** static or internal subroutines bellow ****/
+/*** static or internal subroutines below ****/
 
 /*!
   \brief Writes feature at the given offset or at the end of the file
diff --git a/lib/vector/vectorlib.dox b/lib/vector/vectorlib.dox
index b1d274a..a42b5ad 100644
--- a/lib/vector/vectorlib.dox
+++ b/lib/vector/vectorlib.dox
@@ -322,7 +322,7 @@ parcels might have two different categories which prevents from a unique assignm
 
 \subsection vlibFeatureTypes Feature types
 
-Feature types are defined in include/vect_dig_defines.h, see the list bellow:
+Feature types are defined in include/vect_dig_defines.h, see the list below:
 
 - GV_POINT
 - GV_LINE
diff --git a/lib/vector/vectorlib_lists.dox b/lib/vector/vectorlib_lists.dox
index ac3638a..e17eb51 100644
--- a/lib/vector/vectorlib_lists.dox
+++ b/lib/vector/vectorlib_lists.dox
@@ -7,7 +7,7 @@ by GRASS Development Team (http://grass.osgeo.org)
 \section vlibStructures List of vector library data structures
 
 All data structure used by the vector library are defined in
-include/vect/dig_structs.h. See the lists bellow.
+include/vect/dig_structs.h. See the lists below.
 
 \subsection vlibStructuresMajor Major
 
diff --git a/lib/vector/vectorlib_pg.dox b/lib/vector/vectorlib_pg.dox
index dd0b3fa..16a58f7 100644
--- a/lib/vector/vectorlib_pg.dox
+++ b/lib/vector/vectorlib_pg.dox
@@ -22,7 +22,7 @@ page</a> for more info.
 
 \section vlibFn List of functions
 
-Note that the functions listed bellow are lower level subroutines, in
+Note that the functions listed below are lower level subroutines, in
 other word these functions are not considered to be part of public
 API. They are internally used by the vector library when accessing
 PostGIS data. The programmer should use higher level functions
diff --git a/locale/po/grassmods_it.po b/locale/po/grassmods_it.po
index 7b9bbb2..21db805 100644
--- a/locale/po/grassmods_it.po
+++ b/locale/po/grassmods_it.po
@@ -38082,7 +38082,7 @@ msgstr "Fattore di scala per l'elevazione"
 #: ../imagery/i.landsat.toar/main.c:221
 msgid "Output at-sensor radiance instead of reflectance for all bands"
 msgstr ""
-"Dà in ouput la radianza al sensore invece che la riflettanza, per tutte le "
+"Dà in output la radianza al sensore invece che la riflettanza, per tutte le "
 "bande"
 
 #: ../imagery/i.landsat.toar/main.c:226
diff --git a/locale/po/grasswxpy_cs.po b/locale/po/grasswxpy_cs.po
index 31edda6..613eb4c 100644
--- a/locale/po/grasswxpy_cs.po
+++ b/locale/po/grasswxpy_cs.po
@@ -18569,7 +18569,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -18606,7 +18606,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_de.po b/locale/po/grasswxpy_de.po
index 73089cf..5845445 100644
--- a/locale/po/grasswxpy_de.po
+++ b/locale/po/grasswxpy_de.po
@@ -18394,7 +18394,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -18431,7 +18431,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_el.po b/locale/po/grasswxpy_el.po
index c44239a..2b47a91 100644
--- a/locale/po/grasswxpy_el.po
+++ b/locale/po/grasswxpy_el.po
@@ -17395,7 +17395,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -17432,7 +17432,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_es.po b/locale/po/grasswxpy_es.po
index e128cb2..a1427b9 100644
--- a/locale/po/grasswxpy_es.po
+++ b/locale/po/grasswxpy_es.po
@@ -18764,7 +18764,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -18801,7 +18801,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_fi.po b/locale/po/grasswxpy_fi.po
index f6dcc12..ceaccaf 100644
--- a/locale/po/grasswxpy_fi.po
+++ b/locale/po/grasswxpy_fi.po
@@ -16914,7 +16914,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -16950,7 +16950,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_fr.po b/locale/po/grasswxpy_fr.po
index 1a1d893..d259fce 100644
--- a/locale/po/grasswxpy_fr.po
+++ b/locale/po/grasswxpy_fr.po
@@ -18181,7 +18181,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -18230,7 +18230,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_id.po b/locale/po/grasswxpy_id.po
index 4eb5a79..39e6cfd 100644
--- a/locale/po/grasswxpy_id.po
+++ b/locale/po/grasswxpy_id.po
@@ -18990,7 +18990,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -19027,7 +19027,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_it.po b/locale/po/grasswxpy_it.po
index 812db26..da258fd 100644
--- a/locale/po/grasswxpy_it.po
+++ b/locale/po/grasswxpy_it.po
@@ -17663,7 +17663,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -17710,7 +17710,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_ja.po b/locale/po/grasswxpy_ja.po
index 155bf27..5e7e1c8 100644
--- a/locale/po/grasswxpy_ja.po
+++ b/locale/po/grasswxpy_ja.po
@@ -18340,7 +18340,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -18377,7 +18377,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_ko.po b/locale/po/grasswxpy_ko.po
index 97b6101..4c2dcc5 100644
--- a/locale/po/grasswxpy_ko.po
+++ b/locale/po/grasswxpy_ko.po
@@ -16905,7 +16905,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -16941,7 +16941,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_lv.po b/locale/po/grasswxpy_lv.po
index 5ff0830..99bc38b 100644
--- a/locale/po/grasswxpy_lv.po
+++ b/locale/po/grasswxpy_lv.po
@@ -17265,7 +17265,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -17301,7 +17301,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_ml.po b/locale/po/grasswxpy_ml.po
index e0b6d90..cdf5aa5 100644
--- a/locale/po/grasswxpy_ml.po
+++ b/locale/po/grasswxpy_ml.po
@@ -17934,7 +17934,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -17971,7 +17971,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_pl.po b/locale/po/grasswxpy_pl.po
index bb0e914..0323679 100644
--- a/locale/po/grasswxpy_pl.po
+++ b/locale/po/grasswxpy_pl.po
@@ -17914,7 +17914,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -17951,7 +17951,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_pt.po b/locale/po/grasswxpy_pt.po
index 53a998a..3f1b496 100644
--- a/locale/po/grasswxpy_pt.po
+++ b/locale/po/grasswxpy_pt.po
@@ -19236,7 +19236,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -19273,7 +19273,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_pt_br.po b/locale/po/grasswxpy_pt_br.po
index 41c4f0a..f2a35be 100644
--- a/locale/po/grasswxpy_pt_br.po
+++ b/locale/po/grasswxpy_pt_br.po
@@ -19742,7 +19742,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -19779,7 +19779,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_ro.po b/locale/po/grasswxpy_ro.po
index 96d126e..b945b7a 100644
--- a/locale/po/grasswxpy_ro.po
+++ b/locale/po/grasswxpy_ro.po
@@ -18480,7 +18480,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -18517,7 +18517,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_ru.po b/locale/po/grasswxpy_ru.po
index 71e2fb2..39af9e6 100644
--- a/locale/po/grasswxpy_ru.po
+++ b/locale/po/grasswxpy_ru.po
@@ -18885,7 +18885,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -18922,7 +18922,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_th.po b/locale/po/grasswxpy_th.po
index 65de8cd..b35a324 100644
--- a/locale/po/grasswxpy_th.po
+++ b/locale/po/grasswxpy_th.po
@@ -18141,7 +18141,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -18178,7 +18178,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_tr.po b/locale/po/grasswxpy_tr.po
index 4caf6ca..6fe05cd 100644
--- a/locale/po/grasswxpy_tr.po
+++ b/locale/po/grasswxpy_tr.po
@@ -18777,7 +18777,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -18814,7 +18814,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_vi.po b/locale/po/grasswxpy_vi.po
index 64d59c9..18499ea 100644
--- a/locale/po/grasswxpy_vi.po
+++ b/locale/po/grasswxpy_vi.po
@@ -18949,7 +18949,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -18986,7 +18986,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/locale/po/grasswxpy_zh.po b/locale/po/grasswxpy_zh.po
index 60bb195..2403951 100644
--- a/locale/po/grasswxpy_zh.po
+++ b/locale/po/grasswxpy_zh.po
@@ -18155,7 +18155,7 @@ msgstr ""
 msgid ""
 "Number of cells (rows*cols) <%d> in current region is higher than "
 "recommended threshold <%d>.\n"
-"It is strongly advised to reduce number of cells in current region bellow "
+"It is strongly advised to reduce number of cells in current region below "
 "recommend threshold.\n"
 " It can be done by <g.region> command.\n"
 "\n"
@@ -18197,7 +18197,7 @@ msgid ""
 "Multiple of bands ranges <%s:%d * %s:%d = %d> is higher than recommended "
 "limit <%d>.\n"
 "It is strongly advised to reduce range extend of bands(e. g. using r."
-"rescale) bellow recommended threshold.\n"
+"rescale) below recommended threshold.\n"
 "\n"
 "Do you really want to add this scatter plot?"
 msgstr ""
diff --git a/man/build_html.py b/man/build_html.py
index 3636069..dc86fcb 100644
--- a/man/build_html.py
+++ b/man/build_html.py
@@ -102,7 +102,7 @@ r"""<!-- the files grass${grass_version_major}.html & helptext.html file live in
        </ul>
 
        <ul>
-        <li class="box"><a href="topic_gui.html">GUI commands</a></li>
+        <li class="box"><a href="topic_GUI.html">GUI commands</a></li>
        </ul>
        <h3> Display</h3>
        <ul>
diff --git a/mswindows/GRASS-Installer.nsi.tmpl b/mswindows/GRASS-Installer.nsi.tmpl
index a986a6f..614b054 100644
--- a/mswindows/GRASS-Installer.nsi.tmpl
+++ b/mswindows/GRASS-Installer.nsi.tmpl
@@ -3,7 +3,7 @@
 ;GRASS GIS Installer for Windows
 ;Written by Marco Pasetti
 ;Updated for OSGeo4W by Colin Nielsen, Helmut Kudrnovsky, and Martin Landa
-;Last Update: $Id: GRASS-Installer.nsi.tmpl 66294 2015-09-22 15:44:38Z hellik $
+;Last Update: $Id: GRASS-Installer.nsi.tmpl 66717 2015-11-02 14:10:15Z hellik $
 ;Mail to: grass-dev at lists.osgeo.org 
 
 ;----------------------------------------------------------------------------------------------------------------------------
@@ -557,7 +557,7 @@ Section "GRASS" SecGRASS
 	FileWrite $0 'rem set path to freetype dll$\r$\n'
 	FileWrite $0 'set FREETYPEBASE=$INSTALL_DIR\extrabin;$INSTALL_DIR\msys\bin;$INSTALL_DIR\lib$\r$\n'
 	FileWrite $0 '$\r$\n'
-	FileWrite $0 'rem set dependecies path$\r$\n'
+	FileWrite $0 'rem set dependencies path$\r$\n'
 	FileWrite $0 'set PATH=%FREETYPEBASE%;%PATH%$\r$\n'
 	FileWrite $0 '$\r$\n'
 	FileWrite $0 'rem GISRC must be set$\r$\n'
diff --git a/mswindows/env.bat b/mswindows/env.bat
index b4424f6..a3446bb 100644
--- a/mswindows/env.bat
+++ b/mswindows/env.bat
@@ -3,7 +3,7 @@ REM Environmental variables for GRASS stand-alone installer
 REM
 
 REM Default prompt: cmd.exe
-REM To enable bash prompt please uncomment the line bellow
+REM To enable bash prompt please uncomment the line below
 REM set GRASS_SH=%GISBASE%\msys\bin\sh.exe
 
 set GRASS_PYTHON=%GISBASE%\extrabin\python.exe
diff --git a/mswindows/osgeo4w/env.bat.tmpl b/mswindows/osgeo4w/env.bat.tmpl
index af91570..015ec46 100644
--- a/mswindows/osgeo4w/env.bat.tmpl
+++ b/mswindows/osgeo4w/env.bat.tmpl
@@ -4,7 +4,7 @@ REM
 
 set GISBASE=%OSGEO4W_ROOT%\apps\grass\grass- at VERSION@
 REM Default prompt: cmd.exe
-REM To enable bash prompt please uncomment the line bellow
+REM To enable bash prompt please uncomment the line below
 REM set GRASS_SH=%OSGEO4W_ROOT%\apps\msys\bin\sh.exe
 
 set GRASS_PYTHON=%OSGEO4W_ROOT%\bin\python.exe
diff --git a/mswindows/osgeo4w/postinstall.bat b/mswindows/osgeo4w/postinstall.bat
index eede096..922c6e7 100644
--- a/mswindows/osgeo4w/postinstall.bat
+++ b/mswindows/osgeo4w/postinstall.bat
@@ -11,5 +11,23 @@ xxmklink "%OSGEO4W_STARTMENU%\GRASS GIS @VERSION@\GRASS @VERSION@ Command Line.l
 
 xxmklink "%ALLUSERSPROFILE%\Desktop\GRASS GIS @VERSION at .lnk" "%BATCH%"  "-gui" \ "Launch GRASS GIS @VERSION@ with wxGUI" 1 "%ICON%" 
 
+rem run g.mkfontcap outside a GRASS session during
+rem an OSGeo4W installation for updating paths to fonts
+
+rem set gisbase
+set GISBASE=%OSGEO4W_ROOT%\apps\grass\grass- at VERSION@
+
+rem set path to freetype dll and its dependencies
+set FREETYPEBASE=%OSGEO4W_ROOT%\bin;%OSGEO4W_ROOT%\apps\msys\bin;%GISBASE%\lib
+
+rem set dependencies to path
+set PATH=%FREETYPEBASE%;%PATH%
+
+rem GISRC must be set
+set GISRC=dummy
+
+rem run g.mkfontcap outside a GRASS session
+"%GISBASE%\bin\g.mkfontcap.exe" -o
+
 del "%OSGEO4W_ROOT%"\bin\@GRASS_EXECUTABLE at .bat.tmpl
 del "%OSGEO4W_ROOT%"\bin\@GRASS_EXECUTABLE at .tmpl
diff --git a/raster/r.carve/enforce_ds.c b/raster/r.carve/enforce_ds.c
index 874b9d5..50c0b0a 100644
--- a/raster/r.carve/enforce_ds.c
+++ b/raster/r.carve/enforce_ds.c
@@ -19,6 +19,7 @@
 
 #include <stdio.h>
 #include <string.h>
+#include <math.h>
 #include <grass/gis.h>
 #include <grass/raster.h>
 #include <grass/glocale.h>
diff --git a/raster/r.external.out/r.external.out.html b/raster/r.external.out/r.external.out.html
index 1014e36..aa5853e 100644
--- a/raster/r.external.out/r.external.out.html
+++ b/raster/r.external.out/r.external.out.html
@@ -20,23 +20,27 @@ The module <em>r.external.out</em> can be used along with
 while writing out the results directly in GeoTIFF:
 
 <div class="code"><pre>
-# register GeoTIFF file in GRASS database:
-r.external terra_lst1km20030314.LST_Day.tif out=modis_celsius
+# register GeoTIFF file to be used in current mapset:
+r.external input=terra_lst1km20030314.LST_Day.tif output=modis_celsius
 
 # define output directory for files resulting from GRASS calculation:
 r.external.out directory=$HOME/gisoutput/ format="GTiff"
 
 # perform GRASS calculation (here: extract pixels > 20 deg C)
-# write output directly as GeoTIFF:
-r.mapcalc "warm.tif = if(modis_celsius > 20, modis_celsius, null() )"
+# this stores the output map directly as GeoTIFF:
+r.mapcalc "warm.tif = if(modis_celsius > 20.0, modis_celsius, null() )"
 
 # cease GDAL output connection and turn back to write GRASS raster files:
 r.external.out -r
 
-# use the result elsewhere
-qgis $HOME/gisoutput/warm.tif
+# now use the resulting file elsewhere
+gdalinfo $HOME/gisoutput/warm.tif
 </pre></div>
 
+<h2>REFERENCES</h2>
+
+GDAL Pages: <a href="http://www.gdal.org">http://www.gdal.org/</a><br>
+
 <h2>SEE ALSO</h2>
 
 <em>
@@ -45,12 +49,9 @@ qgis $HOME/gisoutput/warm.tif
 <a href="r.external.html">r.external</a>
 </em>
 
-<h2>REFERENCES</h2>
-
-GDAL Pages: <a href="http://www.gdal.org">http://www.gdal.org/</a><br>
-
 <h2>AUTHOR</h2>
 
 Glynn Clements
 
-<p><i>Last changed: $Date: 2014-05-29 06:23:58 +0200 (Thu, 29 May 2014) $</i>
+<p>
+<i>Last changed: $Date: 2015-10-27 16:46:21 +0100 (Tue, 27 Oct 2015) $</i>
diff --git a/raster/r.external/proj.c b/raster/r.external/proj.c
index d984196..9d1626f 100644
--- a/raster/r.external/proj.c
+++ b/raster/r.external/proj.c
@@ -110,7 +110,7 @@ void check_projection(struct Cell_head *cellhd, GDALDatasetH hDS, int override)
 	    strcat(error_msg,
 		   _("Consider generating a new location from the input dataset using "
 		     "the 'location' parameter.\n"));
-	    G_fatal_error(error_msg);
+	    G_fatal_error("%s", error_msg);
 	}
 	else {
 	    G_message(_("Projection of input dataset and current location "
diff --git a/raster/r.external/r.external.html b/raster/r.external/r.external.html
index 9eb110b..c10400b 100644
--- a/raster/r.external/r.external.html
+++ b/raster/r.external/r.external.html
@@ -28,7 +28,7 @@ changed to NULL (if() condition).
 
 <div class="code"><pre>
 # import of all channels (each channel will become a GRASS raster map):
-r.external  /home/user/data/maps/059100.tif out=ortho
+r.external input=/home/user/data/maps/059100.tif output=ortho
 g.region raster=ortho.3 -p
 d.rgb r=ortho.1 g=ortho.2 b=ortho.3
 r.composite r=ortho.1 g=ortho.2 b=ortho.3 output=ortho.rgb
@@ -42,19 +42,19 @@ likewise, results can be written out to standard raster formats with
 
 <div class="code"><pre>
 # register GeoTIFF file to be used in current mapset:
-r.external terra_lst1km20030314.LST_Day.tif out=modis_celsius
+r.external input=terra_lst1km20030314.LST_Day.tif output=modis_celsius
  
 # define output directory for files resulting from GRASS calculation:
 r.external.out directory=$HOME/gisoutput/ format="GTiff"
- 
-# perform GRASS calculation (here: extract pixels > 20 deg C)
+
+# perform GRASS calculation (here: extract pixels > 20 deg C)
 # this stores the output map directly as GeoTIFF:
-r.mapcalc "warm.tif = if(modis_celsius > 20.0, modis_celsius, null() )"
- 
+r.mapcalc "warm.tif = if(modis_celsius > 20.0, modis_celsius, null() )"
+
 # cease GDAL output connection and turn back to write GRASS raster files:
 r.external.out -r
- 
-# now use the result elsewhere
+
+# now use the resulting file elsewhere
 gdalinfo $HOME/gisoutput/warm.tif
 </pre></div>
 
@@ -81,4 +81,4 @@ GDAL Pages: <a href="http://www.gdal.org">http://www.gdal.org/</a><br>
 Glynn Clements
 
 <p>
-<i>Last changed: $Date: 2015-08-20 13:05:51 +0200 (Thu, 20 Aug 2015) $</i>
+<i>Last changed: $Date: 2015-10-27 16:46:21 +0100 (Tue, 27 Oct 2015) $</i>
diff --git a/raster/r.flow/mem.h b/raster/r.flow/mem.h
index ca34e0a..f763fac 100644
--- a/raster/r.flow/mem.h
+++ b/raster/r.flow/mem.h
@@ -33,7 +33,7 @@ void put_row_seg( /* l, row */ );
 		   Segment_get_row(l.seg, l.buf[row] - l.col_offset, \
 				          row + l.row_offset) < 1)) ? \
 	(sprintf(string, "r.flow: cannot write segment file for %s", l.name),\
-	 G_fatal_error(string), (DCELL *) NULL) : \
+	 G_fatal_error("%s", string), (DCELL *) NULL) :                  \
 	l.buf[row])
 
 /*   This was is Astley's version 12...
@@ -52,7 +52,7 @@ void put_row_seg( /* l, row */ );
 	(Segment_get(as.seg, &v, \
 			row + as.row_offset, col + as.col_offset) < 1 ? \
 	  (sprintf(string,"r.flow: cannot read segment file for %s",as.name), \
-	   G_fatal_error(string), 0) :					\
+	   G_fatal_error("%s", string), 0) :                             \
 	  v) : \
 	(parm.mem ? \
 	   aspect_fly(el.buf[row - 1] + col, \
@@ -64,7 +64,7 @@ void put_row_seg( /* l, row */ );
     (parm.seg ? \
 	(Segment_get(l.seg, &v, row + l.row_offset, col + l.col_offset) < 1 ? \
 	  (sprintf(string,"r.flow: cannot read segment file for %s",l.name),\
-	   G_fatal_error(string), 0) : \
+	   G_fatal_error("%s", string), 0) :                             \
 	 v) : \
 	l.buf[row][col])
 
@@ -72,7 +72,7 @@ void put_row_seg( /* l, row */ );
     (parm.seg ? \
 	(v = w, \
 	 Segment_put(l.seg, &v, row + l.row_offset, col + l.col_offset) < 1 ? \
-	  (sprintf(string,"r.flow: cannot write segment file for %s",l.name), \
-	   G_fatal_error(string), 0) : \
+           (sprintf(string, "r.flow: cannot write segment file for %s",l.name), \
+            G_fatal_error("%s", string), 0) :                            \
 	 0) : \
 	(l.buf[row][col] = w))
diff --git a/raster/r.in.gdal/main.c b/raster/r.in.gdal/main.c
index 0982ad8..9ce9881 100644
--- a/raster/r.in.gdal/main.c
+++ b/raster/r.in.gdal/main.c
@@ -892,7 +892,7 @@ static void SetupReprojector(const char *pszSrcWKT, const char *pszDstLoc,
 		target_mapset, pszDstLoc);
 	strcat(errbuf, permissions == 0 ? _("permission denied")
 	       : _("not found"));
-	G_fatal_error(errbuf);
+	G_fatal_error("%s", errbuf);
     }				/* permission check */
 
     /* And switch back to original location */
diff --git a/raster/r.in.lidar/main.c b/raster/r.in.lidar/main.c
index aae2dcb..390f990 100644
--- a/raster/r.in.lidar/main.c
+++ b/raster/r.in.lidar/main.c
@@ -451,7 +451,7 @@ int main(int argc, char *argv[])
 	    strcat(error_msg,
 		   _("Consider generating a new location with 'location' parameter"
 		    " from input data set.\n"));
-	    G_fatal_error(error_msg);
+	    G_fatal_error("%s", error_msg);
 	}
 	else if (!shell_style->answer) {
 	    G_message(_("Projection of input dataset and current location "
@@ -1229,7 +1229,7 @@ int main(int argc, char *argv[])
 
 
     sprintf(buff, _("%lu points found in region."), count_total);
-    G_done_msg(buff);
+    G_done_msg("%s", buff);
     G_debug(1, "Processed %lu points.", line_total);
 
     exit(EXIT_SUCCESS);
diff --git a/raster/r.in.xyz/main.c b/raster/r.in.xyz/main.c
index d4ce602..2580217 100644
--- a/raster/r.in.xyz/main.c
+++ b/raster/r.in.xyz/main.c
@@ -1153,7 +1153,7 @@ int main(int argc, char *argv[])
 
 
     sprintf(buff, _("%lu points found in region."), count_total);
-    G_done_msg(buff);
+    G_done_msg("%s", buff);
     G_debug(1, "Processed %lu lines.", line);
 
     exit(EXIT_SUCCESS);
diff --git a/raster/r.mapcalc/r.mapcalc.html b/raster/r.mapcalc/r.mapcalc.html
index dae17c1..bcc4b5d 100644
--- a/raster/r.mapcalc/r.mapcalc.html
+++ b/raster/r.mapcalc/r.mapcalc.html
@@ -12,7 +12,7 @@ and functions.
 <p>where <em>result</em> is the name of a raster map layer
 to contain the result of the calculation and
 <b>expression</b> is any legal arithmetic expression involving existing
-raster map layers, integer or floating point constants,
+raster map layers (except <em>result</em> itself), integer or floating point constants,
 and functions known to the calculator.
 Parentheses are allowed in the expression and may be nested to any depth.
 <em>result</em> will be created in the user's current mapset.
@@ -729,4 +729,4 @@ Research Laboratory
 <p>Glynn Clements
 
 <p>
-<i>Last changed: $Date: 2015-10-19 22:47:47 +0200 (Mon, 19 Oct 2015) $</i>
+<i>Last changed: $Date: 2015-10-25 11:02:36 +0100 (Sun, 25 Oct 2015) $</i>
diff --git a/raster/r.mapcalc/r3.mapcalc.html b/raster/r.mapcalc/r3.mapcalc.html
index dd65f09..86f4e02 100644
--- a/raster/r.mapcalc/r3.mapcalc.html
+++ b/raster/r.mapcalc/r3.mapcalc.html
@@ -12,7 +12,7 @@ and functions.
 <p>where <em>result</em> is the name of a raster map layer
 to contain the result of the calculation and
 <b>expression</b> is any legal arithmetic expression involving existing
-raster map layers, integer or floating point constants,
+raster map layers (except <em>result</em> itself), integer or floating point constants,
 and functions known to the calculator.
 Parentheses are allowed in the expression and may be nested to any depth.
 <em>result</em> will be created in the user's current mapset.
@@ -600,4 +600,4 @@ Tomas Paudits & Jaro Hofierka, funded by GeoModel s.r.o., Slovakia
 <p>Glynn Clements
 
 <p>
-<i>Last changed: $Date: 2015-10-19 22:47:47 +0200 (Mon, 19 Oct 2015) $</i>
+<i>Last changed: $Date: 2015-10-25 11:02:36 +0100 (Sun, 25 Oct 2015) $</i>
diff --git a/raster/r.profile/main.c b/raster/r.profile/main.c
index 458ff75..dba7ceb 100644
--- a/raster/r.profile/main.c
+++ b/raster/r.profile/main.c
@@ -187,7 +187,7 @@ int main(int argc, char *argv[])
 	sprintf(formatbuff, _("Along track dist. [%s], Elevation"), unit);
     if (clr)
 	strcat(formatbuff, _(" RGB color"));
-    G_message(formatbuff);
+    G_message("%s", formatbuff);
 
     /* Get Profile Start Coords */
     if (parm.coord_file->answer) {
diff --git a/raster/r.quant/read_rules.c b/raster/r.quant/read_rules.c
index a4e467c..d255ccd 100644
--- a/raster/r.quant/read_rules.c
+++ b/raster/r.quant/read_rules.c
@@ -20,13 +20,13 @@ int read_range(void)
     for (i = 0; i < noi; i++) {
 	if (Rast_read_fp_range(name[i], G_mapset(), &drange) <= 0) {
 	    sprintf(buff, "Can't read f_range for map %s", name[i]);
-	    G_fatal_error(buff);
+	    G_fatal_error("%s", buff);
 	}
 	Rast_get_fp_range_min_max(&drange, &tmp_dmin, &tmp_dmax);
 
 	if (Rast_read_range(name[i], G_mapset(), &range) <= 0) {
 	    sprintf(buff, "Can't read range for map %s", name[i]);
-	    G_fatal_error(buff);
+	    G_fatal_error("%s", buff);
 	}
 	Rast_get_range_min_max(&range, &tmp_min, &tmp_max);
 	if (!i || tmp_max > old_max || Rast_is_c_null_value(&old_max))
diff --git a/raster/r.random.surface/init.c b/raster/r.random.surface/init.c
index c19046b..738d843 100644
--- a/raster/r.random.surface/init.c
+++ b/raster/r.random.surface/init.c
@@ -110,7 +110,7 @@ void Init(void)
 		Seeds[i] = Seeds[i] % SEED_MAX;
 		sprintf(msg2, _(" seed is set to %d"), Seeds[i]);
 		strcat(msg, msg2);
-		G_warning(msg);
+		G_warning("%s", msg);
 	    }
 	    else if (Seeds[i] < SEED_MIN) {
 		sprintf(msg, _("Seed (%d) smaller than minimum (%d)"),
@@ -119,7 +119,7 @@ void Init(void)
 		    Seeds[i] += SEED_MAX - SEED_MIN;
 		sprintf(msg2, _(" seed is set to %d"), Seeds[i]);
 		strcat(msg, msg2);
-		G_warning(msg);
+		G_warning("%s", msg);
 	    }
 	}			/* /for */
     }				/* /else */
diff --git a/raster/r.reclass/main.c b/raster/r.reclass/main.c
index c3a8463..e640088 100644
--- a/raster/r.reclass/main.c
+++ b/raster/r.reclass/main.c
@@ -121,7 +121,7 @@ int main(int argc, char *argv[])
 	    }
 	    else {
 		strcat(buf, _(" - invalid reclass rule"));
-		G_fatal_error(buf);
+		G_fatal_error("%s", buf);
 	    }
 	    break;
 
diff --git a/raster/r.regression.line/main.c b/raster/r.regression.line/main.c
index 1f7cffb..96885fe 100644
--- a/raster/r.regression.line/main.c
+++ b/raster/r.regression.line/main.c
@@ -45,6 +45,7 @@ int main(int argc, char *argv[])
     module = G_define_module();
     G_add_keyword(_("raster"));
     G_add_keyword(_("statistics"));
+    G_add_keyword(_("regression"));
     module->description =
 	_("Calculates linear regression from two raster maps: y = a + b*x.");
 
diff --git a/raster/r.regression.line/r.regression.line.html b/raster/r.regression.line/r.regression.line.html
index 6158e31..43d513c 100644
--- a/raster/r.regression.line/r.regression.line.html
+++ b/raster/r.regression.line/r.regression.line.html
@@ -1,8 +1,18 @@
 <h2>DESCRIPTION</h2>
 
-<em>r.regression.line</em> Calculates linear regression from two raster maps, 
-according to the formula y = a + b*x, where x and y represent raster maps. 
-Optionally saves regression coefficients to an ASCII file. 
+<em>r.regression.line</em> calculates a linear regression from two
+raster maps, according to the formula
+<div class="code"><pre>
+y = a + b*x
+</pre></div>
+where
+<div class="code"><pre>
+x
+y
+</pre></div>
+represent the input raster maps.
+<p>
+Optionally, it saves regression coefficients as a ASCII file. 
 The result includes the following coefficients:
 offset/intercept (a) and gain/slope (b), correlation coefficient (R),
 number of elements (N), means (medX, medY), standard deviations
@@ -15,33 +25,55 @@ identical to that obtained from R-stats's lm() function.
 
 <h2>EXAMPLE</h2>
 
-Comparison of the old and the new DEM in Spearfish:
+Comparison of two DEMs (SRTM and NED, both at 30m resolution),
+provided in the North Carolina sample dataset:
+
 <div class="code"><pre>
-g.region raster=elevation.10m -p
-r.regression.line map1=elevation.dem map2=elevation.10m
+g.region raster=elev_srtm_30m -p
+r.regression.line mapx=elev_ned_30m mapy=elev_srtm_30m 
+ y = a + b*x
+   a (Offset): -1.659279
+   b (Gain): 1.043968
+   R (sumXY - sumX*sumY/N): 0.894038
+   N (Number of elements): 225000
+   F (F-test significance): 896093.366283
+   meanX (Mean of map1): 110.307571
+   sdX (Standard deviation of map1): 20.311998
+   meanY (Mean of map2): 113.498292
+   sdY (Standard deviation of map2): 23.718307
 </pre></div>
 <p>
 Using the script style flag AND <em>eval</em> to make results
 available in the shell:
 <div class="code"><pre>
-g.region raster=elevation.10m -p
-eval `r.regression.line -g map1=elevation.dem map2=elevation.10m`
+g.region raster=elev_srtm_30m -p
+eval `r.regression.line -g mapx=elev_ned_30m mapy=elev_srtm_30m`
+
+# print result stored in respective variables
 echo $a
-479.615
+-1.659279
 
 echo $b
-0.645631
+1.043968
 
 echo $R
-0.804441
+0.894038
 </pre></div>
 
+<h2>SEE ALSO</h2>
+
+<em>
+<a href="d.correlate.html">d.correlate</a>,
+<a href="r.regression.multi.html">r.regression.multi</a>,
+<a href="r.stats.html">r.stats</a>
+</em>
+
 
-<h2>AUTHOR</h2>
+<h2>AUTHORS</h2>
 
 Dr. Agustin Lobo - alobo at ija.csic.es<br>
 Updated to GRASS 5.7 Michael Barton, Arizona State University<br>
 Script style output Markus Neteler<br>
 Conversion to C module Markus Metz
 
-<p><i>Last changed: $Date: 2014-12-19 22:55:37 +0100 (Fri, 19 Dec 2014) $</i>
+<p><i>Last changed: $Date: 2015-10-27 18:41:34 +0100 (Tue, 27 Oct 2015) $</i>
diff --git a/raster/r.regression.multi/main.c b/raster/r.regression.multi/main.c
index 165fa96..4cce5f5 100644
--- a/raster/r.regression.multi/main.c
+++ b/raster/r.regression.multi/main.c
@@ -127,6 +127,7 @@ int main(int argc, char *argv[])
     module = G_define_module();
     G_add_keyword(_("raster"));
     G_add_keyword(_("statistics"));
+    G_add_keyword(_("regression"));
     module->description =
 	_("Calculates multiple linear regression from raster maps.");
 
diff --git a/raster/r.regression.multi/r.regression.multi.html b/raster/r.regression.multi/r.regression.multi.html
index 4570988..34abd4d 100644
--- a/raster/r.regression.multi/r.regression.multi.html
+++ b/raster/r.regression.multi/r.regression.multi.html
@@ -69,16 +69,27 @@ available through the R-function stepAIC.
 
 <h2>EXAMPLE</h2>
 
+<!-- replace with better example -->
+
 Multiple regression with soil K-factor and elevation, aspect, and slope
 (North Carolina dataset). Output maps are the residuals and estimates:
+
 <div class="code"><pre>
 g.region raster=soils_Kfactor -p
 r.regression.multi mapx=elevation,aspect,slope mapy=soils_Kfactor \
   residuals=soils_Kfactor.resid estimates=soils_Kfactor.estim
 </pre></div>
 
+<h2>SEE ALSO</h2>
+
+<em>
+<a href="d.correlate.html">d.correlate</a>,
+<a href="r.regression.line.html">r.regression.line</a>,
+<a href="r.stats.html">r.stats</a>
+</em>
+
 <h2>AUTHOR</h2>
 
 Markus Metz
 
-<p><i>Last changed: $Date: 2015-02-13 16:16:22 +0100 (Fri, 13 Feb 2015) $</i>
+<p><i>Last changed: $Date: 2015-10-27 18:41:34 +0100 (Tue, 27 Oct 2015) $</i>
diff --git a/raster/r.resamp.interp/r.resamp.interp.html b/raster/r.resamp.interp/r.resamp.interp.html
index 1de1d18..c82422a 100644
--- a/raster/r.resamp.interp/r.resamp.interp.html
+++ b/raster/r.resamp.interp/r.resamp.interp.html
@@ -46,19 +46,30 @@ North Carolina sample dataset):
 <div class="code"><pre>
 g.region raster=elev_state_500m -p
 g.region res=250 -ap
-r.resamp.interp input=elev_state_500m output=elev_state_250m
+r.resamp.interp input=elev_state_500m output=elev_state_250m \
+                method=bilinear
 </pre></div>
 
+<center>
+<img src="r_resamp_interp_orig_500m.png" alt="Original 500m resolution elevation map"><br>
+Original 500m resolution elevation map
+<p>
+<img src="r_resamp_interp_new_250m.png" alt="Resampled 250m resolution elevation map"><br>
+Resampled (bilinear) 250m resolution elevation map
+</center>
 
 <h2>SEE ALSO</h2>
 
-<em><a href="g.region.html">g.region</a></em>,
-<em><a href="r.resample.html">r.resample</a></em>,
-<em><a href="r.resamp.rst.html">r.resamp.rst</a></em>
-<em><a href="r.resamp.stats.html">r.resamp.stats</a></em>
+<em>
+<a href="g.region.html">g.region</a>,
+<a href="r.resample.html">r.resample</a>,
+<a href="r.resamp.filter.html">r.resamp.filter</a>,
+<a href="r.resamp.rst.html">r.resamp.rst</a>,
+<a href="r.resamp.stats.html">r.resamp.stats</a>
+</em>
 
 <h2>AUTHOR</h2>
 
 Glynn Clements
 
-<p><i>Last changed: $Date: 2014-12-19 22:55:37 +0100 (Fri, 19 Dec 2014) $</i>
+<p><i>Last changed: $Date: 2015-10-29 16:52:52 +0100 (Thu, 29 Oct 2015) $</i>
diff --git a/raster/r.resamp.interp/r_resamp_interp_new_250m.png b/raster/r.resamp.interp/r_resamp_interp_new_250m.png
new file mode 100644
index 0000000..51e2d04
Binary files /dev/null and b/raster/r.resamp.interp/r_resamp_interp_new_250m.png differ
diff --git a/raster/r.resamp.interp/r_resamp_interp_orig_500m.png b/raster/r.resamp.interp/r_resamp_interp_orig_500m.png
new file mode 100644
index 0000000..e857dd3
Binary files /dev/null and b/raster/r.resamp.interp/r_resamp_interp_orig_500m.png differ
diff --git a/raster/r.resamp.stats/r.resamp.stats.html b/raster/r.resamp.stats/r.resamp.stats.html
index 5759791..cde367f 100644
--- a/raster/r.resamp.stats/r.resamp.stats.html
+++ b/raster/r.resamp.stats/r.resamp.stats.html
@@ -47,7 +47,8 @@ r.resamp.stats -w input=el_D782_6m output=el_D782_20m
 <em>
 <a href="g.region.html">g.region</a>,
 <a href="r.resample.html">r.resample</a>,
-<a href="r.resamp.rst.html">r.resamp.rst</a>
+<a href="r.resamp.rst.html">r.resamp.rst</a>,
+<a href="r.resamp.filter.html">r.resamp.filter</a>,
 <a href="r.resamp.interp.html">r.resamp.interp</a>
 </em>
 
@@ -55,4 +56,4 @@ r.resamp.stats -w input=el_D782_6m output=el_D782_20m
 
 Glynn Clements
 
-<p><i>Last changed: $Date: 2014-12-19 22:55:37 +0100 (Fri, 19 Dec 2014) $</i>
+<p><i>Last changed: $Date: 2015-10-29 16:52:52 +0100 (Thu, 29 Oct 2015) $</i>
diff --git a/raster/r.to.rast3/main.c b/raster/r.to.rast3/main.c
index 7a6e790..4901b27 100644
--- a/raster/r.to.rast3/main.c
+++ b/raster/r.to.rast3/main.c
@@ -64,7 +64,7 @@ void fatal_error(void *map, int *fd, int depths, char *errorMsg)
             close_input_raster_map(fd[i]);
     }
 
-    Rast3d_fatal_error(errorMsg);
+    Rast3d_fatal_error("%s", errorMsg);
     exit(EXIT_FAILURE);
 
 }
diff --git a/raster/r.to.rast3elev/main.c b/raster/r.to.rast3elev/main.c
index 1766514..fcd0286 100644
--- a/raster/r.to.rast3elev/main.c
+++ b/raster/r.to.rast3elev/main.c
@@ -142,7 +142,7 @@ void fatal_error(Database db, char *errorMsg)
     if (db.elev)
         close_input_raster_map(db.elev);
 
-    Rast3d_fatal_error(errorMsg);
+    Rast3d_fatal_error("%s", errorMsg);
     exit(EXIT_FAILURE);
 }
 
diff --git a/raster/r.to.vect/main.c b/raster/r.to.vect/main.c
index bc7bb93..9db8ed6 100644
--- a/raster/r.to.vect/main.c
+++ b/raster/r.to.vect/main.c
@@ -216,7 +216,7 @@ int main(int argc, char *argv[])
 
 	db_append_string(&sql, ")");
 
-	G_debug(3, db_get_string(&sql));
+	G_debug(3, "%s", db_get_string(&sql));
 
 	if (db_execute_immediate(driver, &sql) != DB_OK)
 	    G_fatal_error(_("Unable to create table: %s"),
@@ -296,7 +296,7 @@ int main(int argc, char *argv[])
 		sprintf(buf, "insert into %s values ( %d, '%s')", Fi->table,
 			cat, db_get_string(&label));
 		db_set_string(&sql, buf);
-		G_debug(3, db_get_string(&sql));
+		G_debug(3, "%s", db_get_string(&sql));
 
 		if (db_execute_immediate(driver, &sql) != DB_OK)
 		    G_fatal_error(_("Unable to insert into table: %s"),
diff --git a/raster/r.to.vect/util.c b/raster/r.to.vect/util.c
index eebc212..bc8a39c 100644
--- a/raster/r.to.vect/util.c
+++ b/raster/r.to.vect/util.c
@@ -151,7 +151,7 @@ void insert_value(int cat, int val, double dval)
 
     db_append_string(&sql, ")");
 
-    G_debug(3, db_get_string(&sql));
+    G_debug(3, "%s", db_get_string(&sql));
 
     if (db_execute_immediate(driver, &sql) != DB_OK)
 	G_fatal_error(_("Cannot insert new row: %s"), db_get_string(&sql));
diff --git a/raster3d/r3.cross.rast/main.c b/raster3d/r3.cross.rast/main.c
index 1dadcde..600384f 100644
--- a/raster3d/r3.cross.rast/main.c
+++ b/raster3d/r3.cross.rast/main.c
@@ -62,7 +62,7 @@ void fatal_error(void *map, int elevfd, int outfd, char *errorMsg)
     if (elevfd != -1)
         close_output_map(elevfd);
 
-    Rast3d_fatal_error(errorMsg);
+    Rast3d_fatal_error("%s", errorMsg);
     exit(EXIT_FAILURE);
 
 }
diff --git a/raster3d/r3.in.ascii/main.c b/raster3d/r3.in.ascii/main.c
index 9e92285..a67d7ad 100644
--- a/raster3d/r3.in.ascii/main.c
+++ b/raster3d/r3.in.ascii/main.c
@@ -65,7 +65,7 @@ void fatalError(char *errorMsg)
         Rast3d_close(map);
     }
 
-    Rast3d_fatal_error(errorMsg);
+    Rast3d_fatal_error("%s", errorMsg);
 }
 
 /*---------------------------------------------------------------------------*/
diff --git a/raster3d/r3.in.v5d/main.c b/raster3d/r3.in.v5d/main.c
index 7d1652f..d258818 100644
--- a/raster3d/r3.in.v5d/main.c
+++ b/raster3d/r3.in.v5d/main.c
@@ -48,7 +48,7 @@ static void fatalError(char *errorMsg)
 	/* should unopen map here! */
     }
 
-    Rast3d_fatal_error(errorMsg);
+    Rast3d_fatal_error("%s", errorMsg);
 }
 
 /*---------------------------------------------------------------------------*/
diff --git a/raster3d/r3.out.ascii/main.c b/raster3d/r3.out.ascii/main.c
index 72d50bd..2af12d0 100644
--- a/raster3d/r3.out.ascii/main.c
+++ b/raster3d/r3.out.ascii/main.c
@@ -64,7 +64,7 @@ void fatalError(char *errorMsg)
 
     }
 
-    Rast3d_fatal_error(errorMsg);
+    Rast3d_fatal_error("%s", errorMsg);
 }
 
 /*---------------------------------------------------------------------------*/
diff --git a/raster3d/r3.out.v5d/main.c b/raster3d/r3.out.v5d/main.c
index 5d54b1f..7b74c33 100644
--- a/raster3d/r3.out.v5d/main.c
+++ b/raster3d/r3.out.v5d/main.c
@@ -55,7 +55,7 @@ void fatalError(char *errorMsg)
 	    fatalError(_("Unable to close 3D raster map"));
     }
 
-    Rast3d_fatal_error(errorMsg);
+    Rast3d_fatal_error("%s", errorMsg);
 }
 
 /*---------------------------------------------------------------------------*/
diff --git a/raster3d/r3.retile/main.c b/raster3d/r3.retile/main.c
index 10fb26e..c10d7f5 100644
--- a/raster3d/r3.retile/main.c
+++ b/raster3d/r3.retile/main.c
@@ -54,7 +54,7 @@ void fatal_error(void *map, int *fd, int depths, char *errorMsg)
             Rast_unopen(fd[i]);
     }
 
-    Rast3d_fatal_error(errorMsg);
+    Rast3d_fatal_error("%s", errorMsg);
     exit(EXIT_FAILURE);
 
 }
diff --git a/raster3d/r3.to.rast/main.c b/raster3d/r3.to.rast/main.c
index 9006d22..1119f26 100644
--- a/raster3d/r3.to.rast/main.c
+++ b/raster3d/r3.to.rast/main.c
@@ -60,7 +60,7 @@ void fatal_error(void *map, int *fd, int depths, char *errorMsg)
             Rast_unopen(fd[i]);
     }
 
-    Rast3d_fatal_error(errorMsg);
+    Rast3d_fatal_error("%s", errorMsg);
     exit(EXIT_FAILURE);
 
 }
diff --git a/scripts/d.correlate/d.correlate.html b/scripts/d.correlate/d.correlate.html
index 67d5216..37b67d0 100644
--- a/scripts/d.correlate/d.correlate.html
+++ b/scripts/d.correlate/d.correlate.html
@@ -23,6 +23,11 @@ g.region raster=lsat7_2002_30 -p
 d.correlate map=lsat7_2002_30,lsat7_2002_40
 </pre></div>
 
+<center>
+<img src="d_correlate_plot.png" border=1 alt="Scatterplot of two LANDSAT TM7 channels"><br>
+Scatterplot of two LANDSAT TM7 channels
+</center>
+
 <h2>SEE ALSO</h2>
 
 <em>
@@ -39,4 +44,4 @@ Michael Shapiro,
 <a href="http://www.cecer.army.mil/">U.S.Army Construction Engineering Research Laboratory</a>
 <p>Rewritten to GRASS 6 (from csh to sh) by Markus Neteler; from sh to Python by Glynn Clements
 
-<p><i>Last changed: $Date: 2014-12-19 22:55:37 +0100 (Fri, 19 Dec 2014) $</i>
+<p><i>Last changed: $Date: 2015-10-27 18:41:34 +0100 (Tue, 27 Oct 2015) $</i>
diff --git a/scripts/d.correlate/d_correlate_plot.png b/scripts/d.correlate/d_correlate_plot.png
new file mode 100644
index 0000000..541df93
Binary files /dev/null and b/scripts/d.correlate/d_correlate_plot.png differ
diff --git a/scripts/db.in.ogr/db.in.ogr.py b/scripts/db.in.ogr/db.in.ogr.py
index e684852..4c34fbe 100755
--- a/scripts/db.in.ogr/db.in.ogr.py
+++ b/scripts/db.in.ogr/db.in.ogr.py
@@ -71,7 +71,13 @@ def main():
 	output = grass.basename(tmpname)
 
     # check if table exists
-    s = grass.read_command('db.tables', flags = 'p', quiet=True)
+    try:
+        s = grass.read_command('db.tables', flags = 'p', quiet=True)
+    except CalledModuleError:
+        # check connection parameters, set if uninitialized
+        grass.read_command('db.connect', flags='c')
+        s = grass.read_command('db.tables', flags = 'p', quiet=True)
+    
     for l in s.splitlines():
         if l == output:
             if grass.overwrite():
diff --git a/scripts/r.in.wms/srs.py b/scripts/r.in.wms/srs.py
index 7b12e9a..4ffa899 100644
--- a/scripts/r.in.wms/srs.py
+++ b/scripts/r.in.wms/srs.py
@@ -9,7 +9,7 @@ List of classes:
 This program is free software under the GNU General Public License
 (>=v2). Read the file COPYING that comes with GRASS for details.
 
- at author Stepan Turek <stepan.turek seznam.cz> (Based on code from OWSLib - Copyright bellow)
+ at author Stepan Turek <stepan.turek seznam.cz> (Based on code from OWSLib - Copyright below)
 """
 # -*- coding: ISO-8859-15 -*-
 # =============================================================================
diff --git a/scripts/v.import/v.import.py b/scripts/v.import/v.import.py
index f5d4f8b..a60dda4 100755
--- a/scripts/v.import/v.import.py
+++ b/scripts/v.import/v.import.py
@@ -45,7 +45,7 @@
 #% type: string
 #% options: input,region
 #% answer: input
-#% description: Ouput vector map extent
+#% description: Output vector map extent
 #% descriptions: input;extent of input map;region;extent of current region
 #% guisection: Output
 #%end
diff --git a/temporal/t.rast.aggregate/t.rast.aggregate.html b/temporal/t.rast.aggregate/t.rast.aggregate.html
index c7587e3..fce5e9e 100644
--- a/temporal/t.rast.aggregate/t.rast.aggregate.html
+++ b/temporal/t.rast.aggregate/t.rast.aggregate.html
@@ -53,7 +53,7 @@ available for aggregation computation. Internally several
 specified parallel processes (<em>nprocs</em>) and the number of
 intervals to aggregate.
 <p>
-The flag <b>-s</b> allows to store a date as map name suffix rather than
+The flag <b>-s</b> allows storing a date as map name suffix rather than
 using consecutive numbering. See the examples below for details.
 
 <h2>EXAMPLES</h2>
@@ -260,4 +260,4 @@ yearly_avg_temp_2004|climate|2004-01-01 00:00:00|2005-01-01 00:00:00
 
 Sören Gebbert, Thünen Institute of Climate-Smart Agriculture
 
-<p><i>Last changed: $Date: 2015-09-28 12:43:57 +0200 (Mon, 28 Sep 2015) $</i>
+<p><i>Last changed: $Date: 2015-10-22 00:41:33 +0200 (Thu, 22 Oct 2015) $</i>
diff --git a/temporal/t.shift/t.shift.py b/temporal/t.shift/t.shift.py
index 4c40439..6345250 100755
--- a/temporal/t.shift/t.shift.py
+++ b/temporal/t.shift/t.shift.py
@@ -25,7 +25,7 @@
 #% description: Name of an existing space time dataset
 #%end
 
-#%option G_OPT_T_TYPE
+#%option G_OPT_STDS_TYPE
 #% guidependency: input
 #% guisection: Required
 #%end
diff --git a/vector/v.external.out/format.c b/vector/v.external.out/format.c
index f1cd117..8705f23 100644
--- a/vector/v.external.out/format.c
+++ b/vector/v.external.out/format.c
@@ -1,4 +1,5 @@
 #include <string.h>
+#include <stdlib.h>
 
 #include <grass/gis.h>
 #include <grass/glocale.h>
diff --git a/vector/v.external/main.c b/vector/v.external/main.c
index df22668..626294d 100644
--- a/vector/v.external/main.c
+++ b/vector/v.external/main.c
@@ -24,7 +24,9 @@
 #include <grass/vector.h>
 #include <grass/glocale.h>
 
+#ifdef HAVE_OGR
 #include <ogr_api.h>
+#endif
 
 #include "local_proto.h"
 
diff --git a/vector/v.in.ascii/main.c b/vector/v.in.ascii/main.c
index adcd9d2..dae9c59 100644
--- a/vector/v.in.ascii/main.c
+++ b/vector/v.in.ascii/main.c
@@ -404,7 +404,7 @@ int main(int argc, char *argv[])
 				Fi->driver);
 
 	    /* Create table */
-	    G_debug(3, db_get_string(&sql));
+	    G_debug(3, "%s", db_get_string(&sql));
 	    if (db_execute_immediate(driver, &sql) != DB_OK) {
 		G_fatal_error(_("Unable to create table: %s"),
 			      db_get_string(&sql));
diff --git a/vector/v.in.ascii/points.c b/vector/v.in.ascii/points.c
index a3c5186..bfa6d2f 100644
--- a/vector/v.in.ascii/points.c
+++ b/vector/v.in.ascii/points.c
@@ -446,7 +446,7 @@ int points_to_bin(FILE * ascii, int rowlen, struct Map_info *Map,
 		db_append_string(&sql, buf2);
 	    }
 	    db_append_string(&sql, ")");
-	    G_debug(3, db_get_string(&sql));
+	    G_debug(3, "%s", db_get_string(&sql));
 
 	    if (db_execute_immediate(driver, &sql) != DB_OK) {
 		G_fatal_error(_("Unable to insert new record: %s"),
diff --git a/vector/v.in.lidar/main.c b/vector/v.in.lidar/main.c
index 6b22cbe..f4cd4cf 100644
--- a/vector/v.in.lidar/main.c
+++ b/vector/v.in.lidar/main.c
@@ -472,7 +472,7 @@ int main(int argc, char *argv[])
 	    strcat(error_msg,
 		   _("Consider generating a new location with 'location' parameter"
 		    " from input data set.\n"));
-	    G_fatal_error(error_msg);
+	    G_fatal_error("%s", error_msg);
 	}
 	else {
 	    G_verbose_message(_("Projection of input dataset and current "
@@ -596,7 +596,7 @@ int main(int argc, char *argv[])
 	}
 
 	db_append_string(&sql, ")");
-	G_debug(3, db_get_string(&sql));
+	G_debug(3, "%s", db_get_string(&sql));
 
 	driver =
 	    db_start_driver_open_database(Fi->driver,
@@ -778,7 +778,7 @@ int main(int argc, char *argv[])
 		db_append_string(&sql, buf);
 	    }
 	    db_append_string(&sql, " )");
-	    G_debug(3, db_get_string(&sql));
+	    G_debug(3, "%s", db_get_string(&sql));
 
 	    if (db_execute_immediate(driver, &sql) != DB_OK) {
 		G_fatal_error(_("Cannot insert new row: %s"),
diff --git a/vector/v.in.ogr/main.c b/vector/v.in.ogr/main.c
index 2477f76..125d12a 100644
--- a/vector/v.in.ogr/main.c
+++ b/vector/v.in.ogr/main.c
@@ -712,7 +712,7 @@ int main(int argc, char *argv[])
 	    strcat(error_msg,
 		   _("Consider generating a new location with 'location' parameter"
 		    " from input data set.\n"));
-	    G_fatal_error(error_msg);
+	    G_fatal_error("%s", error_msg);
 	}
 	else {
 	    G_verbose_message(_("Projection of input dataset and current location "
@@ -1117,7 +1117,7 @@ int main(int argc, char *argv[])
 		G_free(Ogr_fieldname);
 	    }
 	    db_append_string(&sql, ")");
-	    G_debug(3, db_get_string(&sql));
+	    G_debug(3, "%s", db_get_string(&sql));
 
 	    driver =
 		db_start_driver_open_database(Fi->driver,
@@ -1252,7 +1252,7 @@ int main(int argc, char *argv[])
 		    db_append_string(&sql, buf);
 		}
 		db_append_string(&sql, " )");
-		G_debug(3, db_get_string(&sql));
+		G_debug(3, "%s", db_get_string(&sql));
 
 		if (db_execute_immediate(driver, &sql) != DB_OK) {
 		    db_close_database(driver);
diff --git a/vector/v.in.ogr/v.in.ogr.html b/vector/v.in.ogr/v.in.ogr.html
index ceb9716..b73acde 100644
--- a/vector/v.in.ogr/v.in.ogr.html
+++ b/vector/v.in.ogr/v.in.ogr.html
@@ -134,7 +134,7 @@ LDID/codepage setting from the .dbf file and use it to translate
 string fields to UTF-8. LDID "87 / 0x57" is treated as
 ISO8859_1 which may not be appropriate for many
 languages. Unfortunately it is not clear what other values may be
-appropriate (see example bellow). To change encoding the user can set
+appropriate (see example below). To change encoding the user can set
 up <tt>SHAPE_ENCODING</tt> environmental variable or simply to define
 encoding value using <b>encoding</b> parameter. Note that recoding
 support is new for GDAL/OGR 1.9.0.
@@ -154,7 +154,7 @@ Starting with GDAL 1.11 the library supports multiple geometry columns
 in OGR. By default <em>v.in.ogr</em> reads all geometry columns from
 given layer. The user can choose desired geometry column
 by <b>geometry</b> option,
-see <a href="#multiple-geometry-columns">example bellow</a>.
+see <a href="#multiple-geometry-columns">example below</a>.
 
 <h2>EXAMPLES</h2>
 
@@ -297,7 +297,7 @@ In our example layer "Okresy" has three geometry columns:
 "GeneralizovanaHranice". By default <em>v.in.ogr</em> reads data from
 all three geometry columns. The user can specify desired geometry
 column by <b>geometry</b> option, in this case the module will read
-geometry only from the specified geometry column. In the example bellow,
+geometry only from the specified geometry column. In the example below,
 the output vector map will contain only geometry saved in
 "OriginalniHranice" geometry column.
 
@@ -368,4 +368,4 @@ Various improvements by Markus Metz
 Multiple geometry columns support by Martin Landa, OSGeoREL, Czech Technical University in Prague, Czech Republic
 
 <p>
-<i>Last changed: $Date: 2014-12-22 22:19:29 +0100 (Mon, 22 Dec 2014) $</i>
+<i>Last changed: $Date: 2015-10-22 00:41:33 +0200 (Thu, 22 Oct 2015) $</i>
diff --git a/vector/v.net.allpairs/main.c b/vector/v.net.allpairs/main.c
index ae877fd..b459021 100644
--- a/vector/v.net.allpairs/main.c
+++ b/vector/v.net.allpairs/main.c
@@ -172,7 +172,7 @@ int main(int argc, char *argv[])
 	    Fi->table);
 
     db_set_string(&sql, buf);
-    G_debug(2, db_get_string(&sql));
+    G_debug(2, "%s", db_get_string(&sql));
 
     if (db_execute_immediate(driver, &sql) != DB_OK) {
 	db_close_database_shutdown_driver(driver);
@@ -264,7 +264,7 @@ int main(int argc, char *argv[])
 	    sprintf(buf, "insert into %s values (%d, %d, %d, %f)",
 		    Fi->table, cat, spnode[i].cat, spnode[j].cat, cost);
 	    db_set_string(&sql, buf);
-	    G_debug(3, db_get_string(&sql));
+	    G_debug(3, "%s", db_get_string(&sql));
 
 	    if (db_execute_immediate(driver, &sql) != DB_OK) {
 		db_close_database_shutdown_driver(driver);
diff --git a/vector/v.net.centrality/main.c b/vector/v.net.centrality/main.c
index 0f89bb3..fc7058f 100644
--- a/vector/v.net.centrality/main.c
+++ b/vector/v.net.centrality/main.c
@@ -260,7 +260,7 @@ int main(int argc, char *argv[])
 	    "create table %s(cat integer%s)", Fi->table, db_get_string(&tmp));
 
     db_set_string(&sql, buf);
-    G_debug(2, db_get_string(&sql));
+    G_debug(2, "%s", db_get_string(&sql));
 
     if (db_execute_immediate(driver, &sql) != DB_OK) {
 	G_fatal_error(_("Unable to create table: '%s'"), db_get_string(&sql));
diff --git a/vector/v.net.components/main.c b/vector/v.net.components/main.c
index 0520651..9a1d6dd 100644
--- a/vector/v.net.components/main.c
+++ b/vector/v.net.components/main.c
@@ -31,7 +31,7 @@ int insert_new_record(dbDriver * driver, struct field_info *Fi,
 
     sprintf(buf, "insert into %s values (%d, %d)", Fi->table, cat, comp);
     db_set_string(sql, buf);
-    G_debug(3, db_get_string(sql));
+    G_debug(3, "%s", db_get_string(sql));
 
     if (db_execute_immediate(driver, sql) != DB_OK) {
 	db_close_database_shutdown_driver(driver);
@@ -182,7 +182,7 @@ int main(int argc, char *argv[])
     sprintf(buf, "create table %s ( cat integer, comp integer)", Fi->table);
 
     db_set_string(&sql, buf);
-    G_debug(2, db_get_string(&sql));
+    G_debug(2, "%s", db_get_string(&sql));
 
     if (db_execute_immediate(driver, &sql) != DB_OK) {
 	db_close_database_shutdown_driver(driver);
diff --git a/vector/v.net.distance/main.c b/vector/v.net.distance/main.c
index fbf61c8..0bd04ac 100644
--- a/vector/v.net.distance/main.c
+++ b/vector/v.net.distance/main.c
@@ -257,7 +257,7 @@ int main(int argc, char *argv[])
 	    Fi->table);
 
     db_set_string(&sql, buf);
-    G_debug(2, db_get_string(&sql));
+    G_debug(2, "%s", db_get_string(&sql));
 
     if (db_execute_immediate(driver, &sql) != DB_OK) {
 	G_fatal_error(_("Unable to create table: '%s'"), db_get_string(&sql));
@@ -320,7 +320,7 @@ int main(int argc, char *argv[])
 		    tcat, cost);
 
 	    db_set_string(&sql, buf);
-	    G_debug(3, db_get_string(&sql));
+	    G_debug(3, "%s", db_get_string(&sql));
 	    if (db_execute_immediate(driver, &sql) != DB_OK) {
 		G_fatal_error(_("Cannot insert new record: %s"),
 			      db_get_string(&sql));
diff --git a/vector/v.net.flow/main.c b/vector/v.net.flow/main.c
index 1a37d2a..a002180 100644
--- a/vector/v.net.flow/main.c
+++ b/vector/v.net.flow/main.c
@@ -174,7 +174,7 @@ int main(int argc, char *argv[])
 	    Fi->table);
 
     db_set_string(&sql, buf);
-    G_debug(2, db_get_string(&sql));
+    G_debug(2, "%s", db_get_string(&sql));
 
     if (db_execute_immediate(driver, &sql) != DB_OK) {
 	db_close_database_shutdown_driver(driver);
@@ -255,7 +255,7 @@ int main(int argc, char *argv[])
 	    sprintf(buf, "insert into %s values (%d, %f)", Fi->table, cat,
 		    flow[i] / (double)In.dgraph.cost_multip);
 	    db_set_string(&sql, buf);
-	    G_debug(3, db_get_string(&sql));
+	    G_debug(3, "%s", db_get_string(&sql));
 
 	    if (db_execute_immediate(driver, &sql) != DB_OK) {
 		db_close_database_shutdown_driver(driver);
diff --git a/vector/v.net.path/path.c b/vector/v.net.path/path.c
index ed0f04c..a45023c 100644
--- a/vector/v.net.path/path.c
+++ b/vector/v.net.path/path.c
@@ -103,7 +103,7 @@ int path(struct Map_info *In, struct Map_info *Out, char *filename,
 	    Fi->table);
 
     db_set_string(&sql, buf);
-    G_debug(2, db_get_string(&sql));
+    G_debug(2, "%s", db_get_string(&sql));
 
     if (db_execute_immediate(driver, &sql) != DB_OK) {
 	G_fatal_error(_("Unable to create table: '%s'"), db_get_string(&sql));
@@ -306,7 +306,7 @@ int path(struct Map_info *In, struct Map_info *Out, char *filename,
 		"insert into %s values ( %d, %d, %d, %d, %d, %f, %f, %f)",
 		Fi->table, cat, id, fcat, tcat, sp, cost, fdist, tdist);
 	db_set_string(&sql, buf);
-	G_debug(3, db_get_string(&sql));
+	G_debug(3, "%s", db_get_string(&sql));
 
 	if (db_execute_immediate(driver, &sql) != DB_OK) {
 	    G_fatal_error(_("Cannot insert new record: %s"),
diff --git a/vector/v.net.timetable/main.c b/vector/v.net.timetable/main.c
index 2e9bba6..18f2ba6 100644
--- a/vector/v.net.timetable/main.c
+++ b/vector/v.net.timetable/main.c
@@ -96,7 +96,7 @@ void init_database(struct Map_info *Out, dbDriver ** driver,
     sprintf(buf, "create table %s (%s)", (*Fi)->table, columns);
 
     db_set_string(&sql, buf);
-    G_debug(2, db_get_string(&sql));
+    G_debug(2, "%s", db_get_string(&sql));
 
     if (db_execute_immediate(*driver, &sql) != DB_OK) {
 	db_close_database_shutdown_driver(*driver);
@@ -128,7 +128,7 @@ void insert_point(dbDriver * driver, char *table, int cat, int path,
     sprintf(buf, "insert into %s values (%d, %d, %d, %d, %d, %d)", table, cat,
 	    path, stop_id, index, arrival_time, departure_time);
     db_set_string(&sql, buf);
-    G_debug(3, db_get_string(&sql));
+    G_debug(3, "%s", db_get_string(&sql));
     if (db_execute_immediate(driver, &sql) != DB_OK) {
 	db_close_database_shutdown_driver(driver);
 	G_fatal_error(_("Cannot insert new record: %s"), db_get_string(&sql));
@@ -150,7 +150,7 @@ void insert_line(dbDriver * driver, char *table, int cat, int path,
 	    table, cat, path, from_id, to_id, route_id, index, from_time,
 	    to_time);
     db_set_string(&sql, buf);
-    G_debug(3, db_get_string(&sql));
+    G_debug(3, "%s", db_get_string(&sql));
     if (db_execute_immediate(driver, &sql) != DB_OK) {
 	db_close_database_shutdown_driver(driver);
 	G_fatal_error(_("Cannot insert new record: %s"), db_get_string(&sql));
diff --git a/vector/v.net/main.c b/vector/v.net/main.c
index d1cc5b2..12e0d39 100644
--- a/vector/v.net/main.c
+++ b/vector/v.net/main.c
@@ -171,7 +171,7 @@ int main(int argc, char **argv)
     if (file_arcs)
 	fclose(file_arcs);
 
-    G_done_msg(message);
+    G_done_msg("%s", message);
 
     return (EXIT_SUCCESS);
 }
diff --git a/vector/v.net/v.net.html b/vector/v.net/v.net.html
index ff08659..f38713e 100644
--- a/vector/v.net/v.net.html
+++ b/vector/v.net/v.net.html
@@ -13,8 +13,8 @@ A GIS network consists of topologically correct lines (arcs). That is,
 the lines must be connected by shared vertices where real connections exist.
 In GRASS GIS you also can add nodes to the network. These are specially 
 designated vertices used for analyzing network properties or computing 
-cost/distance measures. That is, not all vertices are treated as nodes by
-default. Only <em><a href="v.net.path.html">v.net.path</a></em> can use a 
+cost/distance measures. That is, <b>not all vertices are treated as nodes by
+default</b>. Only <em><a href="v.net.path.html">v.net.path</a></em> can use a 
 network without nodes, they are required  for all the other network modules.
 In GRASS, network arcs are stored in one data layer (normally layer 1) and
 nodes are stored in a different data layer (normally layer 2). 
@@ -36,9 +36,12 @@ to the closest line of the network. If you use the <em>-s</em> flag,
 however, the new nodes will be added on the closest line of the 
 network at the point closest to the point you wish to add. When using 
 the <em>connect</em> operation, some lines will share the same 
-category. In Order to assign unique costs to each line, a new layer 
-needs to be created with <em>v.category op=add cat=1 step=1 layer=3</em>, 
-followed by <em>v.db.addtable layer=3.</em></li>
+category. In order to assign unique costs to each line, a new layer 
+needs to be created with<br>
+<!-- like this it is rather useless, still to be improved (eg as a full example below!) -->
+<tt>v.category map=yourmap operation=add cat=1 step=1 layer=3</tt><br>
+followed by<br>
+<tt>v.db.addtable map=yourmap layer=3 table=tablename</tt>.</li>
 
 <li>Create nodes and arcs from a vector line/boundary file using the 
 <em>node</em> operation. This is useful if you are mostly interested 
@@ -128,6 +131,8 @@ The examples are <a href="http://www.grassbook.org/datasets/datasets-3rd-edition
 
 <div class="code"><pre>
 v.net input=streets_wake output=streets_node operation=nodes
+# verify result
+v.category streets_node operation=report
 </pre></div>
 
 <h3>Merge in nodes from a separate map within given threshold</h3>
@@ -135,8 +140,12 @@ v.net input=streets_wake output=streets_node operation=nodes
 <div class="code"><pre>
 v.net input=streets_wake points=firestations out=streets_net \
       operation=connect threshold=500
+# verify result
+v.category streets_net operation=report
 </pre></div>
 
+The nodes are stored in layer 2 unless <tt>node_layer=1</tt> is used.
+
 <h3>Generating network for vector point map</h3>
 
 For generating network for given vector point map an input file in the
@@ -146,13 +155,27 @@ following format is required:
 [category of edge] [category of start node] [category of end node]
 </pre></div>
 
+<p>
+Option 1: Save the file (e.g. "points.txt") and generate the map:
+<div class="code"><pre>
+v.net points=geodetic_swwake_pts output=geodetic_swwake_pts_net \
+      operation=arcs file=points.txt
+# verify result
+v.category geodetic_swwake_pts_net operation=report
+</pre></div>
+
+<p>
+Option 2: Read in from command line:
 <div class="code"><pre>
 v.net points=geodetic_swwake_pts output=geodetic_swwake_pts_net \
       operation=arcs file=- << EOF
-> 1 28000 28005
-> 2 27945 27958
-> 3 27886 27897
-> EOF
+1 28000 28005
+2 27945 27958
+3 27886 27897
+EOF
+
+# verify result
+v.category geodetic_swwake_pts_net operation=report
 </pre></div>
 
 <h2>SEE ALSO</h2>
@@ -190,4 +213,4 @@ Prague, Czech Republic (operation 'connect' and 'arcs')<br>
 
 Markus Metz: important fixes and improvements
 <p>
-<i>Last changed: $Date: 2015-10-18 11:39:41 +0200 (Sun, 18 Oct 2015) $</i>
+<i>Last changed: $Date: 2015-10-27 16:43:43 +0100 (Tue, 27 Oct 2015) $</i>
diff --git a/vector/v.out.postgis/create.c b/vector/v.out.postgis/create.c
index 5aa1682..a33dc20 100644
--- a/vector/v.out.postgis/create.c
+++ b/vector/v.out.postgis/create.c
@@ -77,9 +77,9 @@ char *create_pgfile(const char *dsn, const char *schema, const char *olink,
 	    G_set_key_value(tokens[0], tokens[1], key_val);
 	    
 	    if (strcmp(tokens[0], "fid") == 0)
-		G_asprintf(fid_column, tokens[1]);
+                G_asprintf(fid_column, "%s", tokens[1]);
 	    if (strcmp(tokens[0], "geometry_name") == 0)
-		G_asprintf(geom_column, tokens[1]);
+		G_asprintf(geom_column, "%s", tokens[1]);
 
 	    G_free_tokens(tokens);
 	}
diff --git a/vector/v.out.postgis/v.out.postgis.html b/vector/v.out.postgis/v.out.postgis.html
index 6b8393c..0d60c18 100644
--- a/vector/v.out.postgis/v.out.postgis.html
+++ b/vector/v.out.postgis/v.out.postgis.html
@@ -133,7 +133,7 @@ v.out.postgis input=urbanarea output="PG:dbname=grass"
 </pre></div>
 
 GRASS areas are converted into polygons, isles into holes. We can
-check the number or created polygons by simple SQL query bellow.
+check the number or created polygons by simple SQL query below.
 
 <div class="code"><pre>
 db.select driver=pg database=grass \
@@ -175,7 +175,7 @@ v.out.postgis input=bridges output="PG:dbname=grass" output_layer=grassout.bridg
 
 <h3>Export data with creation options</h3>
 
-Example bellow demonstrates how to define name for geometry column and
+Example below demonstrates how to define name for geometry column and
 disable building spatial index. Spatial reference system is defined
 by <tt>srid</tt> identifier which corresponds in this case with EPSG
 3358 (North Carolina dataset).
@@ -221,7 +221,7 @@ by <em><a href="v.info.html">v.info</a></em>:
 <em>v.out.postgis</em> allows ignoring attributes when exporting
 vector features by specifying <b>-t</b> flag.
 
-Command bellow exports vector features without attributes. The feature
+Command below exports vector features without attributes. The feature
 will contain only two columns, the fid and geometry column.
 
 <div class="code"><pre>
@@ -289,4 +289,4 @@ Martin Landa, Czech Technical University in Prague, Czech Republic
 (development supported by Fondazione Edmund Mach and Comune di Trento, Italy)
 
 <p>
-<i>Last changed: $Date: 2015-02-13 16:16:22 +0100 (Fri, 13 Feb 2015) $</i>
+<i>Last changed: $Date: 2015-10-22 00:41:33 +0200 (Thu, 22 Oct 2015) $</i>
diff --git a/vector/v.overlay/area_area.c b/vector/v.overlay/area_area.c
index 70d5323..e766126 100644
--- a/vector/v.overlay/area_area.c
+++ b/vector/v.overlay/area_area.c
@@ -339,7 +339,7 @@ int area_area(struct Map_info *In, int *field, struct Map_info *Tmp,
 
 			db_append_string(&stmt, " )");
 
-			G_debug(3, db_get_string(&stmt));
+			G_debug(3, "%s", db_get_string(&stmt));
 
 			if (db_execute_immediate(driver, &stmt) != DB_OK)
 			    G_warning(_("Unable to insert new record: '%s'"),
diff --git a/vector/v.overlay/line_area.c b/vector/v.overlay/line_area.c
index 5bd828d..5384193 100644
--- a/vector/v.overlay/line_area.c
+++ b/vector/v.overlay/line_area.c
@@ -404,7 +404,7 @@ int line_area(struct Map_info *In, int *field, struct Map_info *Tmp,
 
 			    db_append_string(&stmt, " )");
 
-			    G_debug(3, db_get_string(&stmt));
+			    G_debug(3, "%s", db_get_string(&stmt));
 
 			    if (db_execute_immediate(driver, &stmt) != DB_OK)
 				G_warning(_("Unable to insert new record: '%s'"),
diff --git a/vector/v.overlay/main.c b/vector/v.overlay/main.c
index e9bdc91..2e163a5 100644
--- a/vector/v.overlay/main.c
+++ b/vector/v.overlay/main.c
@@ -572,7 +572,7 @@ int main(int argc, char *argv[])
 
 	db_append_string(&stmt, " )");
 
-	G_debug(3, db_get_string(&stmt));
+	G_debug(3, "%s", db_get_string(&stmt));
 
 	if (db_execute_immediate(driver, &stmt) != DB_OK) {
 	    Vect_close(&Out);
diff --git a/vector/v.random/main.c b/vector/v.random/main.c
index 51b9419..07e8671 100644
--- a/vector/v.random/main.c
+++ b/vector/v.random/main.c
@@ -462,7 +462,7 @@ int main(int argc, char *argv[])
 			sprintf(buf, "%.0f )", z);
 		    db_append_string(&sql, buf);
 
-		    G_debug(3, db_get_string(&sql));
+		    G_debug(3, "%s", db_get_string(&sql));
 		    if (db_execute_immediate(driver, &sql) != DB_OK) {
 			G_fatal_error(_("Cannot insert new row: %s"),
 				      db_get_string(&sql));
@@ -582,7 +582,7 @@ int main(int argc, char *argv[])
 		    sprintf(buf, "%.0f )", z);
 		db_append_string(&sql, buf);
 
-		G_debug(3, db_get_string(&sql));
+		G_debug(3, "%s", db_get_string(&sql));
 		if (db_execute_immediate(driver, &sql) != DB_OK) {
 		    G_fatal_error(_("Cannot insert new row: %s"),
 				  db_get_string(&sql));
diff --git a/vector/v.rectify/cp.c b/vector/v.rectify/cp.c
index c3c9464..d5e3eed 100644
--- a/vector/v.rectify/cp.c
+++ b/vector/v.rectify/cp.c
@@ -373,7 +373,7 @@ int get_control_points(char *group, char *pfile, int order, int use3d,
 	break;
     }
     if (ret != 1)
-	G_fatal_error(msg);
+        G_fatal_error("%s", msg);
 	
     if (rms) {
 	compute_rms(&cp, &cp3, order, use3d, orthorot, sep, fpr);
diff --git a/vector/v.rectify/target.c b/vector/v.rectify/target.c
index efa6dc6..77c461b 100644
--- a/vector/v.rectify/target.c
+++ b/vector/v.rectify/target.c
@@ -42,6 +42,6 @@ int get_target(char *group)
   error:
     strcat(buf, _("Please run i.target for group."));
     strcat(buf, group);
-    G_fatal_error(buf);
+    G_fatal_error("%s", buf);
     return 1;			/* never reached */
 }
diff --git a/vector/v.select/v.select.html b/vector/v.select/v.select.html
index 8c406fd..c4d4028 100644
--- a/vector/v.select/v.select.html
+++ b/vector/v.select/v.select.html
@@ -236,7 +236,7 @@ v.select with CONTAINS operator: selected polygons shown in grey (red: input poi
 This operator additionally requires the <b>relate</b> parameter (in other
 GIS called 'ST_Relate').
 
-This operator allows to calculate the
+This operator allows calculating the
 <a href="https://en.wikipedia.org/wiki/DE-9IM">Dimensionally Extended nine-Intersection Model (DE-9IM)</a>.
 
 In the following one example: Select polygon with 'TOUCHES' operator
@@ -319,4 +319,4 @@ GEOS support by Martin Landa, Czech Technical University in Prague, Czech Republ
 ZIP code examples by Carol X. Garzon-Lopez, Trento, Italy
 
 <p>
-<i>Last changed: $Date: 2015-08-20 15:04:31 +0200 (Thu, 20 Aug 2015) $</i>
+<i>Last changed: $Date: 2015-10-22 00:41:33 +0200 (Thu, 22 Oct 2015) $</i>
diff --git a/vector/v.surf.rst/main.c b/vector/v.surf.rst/main.c
index 286d7a1..1c7f2ed 100644
--- a/vector/v.surf.rst/main.c
+++ b/vector/v.surf.rst/main.c
@@ -581,7 +581,7 @@ int main(int argc, char *argv[])
 	db_append_string(&sql2, "cat integer");
 	db_append_string(&sql2, ", flt1 double precision");
 	db_append_string(&sql2, ")");
-	G_debug(1, db_get_string(&sql2));
+	G_debug(1, "%s", db_get_string(&sql2));
 	driver2 = db_start_driver_open_database(ff->driver, ff->database);
 	if (driver2 == NULL)
 	    G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
diff --git a/vector/v.vol.rst/main.c b/vector/v.vol.rst/main.c
index fe4bf63..a283d7e 100644
--- a/vector/v.vol.rst/main.c
+++ b/vector/v.vol.rst/main.c
@@ -594,7 +594,7 @@ int main(int argc, char *argv[])
 	db_append_string(&sql, " integer");
 	db_append_string(&sql, ", flt1 double precision");
 	db_append_string(&sql, ")");
-	G_debug(1, db_get_string(&sql));
+	G_debug(1, "%s", db_get_string(&sql));
 	driver = db_start_driver_open_database(f->driver, f->database);
 	if (driver == NULL)
 	    G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
diff --git a/vector/v.vol.rst/vector.c b/vector/v.vol.rst/vector.c
index 3551603..a3bfc1b 100644
--- a/vector/v.vol.rst/vector.c
+++ b/vector/v.vol.rst/vector.c
@@ -72,7 +72,7 @@ int point_save(double xmm, double ymm, double zmm, double err)
     sprintf(buf, ", %f", err);
     db_append_string(&sql, buf);
     db_append_string(&sql, ")");
-    G_debug(3, db_get_string(&sql));
+    G_debug(3, "%s", db_get_string(&sql));
 
     if (db_execute_immediate(driver, &sql) != DB_OK) {
 	db_close_database(driver);
diff --git a/vector/v.what.rast/main.c b/vector/v.what.rast/main.c
index 542093f..e329710 100644
--- a/vector/v.what.rast/main.c
+++ b/vector/v.what.rast/main.c
@@ -623,7 +623,7 @@ int main(int argc, char *argv[])
 		sprintf(buf, " AND %s", opt.where->answer);
 		db_append_string(&stmt, buf);
 	    }
-	    G_debug(3, db_get_string(&stmt));
+	    G_debug(3, "%s", db_get_string(&stmt));
 
 	    /* Update table */
 	    if (db_execute_immediate(driver, &stmt) == DB_OK) {
diff --git a/vector/v.what.rast3/main.c b/vector/v.what.rast3/main.c
index d84f155..27ff931 100644
--- a/vector/v.what.rast3/main.c
+++ b/vector/v.what.rast3/main.c
@@ -305,7 +305,7 @@ int main(int argc, char *argv[])
 	    G_snprintf(buf, 2048, " AND %s", opt.where->answer);
 	    db_append_string(&stmt, buf);
 	}
-	G_debug(3, db_get_string(&stmt));
+	G_debug(3, "%s", db_get_string(&stmt));
 
 	/* Update table */
 	if (db_execute_immediate(driver, &stmt) == DB_OK) {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/grass.git



More information about the Pkg-grass-devel mailing list