]> git.pld-linux.org Git - packages/grass.git/commitdiff
- updated to 6.4.3
authorJakub Bogusz <qboosh@pld-linux.org>
Fri, 13 Jun 2014 18:52:47 +0000 (20:52 +0200)
committerJakub Bogusz <qboosh@pld-linux.org>
Fri, 13 Jun 2014 18:52:47 +0000 (20:52 +0200)
- updated ncurses,ffmpeg,ac patches
- added format patch (massive -Werror=format-security fixes and workarounds)

grass-ac.patch
grass-ffmpeg.patch
grass-format.patch [new file with mode: 0644]
grass.spec
ncurses.patch

index e93f4b16ce89163cedfe6db227e493fa3b808836..a1c9699ef89bbe7f179899eb285d2bc2ba820559 100644 (file)
  SCRIPT_ACTIONS += $(BIN)/$(PGM).bat
  endif
  
+--- grass-6.4.3/include/Make/Rules.make.orig   2013-03-02 11:52:07.000000000 +0100
++++ grass-6.4.3/include/Make/Rules.make        2014-06-11 21:22:16.080021691 +0200
+@@ -66,7 +66,7 @@
+ %.tab.h %.tab.c: %.y
+       $(YACC) -b$* -p$* $(YACCFLAGS) $<
+-ifneq ($(MINGW),)
++ifeq ($(MINGW),yes)
+ mkpath = $(shell $(TOOLSDIR)/g.echo$(EXE) $(1));$(2)
+ else
+ mkpath = $(1):$(2)
 --- grass-6.4.2/general/g.version/Makefile.orig        2011-04-18 20:13:39.000000000 +0200
 +++ grass-6.4.2/general/g.version/Makefile     2012-10-21 08:48:28.460856763 +0200
 @@ -29,4 +29,4 @@
index 905bef02729a5e34e72c02b0c5605a89c9fc49da..4b80df7b41aca8c9c0b7c7e89cca8d7f095018df 100644 (file)
---- grass-6.4.2/configure.in.orig      2012-10-20 12:50:17.287207081 +0200
-+++ grass-6.4.2/configure.in   2012-10-20 13:02:02.273844162 +0200
-@@ -1125,7 +1125,7 @@
- LOC_CHECK_LIB_PATH(ffmpeg, FFMPEG, FFMPEGLIBPATH)
- LOC_CHECK_LIBS(avutil, av_free, FFMPEG, $FFMPEGLIBPATH, FFMPEGLIB,,,,$MATHLIB)
--LOC_CHECK_LIBS(avcodec, avcodec_init, FFMPEG, $FFMPEGLIBPATH, FFMPEGLIB, $FFMPEGLIB,,,$MATHLIB)
--LOC_CHECK_LIBS(avformat, av_set_parameters, FFMPEG, $FFMPEGLIBPATH, FFMPEGLIB, $FFMPEGLIB,,,$MATHLIB)
-+LOC_CHECK_LIBS(avcodec, avcodec_register_all, FFMPEG, $FFMPEGLIBPATH, FFMPEGLIB, $FFMPEGLIB,,,$MATHLIB)
-+LOC_CHECK_LIBS(avformat, avformat_write_header, FFMPEG, $FFMPEGLIBPATH, FFMPEGLIB, $FFMPEGLIB,,,$MATHLIB)
- fi # $USE_FFMPEG
---- grass-6.4.2/lib/ogsf/gsd_img_mpeg.c.orig   2009-01-12 08:46:29.000000000 +0100
-+++ grass-6.4.2/lib/ogsf/gsd_img_mpeg.c        2012-10-21 11:07:46.300506016 +0200
-@@ -66,7 +66,7 @@
-     c = st->codec;
-     c->codec_id = codec_id;
--    c->codec_type = CODEC_TYPE_VIDEO;
-+    c->codec_type = AVMEDIA_TYPE_VIDEO;
-     /* put sample parameters */
-     c->bit_rate = 400000;
-@@ -97,7 +97,7 @@
-       c->flags |= CODEC_FLAG_GLOBAL_HEADER;
-     c->flags |= CODEC_FLAG_QSCALE;
--    c->global_quality = st->quality = FF_QP2LAMBDA * 10;
-+    c->global_quality = FF_QP2LAMBDA * 10;
-     return st;
- }
-@@ -215,7 +215,7 @@
-       av_init_packet(&pkt);
--      pkt.flags |= PKT_FLAG_KEY;
-+      pkt.flags |= AV_PKT_FLAG_KEY;
-       pkt.stream_index = st->index;
-       pkt.data = (uint8_t *) picture;
-       pkt.size = sizeof(AVPicture);
-@@ -236,7 +236,7 @@
-               av_rescale_q(c->coded_frame->pts, c->time_base,
-                            st->time_base);
-           if (c->coded_frame->key_frame)
--              pkt.flags |= PKT_FLAG_KEY;
-+              pkt.flags |= AV_PKT_FLAG_KEY;
-           pkt.stream_index = st->index;
-           pkt.data = video_outbuf;
-           pkt.size = out_size;
-@@ -301,10 +301,10 @@
-     av_register_all();
-     /* auto detect the output format from the name. default is mpeg. */
--    fmt = guess_format(NULL, filename, NULL);
-+    fmt = av_guess_format(NULL, filename, NULL);
-     if (!fmt) {
-       G_warning(_("Unable to deduce output format from file extension: using MPEG"));
--      fmt = guess_format("mpeg", NULL, NULL);
-+      fmt = av_guess_format("mpeg", NULL, NULL);
-     }
-     if (!fmt) {
-       G_warning(_("Unable to find suitable output format"));
-@@ -312,7 +312,7 @@
-     }
-     /* allocate the output media context */
--    oc = av_alloc_format_context();
-+    oc = avformat_alloc_context();
-     if (!oc) {
-       G_warning(_("Out of memory"));
-       return (-1);
-@@ -332,13 +332,7 @@
-           add_video_stream(oc, fmt->video_codec, (r - l + 1), (t - b + 1));
-     }
--    /* set the output parameters (must be done even if no parameters). */
--    if (av_set_parameters(oc, NULL) < 0) {
--      G_warning(_("Invalid output format parameters"));
--      return (-1);
--    }
--
--    dump_format(oc, 0, filename, 1);
-+    av_dump_format(oc, 0, filename, 1);
-     /* now that all the parameters are set, we can open the audio and
-        video codecs and allocate the necessary encode buffers */
-@@ -347,14 +341,14 @@
-     /* open the output file, if needed */
-     if (!(fmt->flags & AVFMT_NOFILE)) {
--      if (url_fopen(&oc->pb, filename, URL_WRONLY) < 0) {
-+      if (avio_open(&oc->pb, filename, AVIO_FLAG_WRITE) < 0) {
-           G_warning(_("Unable to open <%s>"), filename);
-           return (-1);
-       }
-     }
-     /* write the stream header, if any */
--    av_write_header(oc);
-+    avformat_write_header(oc, NULL);
+--- grass-6.4.3/lib/ogsf/gsd_img_mpeg.c.orig   2013-07-09 21:05:44.000000000 +0200
++++ grass-6.4.3/lib/ogsf/gsd_img_mpeg.c        2014-06-10 21:53:30.055116809 +0200
+@@ -31,7 +31,7 @@
+ #include <avutil.h>
  #else
-@@ -436,11 +430,7 @@
-     if (!(fmt->flags & AVFMT_NOFILE)) {
-       /* close the output file */
--#if (LIBAVFORMAT_VERSION_INT>>16) < 52
--      url_fclose(&oc->pb);
--#else
--      url_fclose(oc->pb);
--#endif
-+      avio_close(oc->pb);
-     }
+ /* libavutil 51.22.1's avutil.h doesn't include libavutil/mathematics.h */
+-#include <mathematics.h>
++#include <libavutil/mathematics.h>
+ #endif
  
    /* free the stream */
/* 5 seconds stream duration */
diff --git a/grass-format.patch b/grass-format.patch
new file mode 100644 (file)
index 0000000..a104dca
--- /dev/null
@@ -0,0 +1,24363 @@
+--- grass-6.4.3/lib/gis/datum.c.orig   2008-11-25 02:31:13.000000000 +0100
++++ grass-6.4.3/lib/gis/datum.c        2014-05-18 20:07:10.986669222 +0200
+@@ -110,12 +110,12 @@
+     int returnval = -1;
+     if (NULL != G_find_key_value("datum", projinfo)) {
+-      sprintf(datumname, G_find_key_value("datum", projinfo));
++      strcpy(datumname, G_find_key_value("datum", projinfo));
+       returnval = 1;
+     }
+     if (G_find_key_value("datumparams", projinfo) != NULL) {
+-      sprintf(params, G_find_key_value("datumparams", projinfo));
++      strcpy(params, G_find_key_value("datumparams", projinfo));
+       returnval = 2;
+     }
+     else if (G_find_key_value("nadgrids", projinfo) != NULL) {
+--- grass-6.4.3/lib/gis/get_cellhd.c.orig      2008-11-25 02:31:14.000000000 +0100
++++ grass-6.4.3/lib/gis/get_cellhd.c   2014-05-18 20:40:43.373293949 +0200
+@@ -75,10 +75,10 @@
+                   real_name, real_mapset);
+           tail = buf + strlen(buf);
+           if (!G_find_cell(real_name, real_mapset))
+-              sprintf(tail, _("which is missing."));
++              strcpy(tail, _("which is missing."));
+           else
+-              sprintf(tail, _("whose header file can't be opened."));
+-          G_warning(buf);
++              strcpy(tail, _("whose header file can't be opened."));
++          G_warning("%s", buf);
+           return -1;
+       }
+     }
+@@ -106,12 +106,12 @@
+               real_name, real_mapset);
+     }
+     else
+-      sprintf(tail, _(" Invalid format."));
++      strcpy(tail, _(" Invalid format."));
+     tail = buf + strlen(buf);
+     strcpy(tail, err);
+     G_free(err);
+-    G_warning(buf);
++    G_warning("%s", buf);
+     return -1;
+ }
+--- grass-6.4.3/lib/gis/parser.c.orig  2012-09-22 11:52:12.000000000 +0200
++++ grass-6.4.3/lib/gis/parser.c       2014-06-03 17:43:11.091369108 +0200
+@@ -923,7 +923,7 @@
+               sprintf(buff, "GRASS_VERBOSE=%d", G_verbose_max());
+               putenv(G_store(buff));
+               if (quiet == 1) {
+-                  G_warning(_("Use either --quiet or --verbose flag, not both. Assuming --verbose."));
++                  G_warning("%s", _("Use either --quiet or --verbose flag, not both. Assuming --verbose."));
+               }
+               quiet = -1;
+           }
+@@ -937,7 +937,7 @@
+               sprintf(buff, "GRASS_VERBOSE=%d", G_verbose_min());
+               putenv(G_store(buff));
+               if (quiet == -1) {
+-                  G_warning(_("Use either --quiet or --verbose flag, not both. Assuming --quiet."));
++                  G_warning("%s", _("Use either --quiet or --verbose flag, not both. Assuming --quiet."));
+               }
+               quiet = 1;      /* for passing to gui init */
+           }
+@@ -1072,18 +1072,18 @@
+       pgm_name = "??";
+     if (module_info.label || module_info.description) {
+-      fprintf(stderr, _("\nDescription:\n"));
++      fputs(_("\nDescription:\n"), stderr);
+       if (module_info.label)
+           fprintf(stderr, " %s\n", module_info.label);
+       if (module_info.description)
+           fprintf(stderr, " %s\n", module_info.description);
+     }
+     if (module_info.keywords) {
+-      fprintf(stderr, _("\nKeywords:\n"));
++      fputs(_("\nKeywords:\n"), stderr);
+       fprintf(stderr, " %s\n", module_info.keywords);
+     }
+-    fprintf(stderr, _("\nUsage:\n "));
++    fputs(_("\nUsage:\n "), stderr);
+     len = show(pgm_name, 1);
+@@ -1151,7 +1151,7 @@
+     /* Print help info for flags */
+-    fprintf(stderr, _("\nFlags:\n"));
++    fputs(_("\nFlags:\n"), stderr);
+     if (n_flags) {
+       flag = &first_flag;
+@@ -1182,7 +1182,7 @@
+     /* Print help info for options */
+     if (n_opts) {
+-      fprintf(stderr, _("\nParameters:\n"));
++      fputs(_("\nParameters:\n"), stderr);
+       opt = &first_option;
+       while (opt != NULL) {
+           fprintf(stderr, "  %*s   ", maxlen, opt->key);
+@@ -1991,7 +1991,7 @@
+ #endif
+     if (!fp)
+-      G_fatal_error(_("Unable to spawn the 'wish' program"));
++      G_fatal_error("%s", _("Unable to spawn the 'wish' program"));
+     fprintf(fp, "source $env(GISBASE)/etc/gui.tcl\n");
+@@ -2010,7 +2010,7 @@
+     if (!pgm_name)
+       pgm_name = G_program_name();
+     if (!pgm_name)
+-      G_fatal_error(_("Unable to determine program name"));
++      G_fatal_error("%s", _("Unable to determine program name"));
+     sprintf(script, "%s/etc/wxpython/gui_core/forms.py",
+           getenv("GISBASE"));
+@@ -2650,7 +2650,7 @@
+ {
+     char buff[1024];
+-    fprintf(stderr, _("\nFLAG: Set the following flag?\n"));
++    fputs(_("\nFLAG: Set the following flag?\n"), stderr);
+     sprintf(buff, "    %s?", flag->description);
+     flag->answer = G_yes(buff, 0);
+@@ -2687,7 +2687,7 @@
+       else
+           no_prompt = -1;
+       if (no_prompt) {
+-          fprintf(stderr, _("enter option > "));
++          fputs(_("enter option > "), stderr);
+           if (fgets(buff, 1024, stdin) == 0)
+               exit(EXIT_SUCCESS);;
+           bptr = buff;        /* strip newline  */
+--- grass-6.4.3/lib/gis/put_title.c.orig       2008-11-25 02:31:13.000000000 +0100
++++ grass-6.4.3/lib/gis/put_title.c    2014-06-05 21:08:22.787510801 +0200
+@@ -25,10 +25,9 @@
+     in = out = 0;
+     in = G_fopen_old("cats", name, mapset);
+     if (!in) {
+-      sprintf(buf,
++      G_warning(
+               _("category information for [%s] in [%s] missing or invalid"),
+               name, mapset);
+-      G_warning(buf);
+       return -1;
+     }
+@@ -36,8 +35,7 @@
+     out = fopen(tempfile, "w");
+     if (!out) {
+       fclose(in);
+-      sprintf(buf, _("G_put_title - can't create a temp file"));
+-      G_warning(buf);
++      G_warning("%s", _("G_put_title - can't create a temp file"));
+       return -1;
+     }
+@@ -53,25 +51,22 @@
+     /* must be #cats line, title line, and label for cat 0 */
+     if (line < 3) {
+-      sprintf(buf, _("category information for [%s] in [%s] invalid"), name,
++      G_warning(_("category information for [%s] in [%s] invalid"), name,
+               mapset);
+-      G_warning(buf);
+       return -1;
+     }
+     in = fopen(tempfile, "r");
+     if (!in) {
+-      sprintf(buf, _("G_put_title - can't reopen temp file"));
+-      G_warning(buf);
++      G_warning("%s", _("G_put_title - can't reopen temp file"));
+       return -1;
+     }
+     out = G_fopen_new("cats", name);
+     if (!out) {
+       fclose(in);
+-      sprintf(buf, _("can't write category information for [%s] in [%s]"),
++      G_warning(_("can't write category information for [%s] in [%s]"),
+               name, mapset);
+-      G_warning(buf);
+       return -1;
+     }
+--- grass-6.4.3/lib/gis/legal_name.c.orig      2008-11-25 02:31:13.000000000 +0100
++++ grass-6.4.3/lib/gis/legal_name.c   2014-06-07 22:14:57.910492506 +0200
+@@ -36,7 +36,7 @@
+ int G_legal_filename(const char *s)
+ {
+     if (*s == '.' || *s == 0) {
+-      fprintf(stderr, _("Illegal filename.  Cannot be '.' or 'NULL'\n"));
++      fputs(_("Illegal filename.  Cannot be '.' or 'NULL'\n"), stderr);
+       return -1;
+     }
+--- grass-6.4.3/lib/gis/closecell.c.orig       2008-11-25 02:31:14.000000000 +0100
++++ grass-6.4.3/lib/gis/closecell.c    2014-06-08 08:29:43.166390368 +0200
+@@ -352,7 +352,7 @@
+            */
+           G_quant_round(&fcb->quant);
+           if (G_write_quant(fcb->name, fcb->mapset, &fcb->quant) < 0)
+-              G_warning(_("unable to write quant file!"));
++              G_warning("%s", _("unable to write quant file!"));
+       }
+       else {
+           /* remove cell_misc/name/f_quant */
+@@ -403,7 +403,7 @@
+     int stat;
+     if (fcb->map_type == CELL_TYPE) {
+-      G_warning(_("unable to write f_format file for CELL maps"));
++      G_warning("%s", _("unable to write f_format file for CELL maps"));
+       return 0;
+     }
+     format_kv = G_create_key_value();
+--- grass-6.4.3/lib/gis/opencell.c.orig        2009-03-07 11:45:23.000000000 +0100
++++ grass-6.4.3/lib/gis/opencell.c     2014-06-08 10:07:35.232934640 +0200
+@@ -663,7 +663,7 @@
+     tempname = G_tempfile();
+     fd = creat(tempname, 0666);
+     if (fd < 0) {
+-      G_warning(_("G__open_raster_new(): no temp files available"));
++      G_warning("%s", _("G__open_raster_new(): no temp files available"));
+       G_free(tempname);
+       G_free(map);
+       G_free(mapset);
+@@ -733,7 +733,7 @@
+       }
+       if (open_mode == OPEN_NEW_RANDOM) {
+-          G_warning(_("Unable to write embedded null values "
++          G_warning("%s", _("Unable to write embedded null values "
+                       "for raster map open for random access"));
+           if (fcb->map_type == CELL_TYPE)
+               G_write_zeros(fd,
+@@ -764,7 +764,7 @@
+     tempname = G_tempfile();
+     null_fd = creat(tempname, 0666);
+     if (null_fd < 0) {
+-      G_warning(_("G__open_raster_new(): no temp files available"));
++      G_warning("%s", _("G__open_raster_new(): no temp files available"));
+       G_free(tempname);
+       G_free(fcb->name);
+       G_free(fcb->mapset);
+@@ -938,7 +938,7 @@
+ {
+     FP_TYPE_SET = 1;
+     if (map_type != FCELL_TYPE && map_type != DCELL_TYPE) {
+-      G_warning(_("G_set_fp_type(): can only be called with FCELL_TYPE or DCELL_TYPE"));
++      G_warning("%s", _("G_set_fp_type(): can only be called with FCELL_TYPE or DCELL_TYPE"));
+       return -1;
+     }
+     FP_TYPE = map_type;
+@@ -1176,7 +1176,7 @@
+     struct Quant_table *p;
+     if (fcb->open_mode != OPEN_OLD) {
+-      G_warning(_("G_set_quant_rules() can be called only for "
++      G_warning("%s", _("G_set_quant_rules() can be called only for "
+                   "raster maps opened for reading"));
+       return -1;
+     }
+--- grass-6.4.3/lib/gis/seek.c.orig    2013-06-08 11:52:06.000000000 +0200
++++ grass-6.4.3/lib/gis/seek.c 2014-06-08 10:48:30.582883465 +0200
+@@ -49,12 +49,12 @@
+ {
+ #ifdef HAVE_FSEEKO
+     if (fseeko(fp, offset, whence) != 0)
+-      G_fatal_error(_("Unable to seek"));
++      G_fatal_error("%s", _("Unable to seek"));
+ #else
+     long loff = (long) offset;
+     if ((off_t) loff != offset)
+-      G_fatal_error(_("Seek offset out of range"));
++      G_fatal_error("%s", _("Seek offset out of range"));
+     if (fseek(fp, loff, whence) != 0)
+-      G_fatal_error(_("Unable to seek"));
++      G_fatal_error("%s", _("Unable to seek"));
+ #endif     
+ }
+--- grass-6.4.3/lib/gis/history.c.orig 2008-11-25 02:31:14.000000000 +0100
++++ grass-6.4.3/lib/gis/history.c      2014-06-08 11:45:56.506144976 +0200
+@@ -260,7 +260,7 @@
+     cmdlen = strlen(cmdlin);
+     if (hist->edlinecnt > MAXEDLINES - 2) {
+-      G_warning(_("Not enough room in history file to record command line."));
++      G_warning("%s", _("Not enough room in history file to record command line."));
+       return 1;
+     }
+@@ -270,7 +270,7 @@
+     }
+     if (cmdlen < 70) {                /* ie if it will fit on a single line */
+-      sprintf(hist->edhist[hist->edlinecnt], G_recreate_command());
++      strcpy(hist->edhist[hist->edlinecnt], G_recreate_command());
+       hist->edlinecnt++;
+     }
+     else {                    /* multi-line required */
+@@ -282,7 +282,7 @@
+           j += 68;
+           hist->edlinecnt++;
+           if (hist->edlinecnt > MAXEDLINES - 2) {
+-              G_warning(_("Not enough room in history file for command line (truncated)."));
++              G_warning("%s", _("Not enough room in history file for command line (truncated)."));
+               return 2;
+           }
+       }
+--- grass-6.4.3/lib/gis/null_val.c.orig        2009-03-29 09:47:50.000000000 +0200
++++ grass-6.4.3/lib/gis/null_val.c     2014-06-08 12:35:42.399416072 +0200
+@@ -88,7 +88,7 @@
+               break;
+           default:
+-              G_warning(_("EmbedGivenNulls: wrong data type!"));
++              G_warning("%s", _("EmbedGivenNulls: wrong data type!"));
+           }
+       }
+     }
+@@ -112,7 +112,7 @@
+     strcpy(errMsg, _("Null values have not been initialized. "));
+     strcat(errMsg, _("G_gisinit() must be called first. "));
+     strcat(errMsg, _("Please advise GRASS developers of this error.\n"));
+-    G_fatal_error(errMsg);
++    G_fatal_error("%s", errMsg);
+     return;
+ }
+@@ -220,7 +220,7 @@
+       break;
+     default:
+-      G_warning(_("G_set_null_value: wrong data type!"));
++      G_warning("%s", _("G_set_null_value: wrong data type!"));
+     }
+     return;
+--- grass-6.4.3/lib/gis/put_cellhd.c.orig      2008-11-25 02:31:13.000000000 +0100
++++ grass-6.4.3/lib/gis/put_cellhd.c   2014-06-08 14:58:10.822571230 +0200
+@@ -21,10 +21,7 @@
+     FILE *fd;
+     if (!(fd = G_fopen_new("cellhd", name))) {
+-      char buf[1024];
+-
+-      sprintf(buf, _("Unable to create header file for [%s]"), name);
+-      G_warning(buf);
++      G_warning(_("Unable to create header file for [%s]"), name);
+       return -1;
+     }
+--- grass-6.4.3/lib/gis/quant_rw.c.orig        2008-11-25 02:31:14.000000000 +0100
++++ grass-6.4.3/lib/gis/quant_rw.c     2014-06-08 15:53:15.159169025 +0200
+@@ -63,16 +63,14 @@
+ int G_truncate_fp_map(const char *name, const char *mapset)
+ {
+-    char buf[300];
+     struct Quant quant;
+     G_quant_init(&quant);
+     G_quant_truncate(&quant);
+     /* quantize the map */
+     if (G_write_quant(name, mapset, &quant) < 0) {
+-      sprintf(buf, "G_truncate_fp_map: can't write quant rules for map %s",
++      G_warning("G_truncate_fp_map: can't write quant rules for map %s",
+               name);
+-      G_warning(buf);
+       return -1;
+     }
+     return 1;
+@@ -80,16 +78,14 @@
+ int G_round_fp_map(const char *name, const char *mapset)
+ {
+-    char buf[300];
+     struct Quant quant;
+     G_quant_init(&quant);
+     G_quant_round(&quant);
+     /* round the map */
+     if (G_write_quant(name, mapset, &quant) < 0) {
+-      sprintf(buf, "G_truncate_fp_map: can't write quant rules for map %s",
++      G_warning("G_truncate_fp_map: can't write quant rules for map %s",
+               name);
+-      G_warning(buf);
+       return -1;
+     }
+     return 1;
+@@ -113,20 +109,17 @@
+ int G_quantize_fp_map(const char *name, const char *mapset,
+                     CELL min, CELL max)
+ {
+-    char buf[300];
+     DCELL d_min, d_max;
+     struct FPRange fp_range;
+     if (G_read_fp_range(name, mapset, &fp_range) < 0) {
+-      sprintf(buf, "G_quantize_fp_map: can't read fp range for map %s",
++      G_warning("G_quantize_fp_map: can't read fp range for map %s",
+               name);
+-      G_warning(buf);
+       return -1;
+     }
+     G_get_fp_range_min_max(&fp_range, &d_min, &d_max);
+     if (G_is_d_null_value(&d_min) || G_is_d_null_value(&d_max)) {
+-      sprintf(buf, "G_quantize_fp_map: raster map %s is empty", name);
+-      G_warning(buf);
++      G_warning("G_quantize_fp_map: raster map %s is empty", name);
+       return -1;
+     }
+     return G_quantize_fp_map_range(name, mapset, d_min, d_max, min, max);
+@@ -159,17 +152,15 @@
+ int G_quantize_fp_map_range(const char *name, const char *mapset,
+                           DCELL d_min, DCELL d_max, CELL min, CELL max)
+ {
+-    char buf[300];
+     struct Quant quant;
+     G_quant_init(&quant);
+     G_quant_add_rule(&quant, d_min, d_max, min, max);
+     /* quantize the map */
+     if (G_write_quant(name, mapset, &quant) < 0) {
+-      sprintf(buf,
++      G_warning(
+               "G_quantize_fp_map_range: can't write quant rules for map %s",
+               name);
+-      G_warning(buf);
+       return -1;
+     }
+     return 1;
+@@ -200,11 +191,9 @@
+ {
+     CELL cell_min, cell_max;
+     DCELL d_min, d_max;
+-    char buf[300];
+     if (G_raster_map_type(name, mapset) == CELL_TYPE) {
+-      sprintf(buf, _("Cannot write quant rules: map %s is integer"), name);
+-      G_warning(buf);
++      G_warning(_("Cannot write quant rules: map %s is integer"), name);
+       return -1;
+     }
+@@ -212,8 +201,7 @@
+     /* first actually write the rules */
+     if (G__quant_export(name, mapset, quant) < 0) {
+-      sprintf(buf, _("Cannot write quant rules for map %s"), name);
+-      G_warning(buf);
++      G_warning(_("Cannot write quant rules for map %s"), name);
+       return -1;
+     }
+--- grass-6.4.3/lib/gis/make_colr.c.orig       2008-11-25 02:31:14.000000000 +0100
++++ grass-6.4.3/lib/gis/make_colr.c    2014-06-08 18:07:36.062334343 +0200
+@@ -37,8 +37,7 @@
+       return -1;
+     G_get_fp_range_min_max(&range, &min, &max);
+     if (G_is_d_null_value(&min) || G_is_d_null_value(&max)) {
+-      sprintf(buff, _(" The raster map %s@%s is empty"), name, mapset);
+-      G_warning(buff);
++      G_warning(_(" The raster map %s@%s is empty"), name, mapset);
+       return -1;
+     }
+@@ -49,17 +48,17 @@
+           _("\n\nColor table needed for file [%s] in mapset [%s].\n"), name,
+           mapset);
+-    fprintf(stderr, _("\nPlease identify the type desired:\n"));
+-    fprintf(stderr, _("    1:  Random colors\n"));
+-    fprintf(stderr, _("    2:  Red, green, and blue color ramps\n"));
+-    fprintf(stderr, _("    3:  Color wave\n"));
+-    fprintf(stderr, _("    4:  Gray scale\n"));
+-    fprintf(stderr, _("    5:  Aspect\n"));
+-    fprintf(stderr, _("    6:  Rainbow colors\n"));
+-    fprintf(stderr, _("    7:  Red through yellow to green\n"));
+-    fprintf(stderr, _("    8:  Green through yellow to red\n"));
+-    fprintf(stderr, _("RETURN  quit\n"));
+-    fprintf(stderr, "\n> ");
++    fputs(_("\nPlease identify the type desired:\n"), stderr);
++    fputs(_("    1:  Random colors\n"), stderr);
++    fputs(_("    2:  Red, green, and blue color ramps\n"), stderr);
++    fputs(_("    3:  Color wave\n"), stderr);
++    fputs(_("    4:  Gray scale\n"), stderr);
++    fputs(_("    5:  Aspect\n"), stderr);
++    fputs(_("    6:  Rainbow colors\n"), stderr);
++    fputs(_("    7:  Red through yellow to green\n"), stderr);
++    fputs(_("    8:  Green through yellow to red\n"), stderr);
++    fputs(_("RETURN  quit\n"), stderr);
++    fputs("\n> ", stderr);
+     for (;;) {
+       if (!G_gets(buff))
+--- grass-6.4.3/lib/gis/auto_mask.c.orig       2008-11-25 02:31:14.000000000 +0100
++++ grass-6.4.3/lib/gis/auto_mask.c    2014-06-08 18:46:56.845618470 +0200
+@@ -61,7 +61,7 @@
+     G__.mask_fd = G__open_cell_old("MASK", G_mapset());
+     if (G__.mask_fd < 0) {
+       G__.auto_mask = 0;
+-      G_warning(_("Unable to open automatic MASK file"));
++      G_warning("%s", _("Unable to open automatic MASK file"));
+       return 0;
+     }
+--- grass-6.4.3/lib/gis/get_datum_name.c.orig  2008-11-25 02:31:13.000000000 +0100
++++ grass-6.4.3/lib/gis/get_datum_name.c       2014-06-08 19:37:45.288888264 +0200
+@@ -50,13 +50,13 @@
+     for (;;) {
+       do {
+-          fprintf(stderr, _("\nPlease specify datum name\n"));
+-          fprintf(stderr,
+-                  _("Enter 'list' for the list of available datums\n"));
+-          fprintf(stderr,
+-                  _("or 'custom' if you wish to enter custom parameters\n"));
+-          fprintf(stderr, _("Hit RETURN to cancel request\n"));
+-          fprintf(stderr, ">");
++          fputs(_("\nPlease specify datum name\n"), stderr);
++          fputs(
++                  _("Enter 'list' for the list of available datums\n"), stderr);
++          fputs(
++                  _("or 'custom' if you wish to enter custom parameters\n"), stderr);
++          fputs(_("Hit RETURN to cancel request\n"), stderr);
++          fputs(">", stderr);
+       } while (!G_gets(answer));
+       G_strip(answer);
+@@ -66,7 +66,7 @@
+       if (strcmp(answer, "list") == 0) {
+           Tmp_file = G_tempfile();
+           if (NULL == (Tmp_fd = fopen(Tmp_file, "w")))
+-              G_warning(_("Cannot open temp file"));
++              G_warning("%s", _("Cannot open temp file"));
+           else {
+               char *pager;
+@@ -94,7 +94,7 @@
+               break;
+           if (G_get_datum_by_name(answer) < 0) {
+-              fprintf(stderr, _("\ninvalid datum\n"));
++              fputs(_("\ninvalid datum\n"), stderr);
+           }
+           else
+               break;
+@@ -106,15 +106,15 @@
+       /* For a custom datum we need to interactively ask for the ellipsoid */
+       if (G_ask_ellipse_name(ellipse) < 0)
+           return -1;
+-      sprintf(ellpsname, ellipse);
++      strcpy(ellpsname, ellipse);
+       sprintf(datumname, "custom");
+     }
+     else {
+       /* else can look it up from datum.table */
+       if ((i = G_get_datum_by_name(answer)) < 0)
+           return -1;
+-      sprintf(ellpsname, G_datum_ellipsoid(i));
+-      sprintf(datumname, G_datum_name(i));
++      strcpy(ellpsname, G_datum_ellipsoid(i));
++      strcpy(datumname, G_datum_name(i));
+     }
+     return 1;
+--- grass-6.4.3/lib/gis/ask.c.orig     2008-11-25 02:31:14.000000000 +0100
++++ grass-6.4.3/lib/gis/ask.c  2014-06-08 20:22:29.815498977 +0200
+@@ -421,11 +421,11 @@
+                       _("Enter 'list' for a list of existing %s files\n"),
+                       desc);
+           if (lister) {
+-              fprintf(stderr, _("Enter 'list -f' for "));
++              fputs(_("Enter 'list -f' for "), stderr);
+               if (option && *option)
+                   fprintf(stderr, _("a list %s"), option);
+               else
+-                  fprintf(stderr, _("an extended list"));
++                  fputs(_("an extended list"), stderr);
+               fprintf(stderr, "\n");
+           }
+@@ -558,7 +558,7 @@
+               break;
+           default:
+-              G_fatal_error(_("ask: can't happen"));
++              G_fatal_error("%s", _("ask: can't happen"));
+           }
+       }
+       /*
+--- grass-6.4.3/lib/gis/gishelp.c.orig 2008-11-25 02:31:14.000000000 +0100
++++ grass-6.4.3/lib/gis/gishelp.c      2014-06-08 21:19:52.288760558 +0200
+@@ -42,7 +42,7 @@
+     sprintf(file, "%s/txt/%s/%s", G_getenv("GISBASE"), helpfile, request);
+     if (!access(file, 04)) {
+-      fprintf(stderr, _("one moment...\n"));
++      fputs(_("one moment...\n"), stderr);
+       G_spawn(getenv("GRASS_PAGER"), getenv("GRASS_PAGER"), file, NULL);
+     }
+     else {
+--- grass-6.4.3/lib/gis/quant_io.c.orig        2008-11-25 02:31:13.000000000 +0100
++++ grass-6.4.3/lib/gis/quant_io.c     2014-06-09 17:59:11.167210690 +0200
+@@ -121,10 +121,9 @@
+     G_quant_free(quant);
+     if (G_raster_map_type(name, mapset) == CELL_TYPE) {
+-      sprintf(buf,
++      G_warning(
+               "G__quant_import: attempt to open quantization table for CELL_TYPE file [%s] in mapset {%s]",
+               name, mapset);
+-      G_warning(buf);
+       return -2;
+     }
+@@ -164,9 +163,8 @@
+       err = "empty";
+     }
+-    sprintf(buf,
++    G_warning(
+           _("quantization file [%s] in mapset [%s] %s"), name, mapset, err);
+-    G_warning(buf);
+     return 0;
+ }
+--- grass-6.4.3/lib/gis/reclass.c.orig 2011-03-19 10:52:09.000000000 +0100
++++ grass-6.4.3/lib/gis/reclass.c      2014-06-09 18:26:30.657176515 +0200
+@@ -235,12 +235,12 @@
+     switch (reclass->type) {
+     case RECLASS_TABLE:
+       if (reclass->min > reclass->max || reclass->num <= 0) {
+-          G_fatal_error(_("Illegal reclass request"));
++          G_fatal_error("%s", _("Illegal reclass request"));
+           return -1;
+       }
+       break;
+     default:
+-      G_fatal_error(_("Illegal reclass type"));
++      G_fatal_error("%s", _("Illegal reclass type"));
+       return -1;
+     }
+--- grass-6.4.3/lib/gis/sample.c.orig  2008-11-25 02:31:13.000000000 +0100
++++ grass-6.4.3/lib/gis/sample.c       2014-06-09 19:30:09.097096927 +0200
+@@ -281,7 +281,7 @@
+     if (strcmp(str, "no data") != 0)
+       sscanf(str, "%lf", &val);
+     else {
+-      G_warning(_("\"no data\" label found; setting to zero"));
++      G_warning("%s", _("\"no data\" label found; setting to zero"));
+       val = 0.0;
+     }
+@@ -296,5 +296,5 @@
+           window->north, window->south, window->east, window->west);
+     G_debug(3, "      \tData point is north=%g east=%g", north, east);
+-    G_fatal_error(_("Problem reading raster map"));
++    G_fatal_error("%s", _("Problem reading raster map"));
+ }
+--- grass-6.4.3/lib/gis/gisinit.c.orig 2013-03-02 11:52:07.000000000 +0100
++++ grass-6.4.3/lib/gis/gisinit.c      2014-06-09 21:33:39.050275815 +0200
+@@ -51,7 +51,7 @@
+     G_set_program_name(pgm);
+     if (strcmp(version, GIS_H_VERSION) != 0)
+-      G_fatal_error(_("Incompatible library version for module. "
++      G_fatal_error("%s", _("Incompatible library version for module. "
+                       "You need to rebuild GRASS or untangle multiple installations."));
+     /* Make sure location and mapset are set */
+@@ -87,7 +87,7 @@
+       return 0;
+     if (strcmp(version, GIS_H_VERSION) != 0)
+-      G_fatal_error(_("Incompatible library version for module. "
++      G_fatal_error("%s", _("Incompatible library version for module. "
+                       "You need to rebuild GRASS or untangle multiple installations."));
+     gisinit();
+@@ -107,7 +107,7 @@
+ {
+     if (initialized)
+       return 1;
+-    G_warning(_("System not initialized. Programmer forgot to call G_gisinit()."));
++    G_warning("%s", _("System not initialized. Programmer forgot to call G_gisinit()."));
+     G_sleep(3);
+     exit(EXIT_FAILURE);
+ }
+--- grass-6.4.3/lib/gis/spawn.c.orig   2011-09-03 11:52:05.000000000 +0200
++++ grass-6.4.3/lib/gis/spawn.c        2014-06-09 21:58:46.510244393 +0200
+@@ -653,7 +653,7 @@
+     pid = fork();
+     if (pid < 0) {
+-      G_warning(_("Unable to create a new process"));
++      G_warning("%s", _("Unable to create a new process"));
+       undo_signals(sp->signals, sp->num_signals, SST_PRE);
+       return status;
+@@ -676,7 +676,7 @@
+       do_bindings(sp->bindings, sp->num_bindings);
+       execvp(command, (char **)sp->args);
+-      G_warning(_("Unable to execute command"));
++      G_warning("%s", _("Unable to execute command"));
+       _exit(127);
+     }
+--- grass-6.4.3/lib/gis/get_projname.c.orig    2008-11-25 02:31:14.000000000 +0100
++++ grass-6.4.3/lib/gis/get_projname.c 2014-06-10 16:03:36.718887711 +0200
+@@ -35,7 +35,7 @@
+     npr = in_proj_keys->nitems;
+     Tmp_file = G_tempfile();
+     if (NULL == (Tmp_fd = fopen(Tmp_file, "w"))) {
+-      G_fatal_error(_("Cannot open temp file"));
++      G_fatal_error("%s", _("Cannot open temp file"));
+     }
+     for (i = 0; i < npr; i++) {
+       fprintf(Tmp_fd, "%s -- %s\n", in_proj_keys->key[i],
+@@ -46,11 +46,11 @@
+     for (;;) {
+       do {
+-          fprintf(stderr, _("\n\nPlease specify projection name\n"));
+-          fprintf(stderr,
+-                  _("Enter 'list' for the list of available projections\n"));
+-          fprintf(stderr, _("Hit RETURN to cancel request\n"));
+-          fprintf(stderr, ">");
++          fputs(_("\n\nPlease specify projection name\n"), stderr);
++          fputs(
++                  _("Enter 'list' for the list of available projections\n"), stderr);
++          fputs(_("Hit RETURN to cancel request\n"), stderr);
++          fputs(">", stderr);
+       } while (!G_gets(answer));
+       G_strip(answer);
+@@ -71,7 +71,7 @@
+       else {
+           a = G_find_key_value(answer, in_proj_keys);
+           if (a == NULL) {
+-              fprintf(stderr, _("\ninvalid projection\n"));
++              fputs(_("\ninvalid projection\n"), stderr);
+           }
+           else
+               break;
+--- grass-6.4.3/lib/gis/unix_socks.c.orig      2012-03-03 11:52:06.000000000 +0100
++++ grass-6.4.3/lib/gis/unix_socks.c   2014-06-10 16:34:33.565515675 +0200
+@@ -99,7 +99,7 @@
+     }
+     if ((lock = getenv("GIS_LOCK")) == NULL)
+-      G_fatal_error(_("Unable to get GIS_LOCK environment variable value"));
++      G_fatal_error("%s", _("Unable to get GIS_LOCK environment variable value"));
+     len = strlen(prefix) + strlen(user) + strlen(lock) + 3;
+     path = G_malloc(len);
+--- grass-6.4.3/lib/gis/range.c.orig   2008-11-25 02:31:14.000000000 +0100
++++ grass-6.4.3/lib/gis/range.c        2014-06-10 18:26:09.748709439 +0200
+@@ -141,7 +141,7 @@
+ {
+     struct Range range;
+     int fd;
+-    char buf[200], xdr_buf[100];
++    char xdr_buf[100];
+     DCELL dcell1, dcell2;
+     XDR xdr_str;
+@@ -189,8 +189,7 @@
+   error:
+     if (fd > 0)
+       close(fd);
+-    sprintf(buf, _("can't read f_range file for [%s in %s]"), name, mapset);
+-    G_warning(buf);
++    G_warning(_("can't read f_range file for [%s in %s]"), name, mapset);
+     return -1;
+ }
+@@ -240,10 +239,9 @@
+       DCELL dmin, dmax;
+       if (G_read_quant(name, mapset, &quant) < 0) {
+-          sprintf(buf,
++          G_warning(
+                   "G_read_range(): can't read quant rules for fp map %s@%s",
+                   name, mapset);
+-          G_warning(buf);
+           return -1;
+       }
+       if (G_quant_is_truncate(&quant) || G_quant_is_round(&quant)) {
+@@ -305,8 +303,7 @@
+   error:
+     if (fd)
+       fclose(fd);
+-    sprintf(buf, _("can't read range file for [%s in %s]"), name, mapset);
+-    G_warning(buf);
++    G_warning(_("can't read range file for [%s in %s]"), name, mapset);
+     return -1;
+ }
+@@ -334,10 +331,9 @@
+ int G_write_range(const char *name, const struct Range *range)
+ {
+     FILE *fd;
+-    char buf[200];
+     if (G_raster_map_type(name, G_mapset()) != CELL_TYPE) {
+-      sprintf(buf, "G_write_range(): the map is floating point!");
++      G_warning("G_write_range(): the map is floating point!");
+       goto error;
+     }
+     fd = G_fopen_new_misc("cell_misc", "range", name);
+@@ -356,9 +352,8 @@
+   error:
+     G_remove_misc("cell_misc", "range", name);        /* remove the old file with this name */
+-    sprintf(buf, _("can't write range file for [%s in %s]"),
++    G_warning(_("can't write range file for [%s in %s]"),
+           name, G_mapset());
+-    G_warning(buf);
+     return -1;
+ }
+@@ -409,9 +404,8 @@
+   error:
+     G_remove(buf, "f_range"); /* remove the old file with this name */
+-    sprintf(buf, _("can't write range file for [%s in %s]"),
++    G_warning(_("can't write range file for [%s in %s]"),
+           name, G_mapset());
+-    G_warning(buf);
+     return -1;
+ }
+--- grass-6.4.3/lib/gis/view.c.orig    2008-11-25 02:31:14.000000000 +0100
++++ grass-6.4.3/lib/gis/view.c 2014-06-10 20:15:33.278572634 +0200
+@@ -463,7 +463,7 @@
+       if (!Suppress_warn) {
+           if (95 > (lap = compare_wind(&(View->vwin), &curwin))) {
+-              fprintf(stderr, _("GRASS window when view was saved:\n"));
++              fputs(_("GRASS window when view was saved:\n"), stderr);
+               G_format_northing(View->vwin.north, nbuf, G_projection());
+               fprintf(stderr, "north:   %s\n", nbuf);
+               G_format_northing(View->vwin.south, nbuf, G_projection());
+--- grass-6.4.3/lib/gis/get_ellipse.c.orig     2008-11-25 02:31:14.000000000 +0100
++++ grass-6.4.3/lib/gis/get_ellipse.c  2014-06-10 20:16:14.578571773 +0200
+@@ -281,7 +281,7 @@
+     if (fd == NULL) {
+       perror(file);
+       sprintf(buf, _("Unable to open ellipsoid table file <%s>"), file);
+-      fatal ? G_fatal_error(buf) : G_warning(buf);
++      fatal ? G_fatal_error("%s", buf) : G_warning("%s", buf);
+       return 0;
+     }
+--- grass-6.4.3/lib/gis/system.c.orig  2008-11-25 02:31:13.000000000 +0100
++++ grass-6.4.3/lib/gis/system.c       2014-06-10 20:16:32.605238063 +0200
+@@ -82,7 +82,7 @@
+     }
+     if (pid < 0) {
+-      G_warning(_("Can not create a new process!"));
++      G_warning("%s", _("Can not create a new process!"));
+       status = -1;
+     }
+     else {
+--- grass-6.4.3/lib/gis/mapset.c.orig  2008-11-25 02:31:14.000000000 +0100
++++ grass-6.4.3/lib/gis/mapset.c       2014-06-10 20:16:46.681904435 +0200
+@@ -36,7 +36,7 @@
+     m = G__mapset();
+     if (m == NULL)
+-      G_fatal_error(_("MAPSET is not set"));
++      G_fatal_error("%s", _("MAPSET is not set"));
+     if (first)
+       first = 0;
+--- grass-6.4.3/lib/gis/gdal.c.orig    2012-02-04 11:52:07.000000000 +0100
++++ grass-6.4.3/lib/gis/gdal.c 2014-06-10 20:17:08.445237319 +0200
+@@ -111,7 +111,7 @@
+           return;
+     }
+-    G_fatal_error(_("Unable to load GDAL library"));
++    G_fatal_error("%s", _("Unable to load GDAL library"));
+ }
+ static void init_gdal(void)
+--- grass-6.4.3/lib/gis/home.c.orig    2009-05-16 11:52:30.000000000 +0200
++++ grass-6.4.3/lib/gis/home.c 2014-06-10 20:17:23.165237010 +0200
+@@ -36,7 +36,7 @@
+     if (home)
+       return home;
+-    G_fatal_error(_("unable to determine user's home directory"));
++    G_fatal_error("%s", _("unable to determine user's home directory"));
+     return NULL;
+ }
+--- grass-6.4.3/lib/gis/list.c.orig    2013-07-09 21:05:44.000000000 +0200
++++ grass-6.4.3/lib/gis/list.c 2014-06-10 20:17:51.285236424 +0200
+@@ -129,7 +129,7 @@
+     signal(SIGPIPE, sigpipe);
+ #endif
+     if (hit_return && isatty(1)) {
+-      fprintf(stderr, _("hit RETURN to continue -->"));
++      fputs(_("hit RETURN to continue -->"), stderr);
+       while (getchar() != '\n') ;
+     }
+@@ -251,7 +251,7 @@
+       break;
+     default:
+-      G_fatal_error(_("G_list: Unknown element type"));
++      G_fatal_error("%s", _("G_list: Unknown element type"));
+     }
+     buf = (char *)G_malloc(strlen(gisbase) + strlen(location)
+--- grass-6.4.3/lib/gis/set_window.c.orig      2014-06-10 20:18:23.221902425 +0200
++++ grass-6.4.3/lib/gis/set_window.c   2014-06-10 20:18:26.311902360 +0200
+@@ -73,7 +73,7 @@
+               G__.fileinfo[i].cellhd.proj == window->proj)
+               continue;
+           if (i != maskfd) {
+-              G_warning(_("G_set_window(): projection/zone differs from that of "
++              G_warning("%s", _("G_set_window(): projection/zone differs from that of "
+                          "currently open raster maps"));
+               return -1;
+           }
+--- grass-6.4.3/lib/gis/get_ell_name.c.orig    2008-11-25 02:31:13.000000000 +0100
++++ grass-6.4.3/lib/gis/get_ell_name.c 2014-06-10 20:39:34.461875928 +0200
+@@ -28,7 +28,7 @@
+     Tmp_file = G_tempfile();
+     if (NULL == (Tmp_fd = fopen(Tmp_file, "w"))) {
+-      G_fatal_error(_("Cannot open temp file"));
++      G_fatal_error("%s", _("Cannot open temp file"));
+     }
+     fprintf(Tmp_fd, "sphere\n");
+     for (i = 0; (sph = G_ellipsoid_name(i)); i++) {
+@@ -39,11 +39,11 @@
+     for (;;) {
+       do {
+-          fprintf(stderr, _("\nPlease specify ellipsoid name\n"));
+-          fprintf(stderr,
+-                  _("Enter 'list' for the list of available ellipsoids\n"));
+-          fprintf(stderr, _("Hit RETURN to cancel request\n"));
+-          fprintf(stderr, ">");
++          fputs(_("\nPlease specify ellipsoid name\n"), stderr);
++          fputs(
++                  _("Enter 'list' for the list of available ellipsoids\n"), stderr);
++          fputs(_("Hit RETURN to cancel request\n"), stderr);
++          fputs(">", stderr);
+       } while (!G_gets(answer));
+       G_strip(answer);
+       if (strlen(answer) == 0)
+@@ -64,7 +64,7 @@
+           if (strcmp(answer, "sphere") == 0)
+               break;
+           if (G_get_ellipsoid_by_name(answer, &aa, &e2) == 0) {
+-              fprintf(stderr, _("\ninvalid ellipsoid\n"));
++              fputs(_("\ninvalid ellipsoid\n"), stderr);
+           }
+           else
+               break;
+--- grass-6.4.3/lib/gis/env.c.orig     2008-11-25 02:31:14.000000000 +0100
++++ grass-6.4.3/lib/gis/env.c  2014-06-10 20:39:55.635208821 +0200
+@@ -239,7 +239,7 @@
+           gisrc = getenv("GISRC");
+       if (!gisrc) {
+-          G_fatal_error(_("GISRC - variable not set"));
++          G_fatal_error("%s", _("GISRC - variable not set"));
+           return (NULL);
+       }
+       strcpy(buf, gisrc);
+--- grass-6.4.3/lib/gmath/la.c.orig    2012-12-08 11:52:05.000000000 +0100
++++ grass-6.4.3/lib/gmath/la.c 2014-05-18 20:10:44.099998101 +0200
+@@ -57,7 +57,7 @@
+     mat_struct *tmp_arry;
+     if (rows < 1 || cols < 1 || ldim < rows) {
+-      G_warning(_("Matrix dimensions out of range"));
++      G_warning("%s", _("Matrix dimensions out of range"));
+       return NULL;
+     }
+@@ -113,7 +113,7 @@
+ int G_matrix_set(mat_struct * A, int rows, int cols, int ldim)
+ {
+     if (rows < 1 || cols < 1 || ldim < 0) {
+-      G_warning(_("Matrix dimensions out of range"));
++      G_warning("%s", _("Matrix dimensions out of range"));
+       return -1;
+     }
+@@ -146,12 +146,12 @@
+     mat_struct *B;
+     if (!A->is_init) {
+-      G_warning(_("Matrix is not initialised fully."));
++      G_warning("%s", _("Matrix is not initialised fully."));
+       return NULL;
+     }
+     if ((B = G_matrix_init(A->rows, A->cols, A->ldim)) == NULL) {
+-      G_warning(_("Unable to allocate space for matrix copy"));
++      G_warning("%s", _("Unable to allocate space for matrix copy"));
+       return NULL;
+     }
+@@ -240,13 +240,13 @@
+     int i, j;                 /* loop variables */
+     if (c1 == 0) {
+-      G_warning(_("First scalar multiplier must be non-zero"));
++      G_warning("%s", _("First scalar multiplier must be non-zero"));
+       return NULL;
+     }
+     if (c2 == 0) {
+       if (!mt1->is_init) {
+-          G_warning(_("One or both input matrices uninitialised"));
++          G_warning("%s", _("One or both input matrices uninitialised"));
+           return NULL;
+       }
+     }
+@@ -254,18 +254,18 @@
+     else {
+       if (!((mt1->is_init) && (mt2->is_init))) {
+-          G_warning(_("One or both input matrices uninitialised"));
++          G_warning("%s", _("One or both input matrices uninitialised"));
+           return NULL;
+       }
+       if (mt1->rows != mt2->rows || mt1->cols != mt2->cols) {
+-          G_warning(_("Matrix order does not match"));
++          G_warning("%s", _("Matrix order does not match"));
+           return NULL;
+       }
+     }
+     if ((mt3 = G_matrix_init(mt1->rows, mt1->cols, mt1->ldim)) == NULL) {
+-      G_warning(_("Unable to allocate space for matrix sum"));
++      G_warning("%s", _("Unable to allocate space for matrix sum"));
+       return NULL;
+     }
+@@ -319,17 +319,17 @@
+     integer1 no_trans = 'n';
+     if (!((mt1->is_init) || (mt2->is_init))) {
+-      G_warning(_("One or both input matrices uninitialised"));
++      G_warning("%s", _("One or both input matrices uninitialised"));
+       return NULL;
+     }
+     if (mt1->cols != mt2->rows) {
+-      G_warning(_("Matrix order does not match"));
++      G_warning("%s", _("Matrix order does not match"));
+       return NULL;
+     }
+     if ((mt3 = G_matrix_init(mt1->rows, mt2->cols, mt1->ldim)) == NULL) {
+-      G_warning(_("Unable to allocate space for matrix product"));
++      G_warning("%s", _("Unable to allocate space for matrix product"));
+       return NULL;
+     }
+@@ -441,29 +441,29 @@
+     mat_struct *wmat, *xmat, *mtx;
+     if (mt1->is_init == 0 || bmat->is_init == 0) {
+-      G_warning(_("Input: one or both data matrices uninitialised"));
++      G_warning("%s", _("Input: one or both data matrices uninitialised"));
+       return -1;
+     }
+     if (mt1->rows != mt1->cols || mt1->rows < 1) {
+-      G_warning(_("Principal matrix is not properly dimensioned"));
++      G_warning("%s", _("Principal matrix is not properly dimensioned"));
+       return -1;
+     }
+     if (bmat->cols < 1) {
+-      G_warning(_("Input: you must have at least one array to solve"));
++      G_warning("%s", _("Input: you must have at least one array to solve"));
+       return -1;
+     }
+     /* Now create solution matrix by copying the original coefficient matrix */
+     if ((xmat = G_matrix_copy(bmat)) == NULL) {
+-      G_warning(_("Could not allocate space for solution matrix"));
++      G_warning("%s", _("Could not allocate space for solution matrix"));
+       return -1;
+     }
+     /* Create working matrix for the coefficient array */
+     if ((mtx = G_matrix_copy(mt1)) == NULL) {
+-      G_warning(_("Could not allocate space for working matrix"));
++      G_warning("%s", _("Could not allocate space for working matrix"));
+       return -1;
+     }
+@@ -471,7 +471,7 @@
+        original information 
+      */
+     if ((wmat = G_matrix_copy(bmat)) == NULL) {
+-      G_warning(_("Could not allocate space for working matrix"));
++      G_warning("%s", _("Could not allocate space for working matrix"));
+       return -1;
+     }
+@@ -524,18 +524,18 @@
+           G_matrix_free(mtx);
+           if (res_info > 0) {
+-              G_warning(_("Matrix (or submatrix is singular). Solution undetermined"));
++              G_warning("%s", _("Matrix (or submatrix is singular). Solution undetermined"));
+               return 1;
+           }
+           else if (res_info < 0) {
+-              G_warning(_("Problem in LA routine."));
++              G_warning("%s", _("Problem in LA routine."));
+               return -1;
+           }
+           break;
+       }
+     default:
+       {
+-          G_warning(_("Procedure not yet available for selected matrix type"));
++          G_warning("%s", _("Procedure not yet available for selected matrix type"));
+           return -1;
+       }
+     }                         /* end switch */
+@@ -569,12 +569,12 @@
+     int i, j, k;              /* loop */
+     if (mt->rows != mt->cols) {
+-      G_warning(_("Matrix is not square. Cannot determine inverse"));
++      G_warning("%s", _("Matrix is not square. Cannot determine inverse"));
+       return NULL;
+     }
+     if ((mt0 = G_matrix_init(mt->rows, mt->rows, mt->ldim)) == NULL) {
+-      G_warning(_("Unable to allocate space for matrix"));
++      G_warning("%s", _("Unable to allocate space for matrix"));
+       return NULL;
+     }
+@@ -591,12 +591,12 @@
+     /* Solve system */
+     if ((k = G_matrix_LU_solve(mt, &res, mt0, NONSYM)) == 1) {
+-      G_warning(_("Matrix is singular"));
++      G_warning("%s", _("Matrix is singular"));
+       G_matrix_free(mt0);
+       return NULL;
+     }
+     else if (k < 0) {
+-      G_warning(_("Problem in LA procedure."));
++      G_warning("%s", _("Problem in LA procedure."));
+       G_matrix_free(mt0);
+       return NULL;
+     }
+@@ -684,12 +684,12 @@
+ int G_matrix_set_element(mat_struct * mt, int rowval, int colval, double val)
+ {
+     if (!mt->is_init) {
+-      G_warning(_("Element array has not been allocated"));
++      G_warning("%s", _("Element array has not been allocated"));
+       return -1;
+     }
+     if (rowval >= mt->rows || colval >= mt->cols || rowval < 0 || colval < 0) {
+-      G_warning(_("Specified element is outside array bounds"));
++      G_warning("%s", _("Specified element is outside array bounds"));
+       return -1;
+     }
+@@ -743,17 +743,17 @@
+     vec_struct *vc1;
+     if (col < 0 || col >= mt->cols) {
+-      G_warning(_("Specified matrix column index is outside range"));
++      G_warning("%s", _("Specified matrix column index is outside range"));
+       return NULL;
+     }
+     if (!mt->is_init) {
+-      G_warning(_("Matrix is not initialised"));
++      G_warning("%s", _("Matrix is not initialised"));
+       return NULL;
+     }
+     if ((vc1 = G_vector_init(mt->rows, mt->ldim, CVEC)) == NULL) {
+-      G_warning(_("Could not allocate space for vector structure"));
++      G_warning("%s", _("Could not allocate space for vector structure"));
+       return NULL;
+     }
+@@ -784,17 +784,17 @@
+     vec_struct *vc1;
+     if (row < 0 || row >= mt->cols) {
+-      G_warning(_("Specified matrix row index is outside range"));
++      G_warning("%s", _("Specified matrix row index is outside range"));
+       return NULL;
+     }
+     if (!mt->is_init) {
+-      G_warning(_("Matrix is not initialised"));
++      G_warning("%s", _("Matrix is not initialised"));
+       return NULL;
+     }
+     if ((vc1 = G_vector_init(mt->cols, mt->ldim, RVEC)) == NULL) {
+-      G_warning(_("Could not allocate space for vector structure"));
++      G_warning("%s", _("Could not allocate space for vector structure"));
+       return NULL;
+     }
+@@ -824,12 +824,12 @@
+ int G_matvect_extract_vector(mat_struct * mt, vtype vt, int indx)
+ {
+     if (vt == RVEC && indx >= mt->rows) {
+-      G_warning(_("Specified row index is outside range"));
++      G_warning("%s", _("Specified row index is outside range"));
+       return -1;
+     }
+     else if (vt == CVEC && indx >= mt->cols) {
+-      G_warning(_("Specified column index is outside range"));
++      G_warning("%s", _("Specified column index is outside range"));
+       return -1;
+     }
+@@ -849,7 +849,7 @@
+     default:
+       {
+-          G_warning(_("Unknown vector type."));
++          G_warning("%s", _("Unknown vector type."));
+           return -1;
+       }
+@@ -974,34 +974,34 @@
+     int i;
+     if (!out->is_init) {
+-      G_warning(_("Output vector is uninitialized"));
++      G_warning("%s", _("Output vector is uninitialized"));
+       return NULL;
+     }
+     if (v1->type != v2->type) {
+-      G_warning(_("Vectors are not of the same type"));
++      G_warning("%s", _("Vectors are not of the same type"));
+       return NULL;
+     }
+     if (v1->type != out->type) {
+-      G_warning(_("Output vector is of incorrect type"));
++      G_warning("%s", _("Output vector is of incorrect type"));
+       return NULL;
+     }
+     if (v1->type == MATRIX_) {
+-      G_warning(_("Matrices not allowed"));
++      G_warning("%s", _("Matrices not allowed"));
+       return NULL;
+     }
+     if ((v1->type == ROWVEC_ && v1->cols != v2->cols) ||
+       (v1->type == COLVEC_ && v1->rows != v2->rows)) {
+-      G_warning(_("Vectors have differing dimensions"));
++      G_warning("%s", _("Vectors have differing dimensions"));
+       return NULL;
+     }
+     if ((v1->type == ROWVEC_ && v1->cols != out->cols) ||
+       (v1->type == COLVEC_ && v1->rows != out->rows)) {
+-      G_warning(_("Output vector has incorrect dimension"));
++      G_warning("%s", _("Output vector has incorrect dimension"));
+       return NULL;
+     }
+@@ -1047,12 +1047,12 @@
+ {
+     if ((cells < 1) || (vt == RVEC && ldim < 1)
+       || (vt == CVEC && ldim < cells) || ldim < 0) {
+-      G_warning(_("Vector dimensions out of range"));
++      G_warning("%s", _("Vector dimensions out of range"));
+       return -1;
+     }
+     if ((vt == RVEC && vindx >= A->cols) || (vt == CVEC && vindx >= A->rows)) {
+-      G_warning(_("Row/column out of range"));
++      G_warning("%s", _("Row/column out of range"));
+       return -1;
+     }
+@@ -1102,7 +1102,7 @@
+     doublereal *startpt;
+     if (!vc->is_init)
+-      G_fatal_error(_("Matrix is not initialised"));
++      G_fatal_error("%s", _("Matrix is not initialised"));
+     if (vc->type == ROWVEC_) {
+       Nval = (integer) vc->cols;
+@@ -1154,7 +1154,7 @@
+     int ncells, incr;
+     if (!vc->is_init)
+-      G_fatal_error(_("Matrix is not initialised"));
++      G_fatal_error("%s", _("Matrix is not initialised"));
+     if (vc->type == ROWVEC_) {
+       ncells = (integer) vc->cols;
+@@ -1229,7 +1229,7 @@
+     int i;
+     if (!vc->is_init) {
+-      G_warning(_("Matrix is not initialised"));
++      G_warning("%s", _("Matrix is not initialised"));
+       return 0.0 / 0.0;       /* NaN */
+     }
+@@ -1267,7 +1267,7 @@
+     int cnt;
+     if (!vc1->is_init) {
+-      G_warning(_("Vector structure is not initialised"));
++      G_warning("%s", _("Vector structure is not initialised"));
+       return NULL;
+     }
+@@ -1388,7 +1388,7 @@
+     }
+     if (sscanf(buff, "Matrix: %d by %d", &rows, &cols) != 2) {
+-      G_warning(_("Input format error"));
++      G_warning("%s", _("Input format error"));
+       return -1;
+     }
+@@ -1396,12 +1396,12 @@
+     for (i = 0; i < rows; i++) {
+       if (fscanf(fp, "row%d:", &row) != 1 || row != i) {
+-          G_warning(_("Input format error"));
++          G_warning("%s", _("Input format error"));
+           return -1;
+       }
+       for (j = 0; j < cols; j++) {
+           if (fscanf(fp, "%lf:", &val) != 1) {
+-              G_warning(_("Input format error"));
++              G_warning("%s", _("Input format error"));
+               return -1;
+           }
+--- grass-6.4.3/lib/gmath/del2g.c.orig 2008-11-25 02:31:17.000000000 +0100
++++ grass-6.4.3/lib/gmath/del2g.c      2014-06-03 17:58:09.694683711 +0200
+@@ -47,23 +47,23 @@
+ {
+     double *g[2];             /* the filter function */
+-    G_message(_("    taking FFT of image..."));
++    G_message("%s", _("    taking FFT of image..."));
+     fft(FORWARD, img, size * size, size, size);
+     g[0] = (double *)G_malloc(size * size * sizeof(double));
+     g[1] = (double *)G_malloc(size * size * sizeof(double));
+-    G_message(_("    computing del**2 g..."));
++    G_message("%s", _("    computing del**2 g..."));
+     getg(w, g, size);
+-    G_message(_("    taking FFT of del**2 g..."));
++    G_message("%s", _("    taking FFT of del**2 g..."));
+     fft(FORWARD, g, size * size, size, size);
+     /* multiply the complex vectors img and g, each of length size*size */
+-    G_message(_("    multiplying transforms..."));
++    G_message("%s", _("    multiplying transforms..."));
+     mult(img, size * size, g, size * size, img, size * size);
+-    G_message(_("    taking inverse FFT..."));
++    G_message("%s", _("    taking inverse FFT..."));
+     fft(INVERSE, img, size * size, size, size);
+     return 0;
+--- grass-6.4.3/lib/driver/command.c.orig      2008-11-25 02:31:03.000000000 +0100
++++ grass-6.4.3/lib/driver/command.c   2014-05-18 20:11:13.783330836 +0200
+@@ -544,7 +544,7 @@
+           continue;
+       while (*c == COMMAND_ESC)
+           if (read1(c) != 0) {
+-              G_warning(_("Monitor: get_command: Premature EOF"));
++              G_warning("%s", _("Monitor: get_command: Premature EOF"));
+               return 1;       /* EOF */
+           }
+       if (*c)
+--- grass-6.4.3/lib/raster/io_sock.c.orig      2008-11-25 02:31:03.000000000 +0100
++++ grass-6.4.3/lib/raster/io_sock.c   2014-05-18 20:44:59.189955276 +0200
+@@ -60,8 +60,8 @@
+     if (!name) {
+       if (verbose) {
+-          G_warning(_("No graphics monitor has been selected for output."));
+-          G_warning(_("Please run \"d.mon\" to select a graphics monitor."));
++          G_warning("%s", _("No graphics monitor has been selected for output."));
++          G_warning("%s", _("Please run \"d.mon\" to select a graphics monitor."));
+       }
+       return (NO_MON);
+     }
+@@ -95,21 +95,21 @@
+     case ECONNREFUSED:
+     case EADDRINUSE:
+       if (verbose) {
+-          G_warning(_("Socket is already in use or not accepting connections."));
+-          G_warning(_("Use d.mon to select a monitor"));
++          G_warning("%s", _("Socket is already in use or not accepting connections."));
++          G_warning("%s", _("Use d.mon to select a monitor"));
+       }
+       return (NO_RUN);
+     case EBADF:
+     case ENOTSOCK:
+       if (verbose) {
+-          G_warning(_("Trying to connect to something not a socket."));
+-          G_warning(_("Probably program error."));
++          G_warning("%s", _("Trying to connect to something not a socket."));
++          G_warning("%s", _("Probably program error."));
+       }
+       return (NO_RUN);
+     case ETIMEDOUT:
+       if (verbose) {
+-          G_warning(_("Connect attempt timed out."));
+-          G_warning(_("Probably an error with the server."));
++          G_warning("%s", _("Connect attempt timed out."));
++          G_warning("%s", _("Probably an error with the server."));
+       }
+       return (NO_RUN);
+     default:
+@@ -117,7 +117,7 @@
+     }
+     if (verbose)
+-      G_warning(_("Connection failed."));
++      G_warning("%s", _("Connection failed."));
+     /* We couldn't connect... */
+     return (NO_RUN);
+--- grass-6.4.3/lib/raster/rem_io.c.orig       2009-06-06 11:52:39.000000000 +0200
++++ grass-6.4.3/lib/raster/rem_io.c    2014-06-03 18:56:58.717943488 +0200
+@@ -164,7 +164,7 @@
+           len += 1000;
+           buf = G_realloc(buf, len);
+           if (!buf) {
+-              fprintf(stderr, _("Unable to allocate memory\n"));
++              fputs(_("Unable to allocate memory\n"), stderr);
+               exit(1);
+           }
+       }
+@@ -214,7 +214,7 @@
+           if (read(_rfd, &c, (size_t) 1) != 1) {
+               if (no_mon)
+                   break;      /* from while */
+-              fprintf(stderr, _("ERROR - eof from graphics monitor.\n"));
++              fputs(_("ERROR - eof from graphics monitor.\n"), stderr);
+               exit(-1);
+           }
+           if (c == 0)
+@@ -236,7 +236,7 @@
+       fprintf(stderr,
+               _("Warning - no response from graphics monitor <%s>.\n"),
+               name);
+-      fprintf(stderr, _("Check to see if the mouse is still active.\n"));
++      fputs(_("Check to see if the mouse is still active.\n"), stderr);
+ #ifndef __MINGW32__
+       signal(SIGALRM, dead);
+ #endif
+--- grass-6.4.3/lib/db/dbmi_base/default_name.c.orig   2010-03-13 11:52:46.000000000 +0100
++++ grass-6.4.3/lib/db/dbmi_base/default_name.c        2014-05-18 20:45:39.236621115 +0200
+@@ -124,7 +124,7 @@
+       db_set_connection(&connection);
+     }
+     else
+-      G_fatal_error(_("Programmer error"));
++      G_fatal_error("%s", _("Programmer error"));
+     return DB_OK;
+ }
+--- grass-6.4.3/lib/db/dbmi_base/login.c.orig  2010-01-16 11:52:48.000000000 +0100
++++ grass-6.4.3/lib/db/dbmi_base/login.c       2014-06-03 18:57:20.664609698 +0200
+@@ -95,7 +95,7 @@
+               ret, dr, db, usr, pwd);
+       if (ret < 2) {
+-          G_warning(_("Login file corrupted"));
++          G_warning("%s", _("Login file corrupted"));
+           continue;
+       }
+--- grass-6.4.3/lib/db/dbmi_client/delete_tab.c.orig   2008-11-25 02:31:02.000000000 +0100
++++ grass-6.4.3/lib/db/dbmi_client/delete_tab.c        2014-05-18 20:46:11.883287099 +0200
+@@ -56,7 +56,7 @@
+     /* TODO test if the tables exist */
+     db_set_string(&sql, "drop table ");
+     db_append_string(&sql, tblname);
+-    G_debug(3, db_get_string(&sql));
++    G_debug(3, "%s", db_get_string(&sql));
+     if (db_execute_immediate(driver, &sql) != DB_OK) {
+       G_warning(_("Unable to drop table: '%s'"),
+--- grass-6.4.3/lib/db/dbmi_client/copy_tab.c.orig     2011-05-21 11:52:09.000000000 +0200
++++ grass-6.4.3/lib/db/dbmi_client/copy_tab.c  2014-06-03 19:03:35.834601878 +0200
+@@ -193,7 +193,7 @@
+       db_append_string(&sql, " where 0 = 1"); /* to get no data */
+     }
+-    G_debug(3, db_get_string(&sql));
++    G_debug(3, "%s", db_get_string(&sql));
+     if (db_open_select_cursor(from_driver, &sql, &cursor, DB_SEQUENTIAL) !=
+       DB_OK) {
+       G_warning(_("Unable to open select cursor: '%s'"),
+@@ -270,7 +270,7 @@
+       }
+     }
+-    G_debug(3, db_get_string(&sql));
++    G_debug(3, "%s", db_get_string(&sql));
+     if (db_open_select_cursor(from_driver, &sql, &cursor, DB_SEQUENTIAL) !=
+       DB_OK) {
+       G_warning(_("Unable to open select cursor: '%s'"),
+@@ -361,7 +361,7 @@
+       if (!select)
+           continue;
+       db_append_string(&sql, ")");
+-      G_debug(3, db_get_string(&sql));
++      G_debug(3, "%s", db_get_string(&sql));
+       if (db_execute_immediate(to_driver, &sql) != DB_OK) {
+           G_warning("Unable to insert new record: '%s'",
+                     db_get_string(&sql));
+--- grass-6.4.3/lib/db/dbmi_client/select.c.orig       2012-09-08 11:52:08.000000000 +0200
++++ grass-6.4.3/lib/db/dbmi_client/select.c    2014-06-05 21:09:22.834176216 +0200
+@@ -116,7 +116,7 @@
+     G_debug(3, "db_select_int()");
+     if (col == NULL || strlen(col) == 0) {
+-      G_warning(_("Missing column name"));
++      G_warning("%s", _("Missing column name"));
+       return -1;
+     }
+@@ -213,12 +213,12 @@
+     dbTable *table;
+     if (key == NULL || strlen(key) == 0) {
+-      G_warning(_("Missing key column name"));
++      G_warning("%s", _("Missing key column name"));
+       return -1;
+     }
+     if (col == NULL || strlen(col) == 0) {
+-      G_warning(_("Missing column name"));
++      G_warning("%s", _("Missing column name"));
+       return -1;
+     }
+@@ -280,12 +280,12 @@
+     G_debug(3, "db_select_CatValArray ()");
+     if (key == NULL || strlen(key) == 0) {
+-      G_warning(_("Missing key column name"));
++      G_warning("%s", _("Missing key column name"));
+       return -1;
+     }
+     if (col == NULL || strlen(col) == 0) {
+-      G_warning(_("Missing column name"));
++      G_warning("%s", _("Missing column name"));
+       return -1;
+     }
+     db_init_string(&stmt);
+@@ -330,7 +330,7 @@
+     G_debug(3, "  key type = %d", type);
+     if (type != DB_C_TYPE_INT) {
+-      G_warning(_("Key column type is not integer"));
++      G_warning("%s", _("Key column type is not integer"));
+       db_close_cursor(&cursor);
+       db_free_string(&stmt);
+       return -1;
+--- grass-6.4.3/lib/proj/get_proj.c.orig       2009-09-05 11:53:13.000000000 +0200
++++ grass-6.4.3/lib/proj/get_proj.c    2014-05-18 20:48:09.059951319 +0200
+@@ -135,7 +135,7 @@
+            * key needs to be passed on. */
+       }
+       else if (strcmp(in_proj_keys->value[i], "defined") == 0)
+-          sprintf(buffa, in_proj_keys->key[i]);
++          strcpy(buffa, in_proj_keys->key[i]);
+       else
+           sprintf(buffa, "%s=%s",
+@@ -192,7 +192,7 @@
+     /* If datum parameters are present in the PROJ_INFO keys, pass them on */
+     if (GPJ__get_datum_params(in_proj_keys, &datum, &params) == 2) {
+-      sprintf(buffa, params);
++      strcpy(buffa, params);
+       alloc_options(buffa);
+       G_free(params);
+@@ -202,7 +202,7 @@
+     else if (datum != NULL) {
+       if (GPJ_get_default_datum_params_by_name(datum, &params) > 0) {
+-          sprintf(buffa, params);
++          strcpy(buffa, params);
+           alloc_options(buffa);
+           returnval = 2;
+           G_free(params);
+@@ -234,7 +234,7 @@
+           sprintf(err, " +%s", opt_in[i]);
+           strcat(buffa, err);
+       }
+-      G_warning(buffa);
++      G_warning("%s", buffa);
+       G_warning(_("The error message: %s"), pj_strerrno(pj_errno));
+       return -1;
+     }
+@@ -249,7 +249,7 @@
+     nsize = strlen(buffa);
+     opt_in[nopt1++] = (char *)G_malloc(nsize + 1);
+-    sprintf(opt_in[nopt1 - 1], buffa);
++    strcpy(opt_in[nopt1 - 1], buffa);
+     return;
+ }
+@@ -274,7 +274,7 @@
+       sprintf(buffa, "proj=latlong ellps=WGS84");
+       nsize = strlen(buffa);
+       opt_in[nopt] = (char *)G_malloc(nsize + 1);
+-      sprintf(opt_in[nopt++], buffa);
++      strcpy(opt_in[nopt++], buffa);
+     }
+     else {
+       /* Parameters have been provided; parse through them but don't
+@@ -293,7 +293,7 @@
+               if (nsize = strlen(s), nsize) {
+                   if (nopt >= MAX_PARGS) {
+                       fprintf(stderr, "nopt = %d, s=%s\n", nopt, str);
+-                      G_fatal_error(_("Option input overflowed option table"));
++                      G_fatal_error("%s", _("Option input overflowed option table"));
+                   }
+                   if (strncmp("zone=", s, 5) == 0) {
+@@ -306,14 +306,14 @@
+                       if (strcmp(info->proj, "ll") == 0)
+                           sprintf(buffa, "proj=latlong");
+                       else
+-                          sprintf(buffa, s);
++                          strcpy(buffa, s);
+                   }
+                   else {
+-                      sprintf(buffa, s);
++                      strcpy(buffa, s);
+                   }
+                   nsize = strlen(buffa);
+                   opt_in[nopt] = (char *)G_malloc(nsize + 1);
+-                  sprintf(opt_in[nopt++], buffa);
++                  strcpy(opt_in[nopt++], buffa);
+               }
+           }
+           s = 0;
+--- grass-6.4.3/lib/proj/convert.c.orig        2012-09-22 11:52:12.000000000 +0200
++++ grass-6.4.3/lib/proj/convert.c     2014-06-03 20:10:21.741185052 +0200
+@@ -107,12 +107,12 @@
+     hSRS = OSRNewSpatialReference(NULL);
+     if (pj_get_kv(&pjinfo, proj_info, proj_units) < 0) {
+-      G_warning(_("Unable parse GRASS PROJ_INFO file"));
++      G_warning("%s", _("Unable parse GRASS PROJ_INFO file"));
+       return NULL;
+     }
+     if ((proj4 = pj_get_def(pjinfo.pj, 0)) == NULL) {
+-      G_warning(_("Unable get PROJ.4-style parameter string"));
++      G_warning("%s", _("Unable get PROJ.4-style parameter string"));
+       return NULL;
+     }
+@@ -387,7 +387,7 @@
+       G_set_key_value("proj", pszProj, *projinfo);
+     }
+     else
+-      G_warning(_("No projection name! Projection parameters likely to be meaningless."));
++      G_warning("%s", _("No projection name! Projection parameters likely to be meaningless."));
+     /* -------------------------------------------------------------------- */
+--- grass-6.4.3/lib/proj/datum.c.orig  2012-10-20 11:52:06.000000000 +0200
++++ grass-6.4.3/lib/proj/datum.c       2014-06-05 21:11:03.100840793 +0200
+@@ -247,7 +247,7 @@
+     if (G_strcasecmp(datumname, "custom") != 0) {
+       Tmp_file = G_tempfile();
+       if (NULL == (Tmp_fd = fopen(Tmp_file, "w"))) {
+-          G_warning(_("Unable to open temporary file"));
++          G_warning("%s", _("Unable to open temporary file"));
+       }
+       fprintf(Tmp_fd, "Number\tDetails\t\n---\n");
+@@ -320,7 +320,7 @@
+           /* Search through the linked list to find the parameter string
+            * that corresponds to the number entered */
+           if (list->count == currenttransform)
+-              G_asprintf(params, list->params);
++              G_asprintf(params, "%s", list->params);
+           /* Continue to end of list even after we find it, to free all
+            * the memory used */
+@@ -341,13 +341,13 @@
+                       ("\ttowgs84=dx,dy,dz,rx,ry,rz,m\t(7-parameter transformation)\n"));
+               fprintf(stderr,
+                       ("\tnadgrids=alaska\t(Tables-based grid-shifting transformation)\n"));
+-              fprintf(stderr, _("Hit RETURN to cancel request\n"));
++              fputs(_("Hit RETURN to cancel request\n"), stderr);
+               fprintf(stderr, ">");
+           } while (!G_gets(answer));
+           G_strip(answer);
+           if (strlen(answer) == 0)
+               return -1;
+-          G_asprintf(params, answer);
++          G_asprintf(params, "%s", answer);
+           sprintf(buff,
+                   "Parameters to be used are:\n\"%s\"\nIs this correct?",
+                   *params);
+--- grass-6.4.3/lib/proj/ellipse.c.orig        2008-11-29 11:45:17.000000000 +0100
++++ grass-6.4.3/lib/proj/ellipse.c     2014-06-07 22:15:36.510491701 +0200
+@@ -95,11 +95,11 @@
+           else if ((str3 = G_find_key_value("b", proj_keys)) != NULL)
+               G_asprintf(&str1, "b=%s", str3);
+           else
+-              G_fatal_error(_("No secondary ellipsoid descriptor "
++              G_fatal_error("%s", _("No secondary ellipsoid descriptor "
+                               "(rf, es or b) in file"));
+           if (get_a_e2_rf(str, str1, a, e2, rf) == 0)
+-              G_fatal_error(_("Invalid ellipsoid descriptors "
++              G_fatal_error("%s", _("Invalid ellipsoid descriptors "
+                               "(a, rf, es or b) in file"));
+           return 1;
+       }
+@@ -112,7 +112,7 @@
+               return 0;
+           }
+           else {
+-              G_fatal_error(_("No ellipsoid info given in file"));
++              G_fatal_error("%s", _("No ellipsoid info given in file"));
+           }
+       }
+     }
+--- grass-6.4.3/lib/vector/diglib/file.c.orig  2009-05-23 11:53:10.000000000 +0200
++++ grass-6.4.3/lib/vector/diglib/file.c       2014-05-18 20:48:39.883284014 +0200
+@@ -154,7 +154,7 @@
+ size_t dig_fwrite(void *ptr, size_t size, size_t nmemb, GVFILE *file)
+ {
+     if (file->loaded) {       /* using memory */
+-      G_fatal_error(_("Writing to file loaded to memory not supported"));
++      G_fatal_error("%s", _("Writing to file loaded to memory not supported"));
+     }
+     return fwrite(ptr, size, nmemb, file->file);
+@@ -197,7 +197,7 @@
+     G_debug(2, "dig_file_load ()");
+     if (file->file == NULL) {
+-      G_warning(_("Unable to load file to memory, file not open"));
++      G_warning("%s", _("Unable to load file to memory, file not open"));
+       return -1;
+     }
+@@ -212,7 +212,7 @@
+       else if (G_strcasecmp(cmode, "AUTO") == 0)
+           mode = GV_MEMORY_AUTO;
+       else
+-          G_warning(_("Vector memory mode not supported, using 'AUTO'"));
++          G_warning("%s", _("Vector memory mode not supported, using 'AUTO'"));
+     }
+     G_debug(2, "  requested mode = %d", mode);
+--- grass-6.4.3/lib/vector/diglib/plus.c.orig  2009-04-25 11:52:31.000000000 +0200
++++ grass-6.4.3/lib/vector/diglib/plus.c       2014-06-03 20:31:35.081158510 +0200
+@@ -285,7 +285,7 @@
+     /* Nodes */
+     if (dig_fseek(plus, Plus->Node_offset, 0) == -1)
+-      G_fatal_error(_("Unable read topology for nodes"));
++      G_fatal_error("%s", _("Unable read topology for nodes"));
+     dig_alloc_nodes(Plus, Plus->n_nodes);
+     for (i = 1; i <= Plus->n_nodes; i++) {
+@@ -295,7 +295,7 @@
+     /* Lines */
+     if (dig_fseek(plus, Plus->Line_offset, 0) == -1)
+-      G_fatal_error(_("Unable read topology for lines"));
++      G_fatal_error("%s", _("Unable read topology for lines"));
+     dig_alloc_lines(Plus, Plus->n_lines);
+     for (i = 1; i <= Plus->n_lines; i++) {
+@@ -305,7 +305,7 @@
+     /* Areas */
+     if (dig_fseek(plus, Plus->Area_offset, 0) == -1)
+-      G_fatal_error(_("Unable to read topo for areas"));
++      G_fatal_error("%s", _("Unable to read topo for areas"));
+     dig_alloc_areas(Plus, Plus->n_areas);
+     for (i = 1; i <= Plus->n_areas; i++) {
+@@ -315,7 +315,7 @@
+     /* Isles */
+     if (dig_fseek(plus, Plus->Isle_offset, 0) == -1)
+-      G_fatal_error(_("Unable to read topology for isles"));
++      G_fatal_error("%s", _("Unable to read topology for isles"));
+     dig_alloc_isles(Plus, Plus->n_isles);
+     for (i = 1; i <= Plus->n_isles; i++) {
+@@ -342,33 +342,33 @@
+     dig_rewind(fp_plus);
+     if (dig_Wr_Plus_head(fp_plus, Plus) < 0) {
+-      G_warning(_("Unable to write head to plus file"));
++      G_warning("%s", _("Unable to write head to plus file"));
+       return (-1);
+     }
+     if (dig_write_nodes(fp_plus, Plus) < 0) {
+-      G_warning(_("Unable to write nodes to plus file"));
++      G_warning("%s", _("Unable to write nodes to plus file"));
+       return (-1);
+     }
+     if (dig_write_lines(fp_plus, Plus) < 0) {
+-      G_warning(_("Unable to write lines to plus file"));
++      G_warning("%s", _("Unable to write lines to plus file"));
+       return (-1);
+     }
+     if (dig_write_areas(fp_plus, Plus) < 0) {
+-      G_warning(_("Unable to write areas to plus file"));
++      G_warning("%s", _("Unable to write areas to plus file"));
+       return (-1);
+     }
+     if (dig_write_isles(fp_plus, Plus) < 0) {
+-      G_warning(_("Unable to write isles to plus file"));
++      G_warning("%s", _("Unable to write isles to plus file"));
+       return (-1);
+     }
+     dig_rewind(fp_plus);
+     if (dig_Wr_Plus_head(fp_plus, Plus) < 0) {
+-      G_warning(_("Unable to write head to plus file"));
++      G_warning("%s", _("Unable to write head to plus file"));
+       return (-1);
+     }
+--- grass-6.4.3/lib/vector/diglib/plus_area.c.orig     2011-06-11 11:52:07.000000000 +0200
++++ grass-6.4.3/lib/vector/diglib/plus_area.c  2014-06-05 21:11:27.164173625 +0200
+@@ -296,7 +296,7 @@
+     Area = plus->Area[area];
+     if (Area == NULL)
+-      G_fatal_error(_("Attempt to delete isle from dead area"));
++      G_fatal_error("%s", _("Attempt to delete isle from dead area"));
+     mv = 0;
+     for (i = 0; i < Area->n_isles; i++) {
+@@ -351,7 +351,7 @@
+     Area = plus->Area[area];
+     if (Area == NULL) {
+-      G_warning(_("Attempt to delete dead area"));
++      G_warning("%s", _("Attempt to delete dead area"));
+       return 0;
+     }
+--- grass-6.4.3/lib/vector/diglib/spindex.c.orig       2008-11-25 02:31:04.000000000 +0100
++++ grass-6.4.3/lib/vector/diglib/spindex.c    2014-06-07 22:15:52.310491374 +0200
+@@ -311,7 +311,7 @@
+     Area = Plus->Area[area];
+     if (Area == NULL) {
+-      G_fatal_error(_("Attempt to delete sidx for dead area"));
++      G_fatal_error("%s", _("Attempt to delete sidx for dead area"));
+     }
+     rect.boundary[0] = Area->W;
+--- grass-6.4.3/lib/vector/Vlib/sindex.c.orig  2009-02-21 11:45:17.000000000 +0100
++++ grass-6.4.3/lib/vector/Vlib/sindex.c       2014-05-18 20:56:53.723273715 +0200
+@@ -124,7 +124,7 @@
+ int Vect_build_spatial_index(struct Map_info *Map)
+ {
+     if (Map->level < 2) {
+-      G_fatal_error(_("Unable to build spatial index from topology, "
++      G_fatal_error("%s", _("Unable to build spatial index from topology, "
+                       "vector map is not opened at topo level 2"));
+     }
+     if (!(Map->plus.Spidx_built)) {
+@@ -165,7 +165,7 @@
+       Node = plus->Node[i];
+       if (!Node)
+-          G_fatal_error(_("BUG (Vect_build_sidx_from_topo): node does not exist"));
++          G_fatal_error("%s", _("BUG (Vect_build_sidx_from_topo): node does not exist"));
+       dig_spidx_add_node(plus, i, Node->x, Node->y, Node->z);
+     }
+@@ -177,7 +177,7 @@
+       Line = plus->Line[i];
+       if (!Line)
+-          G_fatal_error(_("BUG (Vect_build_sidx_from_topo): line does not exist"));
++          G_fatal_error("%s", _("BUG (Vect_build_sidx_from_topo): line does not exist"));
+       box.N = Line->N;
+       box.S = Line->S;
+@@ -196,7 +196,7 @@
+       Area = plus->Area[i];
+       if (!Area)
+-          G_fatal_error(_("BUG (Vect_build_sidx_from_topo): area does not exist"));
++          G_fatal_error("%s", _("BUG (Vect_build_sidx_from_topo): area does not exist"));
+       box.N = Area->N;
+       box.S = Area->S;
+@@ -215,7 +215,7 @@
+       Isle = plus->Isle[i];
+       if (!Isle)
+-          G_fatal_error(_("BUG (Vect_build_sidx_from_topo): isle does not exist"));
++          G_fatal_error("%s", _("BUG (Vect_build_sidx_from_topo): isle does not exist"));
+       box.N = Isle->N;
+       box.S = Isle->S;
+--- grass-6.4.3/lib/vector/Vlib/build_ogr.c.orig       2008-11-25 02:31:05.000000000 +0100
++++ grass-6.4.3/lib/vector/Vlib/build_ogr.c    2014-06-03 20:39:59.871147991 +0200
+@@ -330,7 +330,7 @@
+     OGRGeometryH hGeom;
+     if (build != GV_BUILD_ALL)
+-      G_fatal_error(_("Partial build for OGR is not supported"));
++      G_fatal_error("%s", _("Partial build for OGR is not supported"));
+     /* TODO move this init to better place (Vect_open_ ?), because in theory build may be reused on level2 */
+     Map->fInfo.ogr.offset = NULL;
+@@ -339,14 +339,14 @@
+     /* test layer capabilities */
+     if (!OGR_L_TestCapability(Map->fInfo.ogr.layer, OLCRandomRead)) {
+-      G_warning(_("Random read is not supported by OGR for this layer, cannot build support"));
++      G_warning("%s", _("Random read is not supported by OGR for this layer, cannot build support"));
+       return 0;
+     }
+     init_parts(&parts);
+     /* Note: Do not use OGR_L_GetFeatureCount (it may scan all features)!!! */
+-    G_verbose_message(_("Feature: "));
++    G_verbose_message("%s", _("Feature: "));
+     OGR_L_ResetReading(Map->fInfo.ogr.layer);
+     count = iFeature = 0;
+@@ -365,7 +365,7 @@
+       FID = (int)OGR_F_GetFID(hFeature);
+       if (FID == OGRNullFID) {
+-          G_warning(_("OGR feature without ID ignored"));
++          G_warning("%s", _("OGR feature without ID ignored"));
+           OGR_F_Destroy(hFeature);
+           continue;
+       }
+--- grass-6.4.3/lib/vector/Vlib/remove_areas.c.orig    2012-10-27 11:52:09.000000000 +0200
++++ grass-6.4.3/lib/vector/Vlib/remove_areas.c 2014-06-05 21:11:39.454173369 +0200
+@@ -93,7 +93,7 @@
+           line = List->value[i];
+           if (!Vect_line_alive(Map, abs(line)))       /* Should not happen */
+-              G_fatal_error(_("Area is composed of dead boundary"));
++              G_fatal_error("%s", _("Area is composed of dead boundary"));
+           Vect_get_line_areas(Map, abs(line), &left, &right);
+           if (line > 0)
+--- grass-6.4.3/lib/vector/Vlib/net.c.orig     2013-07-09 21:05:44.000000000 +0200
++++ grass-6.4.3/lib/vector/Vlib/net.c  2014-06-07 22:16:43.640490303 +0200
+@@ -119,7 +119,7 @@
+           ltype, afield, nfield);
+     G_debug(1, "    afcol = %s, abcol = %s, ncol = %s", afcol, abcol, ncol);
+-    G_message(_("Building graph..."));
++    G_message("%s", _("Building graph..."));
+     Map->graph_line_type = ltype;
+@@ -161,20 +161,20 @@
+                     opaqueset);
+     if (gr == NULL)
+-      G_fatal_error(_("Unable to build network graph"));
++      G_fatal_error("%s", _("Unable to build network graph"));
+     db_init_handle(&handle);
+     db_init_string(&stmt);
+     if (abcol != NULL && afcol == NULL)
+-      G_fatal_error(_("Forward costs column not specified"));
++      G_fatal_error("%s", _("Forward costs column not specified"));
+     /* --- Add arcs --- */
+     /* Open db connection */
+     if (afcol != NULL) {
+       /* Get field info */
+       if (afield < 1)
+-          G_fatal_error(_("Arc field < 1"));
++          G_fatal_error("%s", _("Arc field < 1"));
+       Fi = Vect_get_field(Map, afield);
+       if (Fi == NULL)
+           G_fatal_error(_("Database connection not defined for layer %d"),
+@@ -224,7 +224,7 @@
+     skipped = 0;
+-    G_message(_("Registering arcs..."));
++    G_message("%s", _("Registering arcs..."));
+     for (i = 1; i <= nlines; i++) {
+       G_percent(i, nlines, 1);        /* must be before any continue */
+@@ -320,7 +320,7 @@
+                          (dglInt32_t) bcost, (dglInt32_t) - i);
+           Map->edge_bcosts[i] = bdcost;
+           if (ret < 0)
+-              G_fatal_error(_("Cannot add network arc"));
++              G_fatal_error("%s", _("Cannot add network arc"));
+       }
+     }
+@@ -344,7 +344,7 @@
+       if (nfield < 1)
+           G_fatal_error("Node field < 1");
+-      G_message(_("Setting node costs..."));
++      G_message("%s", _("Setting node costs..."));
+       Fi = Vect_get_field(Map, nfield);
+       if (Fi == NULL)
+@@ -427,16 +427,16 @@
+       db_CatValArray_free(&fvarr);
+     }
+-    G_message(_("Flattening the graph..."));
++    G_message("%s", _("Flattening the graph..."));
+     ret = dglFlatten(gr);
+     if (ret < 0)
+-      G_fatal_error(_("GngFlatten error"));
++      G_fatal_error("%s", _("GngFlatten error"));
+     /* init SP cache */
+     /* disable to debug dglib cache */
+     dglInitializeSPCache(gr, &(Map->spCache));
+-    G_message(_("Graph was built"));
++    G_message("%s", _("Graph was built"));
+     return 0;
+ }
+@@ -600,7 +600,7 @@
+               Map->edge_bcosts[line]);
+     }
+     else {
+-      G_fatal_error(_("Wrong line direction in Vect_net_get_line_cost()"));
++      G_fatal_error("%s", _("Wrong line direction in Vect_net_get_line_cost()"));
+     }
+     return 1;
+--- grass-6.4.3/lib/vector/Vlib/area.c.orig    2008-11-25 02:31:05.000000000 +0100
++++ grass-6.4.3/lib/vector/Vlib/area.c 2014-06-08 08:30:14.713056377 +0200
+@@ -50,7 +50,7 @@
+     Area = Plus->Area[area];
+     if (Area == NULL) {               /* dead area */
+-      G_warning(_("Attempt to read points of nonexistent area"));
++      G_warning("%s", _("Attempt to read points of nonexistent area"));
+       return -1;              /* error , because we should not read dead areas */
+     }
+--- grass-6.4.3/lib/vector/Vlib/open_ogr.c.orig        2012-12-01 11:52:05.000000000 +0100
++++ grass-6.4.3/lib/vector/Vlib/open_ogr.c     2014-06-08 10:08:12.776267196 +0200
+@@ -51,7 +51,7 @@
+     OGRwkbGeometryType Ogr_geom_type;
+     
+     if (update) {
+-      G_fatal_error(_("OGR format cannot be updated"));
++      G_fatal_error("%s", _("OGR format cannot be updated"));
+       return -1;
+     }
+--- grass-6.4.3/lib/vector/Vlib/cindex.c.orig  2013-04-20 11:52:15.000000000 +0200
++++ grass-6.4.3/lib/vector/Vlib/cindex.c       2014-06-08 10:49:55.882881687 +0200
+@@ -28,7 +28,7 @@
+ static void check_status(struct Map_info *Map)
+ {
+     if (!Map->plus.cidx_up_to_date)
+-      G_fatal_error(_("Category index is not up to date"));
++      G_fatal_error("%s", _("Category index is not up to date"));
+ }
+ /*!
+@@ -58,7 +58,7 @@
+     check_status(Map);
+     if (index >= Map->plus.n_cidx)
+-      G_fatal_error(_("Invalid layer index (index >= number of layers)"));
++      G_fatal_error("%s", _("Invalid layer index (index >= number of layers)"));
+     return (Map->plus.cidx[index].field);
+ }
+@@ -104,7 +104,7 @@
+     check_status(Map);
+     if (index < 0 || index >= Map->plus.n_cidx)
+-      G_fatal_error(_("Invalid layer index (index < 0 or index >= number of layers)"));
++      G_fatal_error("%s", _("Invalid layer index (index < 0 or index >= number of layers)"));
+     return (Map->plus.cidx[index].n_ucats);
+ }
+@@ -122,7 +122,7 @@
+ {
+     check_status(Map);
+     if (index >= Map->plus.n_cidx)
+-      G_fatal_error(_("Invalid layer index (index >= number of layers)"));
++      G_fatal_error("%s", _("Invalid layer index (index >= number of layers)"));
+     return (Map->plus.cidx[index].n_cats);
+ }
+@@ -140,7 +140,7 @@
+ {
+     check_status(Map);
+     if (field_index >= Map->plus.n_cidx)
+-      G_fatal_error(_("Invalid layer index (index >= number of layers)"));
++      G_fatal_error("%s", _("Invalid layer index (index >= number of layers)"));
+     return (Map->plus.cidx[field_index].n_types);
+ }
+@@ -163,7 +163,7 @@
+ {
+     check_status(Map);
+     if (field_index >= Map->plus.n_cidx)
+-      G_fatal_error(_("Invalid layer index (index >= number of layers)"));
++      G_fatal_error("%s", _("Invalid layer index (index >= number of layers)"));
+     *type = Map->plus.cidx[field_index].type[type_index][0];
+     *count = Map->plus.cidx[field_index].type[type_index][1];
+@@ -229,7 +229,7 @@
+     if (field_index >= Map->plus.n_cidx || field_index < 0 ||
+       cat_index >= Map->plus.cidx[field_index].n_cats)
+-      G_fatal_error(_("Layer or category index out of range"));
++      G_fatal_error("%s", _("Layer or category index out of range"));
+     *cat = Map->plus.cidx[field_index].cat[cat_index][0];
+     *type = Map->plus.cidx[field_index].cat[cat_index][1];
+@@ -280,7 +280,7 @@
+     *type = *id = 0;
+     if (field_index >= Map->plus.n_cidx)
+-      G_fatal_error(_("Layer index out of range"));
++      G_fatal_error("%s", _("Layer index out of range"));
+     if (start_index < 0)
+       start_index = 0;
+--- grass-6.4.3/lib/vector/Vlib/hist.c.orig    2008-11-25 02:31:05.000000000 +0100
++++ grass-6.4.3/lib/vector/Vlib/hist.c 2014-06-08 11:46:30.799477593 +0200
+@@ -64,7 +64,7 @@
+     int ret;
+     G_debug(5, "Vect_hist_write()");
+-    ret = fprintf(Map->hist_fp, str);
++    ret = fprintf(Map->hist_fp, "%s", str);
+     fflush(Map->hist_fp);
+     return (ret);
+--- grass-6.4.3/lib/vector/Vlib/cats.c.orig    2012-08-25 11:52:04.000000000 +0200
++++ grass-6.4.3/lib/vector/Vlib/cats.c 2014-06-08 12:36:57.609414505 +0200
+@@ -44,7 +44,7 @@
+     struct line_cats *p;
+     if (NULL == (p = Vect__new_cats_struct()))
+-      G_fatal_error(_("Vect_new_cats_struct(): Out of memory"));
++      G_fatal_error("%s", _("Vect_new_cats_struct(): Out of memory"));
+     return p;
+ }
+--- grass-6.4.3/lib/vector/Vlib/open.c.orig    2008-11-25 02:31:05.000000000 +0100
++++ grass-6.4.3/lib/vector/Vlib/open.c 2014-06-08 15:06:15.125894469 +0200
+@@ -60,10 +60,10 @@
+ {
+     switch (ferror) {
+     case GV_FATAL_EXIT:
+-      G_fatal_error(errmsg);
++      G_fatal_error("%s", errmsg);
+       break;
+     case GV_FATAL_PRINT:
+-      G_warning(errmsg);
++      G_warning("%s", errmsg);
+       break;
+     case GV_FATAL_RETURN:
+       break;
+@@ -176,7 +176,7 @@
+     Map->gisdbase = G_store(G_gisdbase());
+     if (update && (0 != strcmp(Map->mapset, G_mapset()))) {
+-      G_warning(_("Vector map which is not in the current mapset cannot be opened for update"));
++      G_warning("%s", _("Vector map which is not in the current mapset cannot be opened for update"));
+       return -1;
+     }
+@@ -211,7 +211,7 @@
+               _("Unable to open vector map <%s> on level %d. "
+                 "Try to rebuild vector topology by v.build."),
+               Vect_get_full_name(Map), level_request);
+-      G_warning(_("Unable to read head file"));
++      G_warning("%s", _("Unable to read head file"));
+     }
+     G_debug(1, "Level request = %d", level_request);
+@@ -537,8 +537,7 @@
+     /* check for [A-Za-z][A-Za-z0-9_]* in name */
+     if (Vect_legal_filename(name) < 0) {
+-      sprintf(errmsg, _("Vector map name is not SQL compliant"));
+-      fatal_error(ferror, errmsg);
++      fatal_error(ferror, _("Vector map name is not SQL compliant"));
+       return (-1);
+     }
+@@ -728,7 +727,7 @@
+     /* do checks */
+     err = 0;
+     if (CInfo.size != Plus->coor_size) {
+-      G_warning(_("Size of 'coor' file differs from value saved in topology file"));
++      G_warning("%s", _("Size of 'coor' file differs from value saved in topology file"));
+       err = 1;
+     }
+     /* Do not check mtime because mtime is changed by copy */
+--- grass-6.4.3/lib/vector/Vlib/build_nat.c.orig       2010-11-13 11:52:06.000000000 +0100
++++ grass-6.4.3/lib/vector/Vlib/build_nat.c    2014-06-08 16:08:51.295816179 +0200
+@@ -90,7 +90,7 @@
+       area = dig_add_area(plus, n_lines, lines);
+       if (area == -1) {       /* error */
+           Vect_close(Map);
+-          G_fatal_error(_("Unable to add area (map closed, topo saved)"));
++          G_fatal_error("%s", _("Unable to add area (map closed, topo saved)"));
+       }
+       G_debug(3, "  -> area %d", area);
+       return area;
+@@ -99,7 +99,7 @@
+       isle = dig_add_isle(plus, n_lines, lines);
+       if (isle == -1) {       /* error */
+           Vect_close(Map);
+-          G_fatal_error(_("Unable to add isle (map closed, topo saved)"));
++          G_fatal_error("%s", _("Unable to add isle (map closed, topo saved)"));
+       }
+       G_debug(3, "  -> isle %d", isle);
+       return -isle;
+@@ -109,7 +109,7 @@
+        *        so that may be found and cleaned by some utility
+        *  Note: it would be useful for vertical closed polygons, but such would be added twice
+        *        as area */
+-      G_warning(_("Area of size = 0.0 ignored"));
++      G_warning("%s", _("Area of size = 0.0 ignored"));
+     }
+     return 0;
+ }
+@@ -145,7 +145,7 @@
+     plus = &(Map->plus);
+     if (plus->Isle[isle] == NULL) {
+-      G_warning(_("Request to find area outside nonexistent isle"));
++      G_warning("%s", _("Request to find area outside nonexistent isle"));
+       return 0;
+     }
+@@ -513,7 +513,7 @@
+       /* register lines, create nodes */
+       Vect_rewind(Map);
+-      G_message(_("Registering primitives..."));
++      G_message("%s", _("Registering primitives..."));
+       i = 1;
+       npoints = 0;
+       while (1) {
+@@ -522,7 +522,7 @@
+           /* Note: check for dead lines is not needed, because they are skipped by V1_read_next_line_nat() */
+           if (type == -1) {
+-              G_warning(_("Unable to read vector map"));
++              G_warning("%s", _("Unable to read vector map"));
+               return 0;
+           }
+           else if (type == -2) {
+@@ -578,7 +578,7 @@
+     if (plus->built < GV_BUILD_AREAS) {
+       /* Build areas */
+       /* Go through all bundaries and try to build area for both sides */
+-      G_important_message(_("Building areas..."));
++      G_important_message("%s", _("Building areas..."));
+       for (i = 1; i <= plus->n_lines; i++) {
+           G_percent(i, plus->n_lines, 1);
+@@ -611,7 +611,7 @@
+     /* Attach isles to areas */
+     if (plus->built < GV_BUILD_ATTACH_ISLES) {
+-      G_important_message(_("Attaching islands..."));
++      G_important_message("%s", _("Attaching islands..."));
+       for (i = 1; i <= plus->n_isles; i++) {
+           G_percent(i, plus->n_isles, 1);
+           Vect_attach_isle(Map, i);
+@@ -626,7 +626,7 @@
+     if (plus->built < GV_BUILD_CENTROIDS) {
+       int nlines;
+-      G_important_message(_("Attaching centroids..."));
++      G_important_message("%s", _("Attaching centroids..."));
+       nlines = Vect_get_num_lines(Map);
+       for (line = 1; line <= nlines; line++) {
+--- grass-6.4.3/lib/vector/Vlib/buffer2.c.orig 2011-04-23 11:52:12.000000000 +0200
++++ grass-6.4.3/lib/vector/Vlib/buffer2.c      2014-06-08 18:14:32.325659000 +0200
+@@ -361,7 +361,7 @@
+     if ((np == 0) || (np == 1))
+       return;
+     if ((x[0] != x[np - 1]) || (y[0] != y[np - 1])) {
+-      G_fatal_error(_("Line is not looped"));
++      G_fatal_error("%s", _("Line is not looped"));
+       return;
+     }
+@@ -595,7 +595,7 @@
+           break;
+       if (opt_side == 1) {
+           if (vert->edges[opt_j]->visited_right) {
+-              G_warning(_("Next edge was visited but it is not the first one !!! breaking loop"));
++              G_warning("%s", _("Next edge was visited but it is not the first one !!! breaking loop"));
+               G_debug(4,
+                       "ec: v0=%d, v=%d, eside=%d, edge->v1=%d, edge->v2=%d",
+                       v, (edge->v1 == v) ? (edge->v2) : (edge->v1),
+@@ -606,7 +606,7 @@
+       }
+       else {
+           if (vert->edges[opt_j]->visited_left) {
+-              G_warning(_("Next edge was visited but it is not the first one !!! breaking loop"));
++              G_warning("%s", _("Next edge was visited but it is not the first one !!! breaking loop"));
+               G_debug(4,
+                       "ec: v0=%d, v=%d, eside=%d, edge->v1=%d, edge->v2=%d",
+                       v, (edge->v1 == v) ? (edge->v2) : (edge->v1),
+@@ -654,7 +654,7 @@
+     G_debug(3, "extract_outer_contour()");
+     if (side != 0) {
+-      G_fatal_error(_("side != 0 feature not implemented"));
++      G_fatal_error("%s", _("side != 0 feature not implemented"));
+       return;
+     }
+@@ -896,13 +896,13 @@
+           dig_find_area_poly(cPoints, &area_size);
+           if (area_size == 0) {
+-              G_warning(_("zero area size"));
++              G_warning("%s", _("zero area size"));
+               check_poly = 0;
+           }
+           if (cPoints->x[0] != cPoints->x[cPoints->n_points - 1] ||
+               cPoints->y[0] != cPoints->y[cPoints->n_points - 1]) {
+-              G_warning(_("Line was not closed"));
++              G_warning("%s", _("Line was not closed"));
+               check_poly = 0;
+           }
+@@ -915,7 +915,7 @@
+                   }
+               }
+               else {
+-                  G_warning(_("Vect_get_point_in_poly() failed"));
++                  G_warning("%s", _("Vect_get_point_in_poly() failed"));
+               }
+           }
+       }
+@@ -943,13 +943,13 @@
+               dig_find_area_poly(cPoints, &area_size);
+               if (area_size == 0) {
+-                  G_warning(_("zero area size"));
++                  G_warning("%s", _("zero area size"));
+                   check_poly = 0;
+               }
+               if (cPoints->x[0] != cPoints->x[cPoints->n_points - 1] ||
+                   cPoints->y[0] != cPoints->y[cPoints->n_points - 1]) {
+-                  G_warning(_("Line was not closed"));
++                  G_warning("%s", _("Line was not closed"));
+                   check_poly = 0;
+               }
+@@ -966,7 +966,7 @@
+                       }
+                   }
+                   else {
+-                      G_warning(_("Vect_get_point_in_poly() failed"));
++                      G_warning("%s", _("Vect_get_point_in_poly() failed"));
+                   }
+               }
+           }
+--- grass-6.4.3/lib/vector/Vlib/build.c.orig   2010-10-23 11:52:06.000000000 +0200
++++ grass-6.4.3/lib/vector/Vlib/build.c        2014-06-08 18:48:59.472282583 +0200
+@@ -138,7 +138,7 @@
+     }
+     if (build > GV_BUILD_NONE) {
+-      G_verbose_message(_("Topology was built"));
++      G_verbose_message("%s", _("Topology was built"));
+     }
+     Map->level = LEVEL_2;
+@@ -223,8 +223,8 @@
+     }
+     else if (build > GV_BUILD_NONE) {
+-      G_message(_("Number of areas: -"));
+-      G_message(_("Number of isles: -"));
++      G_message("%s", _("Number of areas: -"));
++      G_message("%s", _("Number of isles: -"));
+     }
+     return 1;
+ }
+@@ -261,7 +261,7 @@
+     dig_init_portable(&(plus->port), dig__byte_order_out());
+     if (0 > dig_write_plus_file(&fp, plus)) {
+-      G_warning(_("Error writing out topo file"));
++      G_warning("%s", _("Error writing out topo file"));
+       return 0;
+     }
+@@ -412,7 +412,7 @@
+     dig_init_portable(&(plus->spidx_port), dig__byte_order_out());
+     if (0 > dig_write_spidx(&fp, plus)) {
+-      G_warning(_("Error writing out spatial index file"));
++      G_warning("%s", _("Error writing out spatial index file"));
+       return 0;
+     }
+--- grass-6.4.3/lib/vector/Vlib/graph.c.orig   2008-11-25 02:31:05.000000000 +0100
++++ grass-6.4.3/lib/vector/Vlib/graph.c        2014-06-08 19:38:13.865554335 +0200
+@@ -107,7 +107,7 @@
+     ret = dglFlatten(graph);
+     if (ret < 0)
+-      G_fatal_error(_("GngFlatten error"));
++      G_fatal_error("%s", _("GngFlatten error"));
+ }
+ /*!
+@@ -140,7 +140,7 @@
+       dglAddEdge(graph, (dglInt32_t) from, (dglInt32_t) to, dglcosts,
+                  (dglInt32_t) id);
+     if (ret < 0)
+-      G_fatal_error(_("Unable to add network arc"));
++      G_fatal_error("%s", _("Unable to add network arc"));
+ }
+ /*!
+--- grass-6.4.3/lib/vector/Vlib/field.c.orig   2011-03-05 11:52:08.000000000 +0100
++++ grass-6.4.3/lib/vector/Vlib/field.c        2014-06-08 20:23:13.888831392 +0200
+@@ -90,24 +90,24 @@
+     int ret;
+     if (number == 0) {
+-      G_warning(_("Layer number must be 1 or greater"));
++      G_warning("%s", _("Layer number must be 1 or greater"));
+       return -1;
+     }
+     if (Map->mode != GV_MODE_WRITE && Map->mode != GV_MODE_RW) {
+-      G_warning(_("Unable to add database link, map is not opened in WRITE mode"));
++      G_warning("%s", _("Unable to add database link, map is not opened in WRITE mode"));
+       return -1;
+     }
+     ret = Vect_add_dblink(Map->dblnk, number, name, table, key, db, driver);
+     if (ret == -1) {
+-      G_warning(_("Unable to add database link"));
++      G_warning("%s", _("Unable to add database link"));
+       return -1;
+     }
+     /* write it immediately otherwise it is lost if module crashes */
+     ret = Vect_write_dblinks(Map);
+     if (ret == -1) {
+-      G_warning(_("Unable to write database links"));
++      G_warning("%s", _("Unable to write database links"));
+       return -1;
+     }
+     return 0;
+@@ -152,7 +152,7 @@
+     /* write it immediately otherwise it is lost if module crashes */
+     ret = Vect_write_dblinks(Map);
+     if (ret == -1) {
+-      G_warning(_("Unable to write database links"));
++      G_warning("%s", _("Unable to write database links"));
+       return -1;
+     }
+@@ -306,10 +306,10 @@
+     /* they must be a matched pair, so if one is set but not the other
+        then give up and let the user figure it out */
+     else if (!connection.driverName) {
+-      G_fatal_error(_("Default driver is not set"));
++      G_fatal_error("%s", _("Default driver is not set"));
+     }
+     else if (!connection.databaseName) {
+-      G_fatal_error(_("Default database is not set"));
++      G_fatal_error("%s", _("Default database is not set"));
+     }
+     drv = connection.driverName;
+@@ -801,7 +801,7 @@
+ void Vect_set_db_updated(struct Map_info *Map)
+ {
+     if (strcmp(Map->mapset, G_mapset()) != 0) {
+-      G_fatal_error(_("Bug: attempt to update map which is not in current mapset"));
++      G_fatal_error("%s", _("Bug: attempt to update map which is not in current mapset"));
+     }
+     Vect_write_dblinks(Map);
+--- grass-6.4.3/lib/vector/Vlib/write_nat.c.orig       2008-11-25 02:31:05.000000000 +0100
++++ grass-6.4.3/lib/vector/Vlib/write_nat.c    2014-06-08 21:20:10.248760184 +0200
+@@ -637,7 +637,7 @@
+       Line = Map->plus.Line[line];
+       if (Line == NULL)
+-          G_fatal_error(_("Attempt to delete dead feature"));
++          G_fatal_error("%s", _("Attempt to delete dead feature"));
+       type = Line->type;
+     }
+@@ -882,7 +882,7 @@
+       Line = Map->plus.Line[line];
+       if (Line != NULL)
+-          G_fatal_error(_("Attempt to restore alive feature"));
++          G_fatal_error("%s", _("Attempt to restore alive feature"));
+     }
+     if (!points) {
+--- grass-6.4.3/lib/vector/Vlib/write.c.orig   2011-02-05 11:52:09.000000000 +0100
++++ grass-6.4.3/lib/vector/Vlib/write.c        2014-06-09 17:59:48.780543237 +0200
+@@ -132,7 +132,7 @@
+           Map->name, Map->format, Map->level);
+     if (!VECT_OPEN(Map))
+-      G_fatal_error(_("Unable to write feature, vector map is not opened"));
++      G_fatal_error("%s", _("Unable to write feature, vector map is not opened"));
+     dig_line_reset_updated(&(Map->plus));
+     dig_node_reset_updated(&(Map->plus));
+@@ -145,7 +145,7 @@
+                                                     cats);
+     if (offset == -1)
+-      G_fatal_error(_("Unable to write feature (negative offset)"));
++      G_fatal_error("%s", _("Unable to write feature (negative offset)"));
+     return offset;
+ }
+@@ -178,7 +178,7 @@
+     G_debug(3, "Vect_rewrite_line(): name = %s, line = %d", Map->name, line);
+     if (!VECT_OPEN(Map))
+-      G_fatal_error(_("Unable to rewrite feature, vector map is not opened"));
++      G_fatal_error("%s", _("Unable to rewrite feature, vector map is not opened"));
+     dig_line_reset_updated(&(Map->plus));
+     dig_node_reset_updated(&(Map->plus));
+--- grass-6.4.3/lib/vector/Vlib/line.c.orig    2012-07-14 11:52:05.000000000 +0200
++++ grass-6.4.3/lib/vector/Vlib/line.c 2014-06-09 18:26:50.190509441 +0200
+@@ -526,7 +526,7 @@
+     G_debug(3, "  -> seg1 = %d seg2 = %d", seg1, seg2);
+     if (seg1 == 0 || seg2 == 0) {
+-      G_warning(_("Segment outside line, no segment created"));
++      G_warning("%s", _("Segment outside line, no segment created"));
+       return 0;
+     }
+--- grass-6.4.3/lib/vector/Vlib/snap.c.orig    2012-12-08 11:52:05.000000000 +0100
++++ grass-6.4.3/lib/vector/Vlib/snap.c 2014-06-09 19:30:30.180429821 +0200
+@@ -145,7 +145,7 @@
+     nvertices = 0;
+     XPnts = NULL;
+-    G_verbose_message(_("Snap vertices Pass 1: select points"));
++    G_verbose_message("%s", _("Snap vertices Pass 1: select points"));
+     for (line_idx = 0; line_idx < List_lines->n_values; line_idx++) {
+       int v;
+@@ -199,7 +199,7 @@
+     /* Go through all registered points and if not yet marked mark it as anchor and assign this anchor
+      * to all not yet marked points in threshold */
+-    G_verbose_message(_("Snap vertices Pass 2: assign anchor vertices"));
++    G_verbose_message("%s", _("Snap vertices Pass 2: assign anchor vertices"));
+     nanchors = ntosnap = 0;
+     for (point = 1; point <= npoints; point++) {
+@@ -268,7 +268,7 @@
+     nsnapped = ncreated = 0;
+-    G_verbose_message(_("Snap vertices Pass 3: snap to assigned points"));
++    G_verbose_message("%s", _("Snap vertices Pass 3: snap to assigned points"));
+     for (line_idx = 0; line_idx < List_lines->n_values; line_idx++) {
+       int v, spoint, anchor;
+--- grass-6.4.3/lib/vector/Vlib/intersect.c.orig       2013-04-20 11:52:15.000000000 +0200
++++ grass-6.4.3/lib/vector/Vlib/intersect.c    2014-06-09 21:34:55.590274220 +0200
+@@ -124,7 +124,7 @@
+     /* TODO 3D */
+     if (with_z && first_3d) {
+-      G_warning(_("3D not supported by Vect_segment_intersection()"));
++      G_warning("%s", _("3D not supported by Vect_segment_intersection()"));
+       first_3d = 0;
+     }
+@@ -310,7 +310,7 @@
+       }
+       /* should not be reached */
+-      G_warning(_("Vect_segment_intersection() ERROR (collinear vertical segments)"));
++      G_warning("%s", _("Vect_segment_intersection() ERROR (collinear vertical segments)"));
+       G_warning("a");
+       G_warning("%.15g %.15g", ax1, ay1);
+       G_warning("%.15g %.15g", ax2, ay2);
+@@ -404,7 +404,7 @@
+     }
+     /* should not be reached */
+-    G_warning(_("Vect_segment_intersection() ERROR (collinear non vertical segments)"));
++    G_warning("%s", _("Vect_segment_intersection() ERROR (collinear non vertical segments)"));
+     G_warning("a");
+     G_warning("%.15g %.15g", ax1, ay1);
+     G_warning("%.15g %.15g", ax2, ay2);
+@@ -1056,15 +1056,15 @@
+       break;
+     case 1:
+       if (0 > Vect_copy_xyz_to_pnts(IPnts, &x1, &y1, &z1, 1))
+-          G_warning(_("Error while adding point to array. Out of memory"));
++          G_warning("%s", _("Error while adding point to array. Out of memory"));
+       break;
+     case 2:
+     case 3:
+     case 4:
+       if (0 > Vect_copy_xyz_to_pnts(IPnts, &x1, &y1, &z1, 1))
+-          G_warning(_("Error while adding point to array. Out of memory"));
++          G_warning("%s", _("Error while adding point to array. Out of memory"));
+       if (0 > Vect_copy_xyz_to_pnts(IPnts, &x2, &y2, &z2, 1))
+-          G_warning(_("Error while adding point to array. Out of memory"));
++          G_warning("%s", _("Error while adding point to array. Out of memory"));
+       break;
+     }
+     /* add ALL (including end points and duplicates), clean later */
+@@ -1112,7 +1112,7 @@
+               if (0 >
+                   Vect_copy_xyz_to_pnts(IPnts, &APoints->x[0],
+                                         &APoints->y[0], NULL, 1))
+-                  G_warning(_("Error while adding point to array. Out of memory"));
++                  G_warning("%s", _("Error while adding point to array. Out of memory"));
+               return 1;
+           }
+           else {
+@@ -1121,7 +1121,7 @@
+                       Vect_copy_xyz_to_pnts(IPnts, &APoints->x[0],
+                                             &APoints->y[0], &APoints->z[0],
+                                             1))
+-                      G_warning(_("Error while adding point to array. Out of memory"));
++                      G_warning("%s", _("Error while adding point to array. Out of memory"));
+                   return 1;
+               }
+               else
+@@ -1142,7 +1142,7 @@
+           if (0 >
+               Vect_copy_xyz_to_pnts(IPnts, &APoints->x[0], &APoints->y[0],
+                                     &APoints->z[0], 1))
+-              G_warning(_("Error while adding point to array. Out of memory"));
++              G_warning("%s", _("Error while adding point to array. Out of memory"));
+           return 1;
+       }
+       else {
+@@ -1159,7 +1159,7 @@
+           if (0 >
+               Vect_copy_xyz_to_pnts(IPnts, &BPoints->x[0], &BPoints->y[0],
+                                     &BPoints->z[0], 1))
+-              G_warning(_("Error while adding point to array. Out of memory"));
++              G_warning("%s", _("Error while adding point to array. Out of memory"));
+           return 1;
+       }
+       else
+--- grass-6.4.3/lib/vector/Vlib/map.c.orig     2010-01-16 11:52:49.000000000 +0100
++++ grass-6.4.3/lib/vector/Vlib/map.c  2014-06-09 21:59:06.410243979 +0200
+@@ -175,7 +175,7 @@
+     G_debug(2, "Copy vector '%s' in '%s' to '%s'", in, mapset, out);
+     /* check for [A-Za-z][A-Za-z0-9_]* in name */
+     if (Vect_legal_filename(out) < 0)
+-      G_fatal_error(_("Vector map name is not SQL compliant"));
++      G_fatal_error("%s", _("Vector map name is not SQL compliant"));
+     xmapset = G_find_vector2(in, mapset);
+     if (!xmapset) {
+@@ -311,7 +311,7 @@
+     G_debug(2, "Rename vector '%s' to '%s'", in, out);
+     /* check for [A-Za-z][A-Za-z0-9_]* in name */
+     if (Vect_legal_filename(out) < 0)
+-      G_fatal_error(_("Vector map name is not SQL compliant"));
++      G_fatal_error("%s", _("Vector map name is not SQL compliant"));
+     /* Delete old vector if it exists */
+     if (G_find_vector2(out, G_mapset())) {
+--- grass-6.4.3/lib/vector/Vlib/read_ogr.c.orig        2009-11-28 11:52:54.000000000 +0100
++++ grass-6.4.3/lib/vector/Vlib/read_ogr.c     2014-06-10 16:04:20.162220145 +0200
+@@ -175,7 +175,7 @@
+           Map->fInfo.ogr.feature_cache_id = (int)OGR_F_GetFID(hFeature);
+           if (Map->fInfo.ogr.feature_cache_id == OGRNullFID) {
+-              G_warning(_("OGR feature without ID"));
++              G_warning("%s", _("OGR feature without ID"));
+           }
+           /* Cache the feature */
+--- grass-6.4.3/lib/vector/Vlib/array.c.orig   2008-11-25 02:31:05.000000000 +0100
++++ grass-6.4.3/lib/vector/Vlib/array.c        2014-06-10 16:35:35.955514373 +0200
+@@ -142,7 +142,7 @@
+     /* Check type */
+     if ((type & GV_AREA) && (type & (GV_POINTS | GV_LINES))) {
+-      G_warning(_("Mixed area and other type requested for vector array"));
++      G_warning("%s", _("Mixed area and other type requested for vector array"));
+       return 0;
+     }
+@@ -152,7 +152,7 @@
+       n = Vect_get_num_areas(Map);
+       if (n > varray->size) { /* not enough space */
+-          G_warning(_("Not enough space in vector array"));
++          G_warning("%s", _("Not enough space in vector array"));
+           return 0;
+       }
+@@ -175,7 +175,7 @@
+       n = Vect_get_num_lines(Map);
+       if (n > varray->size) { /* not enough space */
+-          G_warning(_("Not enough space in vector array"));
++          G_warning("%s", _("Not enough space in vector array"));
+           return 0;
+       }
+@@ -266,7 +266,7 @@
+     /* Check type */
+     if ((type & GV_AREA) && (type & (GV_POINTS | GV_LINES))) {
+-      G_warning(_("Mixed area and other type requested for vector array"));
++      G_warning("%s", _("Mixed area and other type requested for vector array"));
+       return 0;
+     }
+@@ -303,7 +303,7 @@
+         as WHERE will create a small subset of all vector features and thus on large datasets
+         it's waste of memory to allocate it for all features. */
+       if (n > varray->size) { /* not enough space */
+-          G_warning(_("Not enough space in vector array"));
++          G_warning("%s", _("Not enough space in vector array"));
+           return 0;
+       }
+@@ -336,7 +336,7 @@
+       n = Vect_get_num_lines(Map);
+       if (n > varray->size) { /* not enough space */
+-          G_warning(_("Not enough space in vector array"));
++          G_warning("%s", _("Not enough space in vector array"));
+           return 0;
+       }
+--- grass-6.4.3/lib/vector/Vlib/overlay.c.orig 2008-11-25 02:31:05.000000000 +0100
++++ grass-6.4.3/lib/vector/Vlib/overlay.c      2014-06-10 18:26:35.605375566 +0200
+@@ -120,10 +120,10 @@
+     /* TODO: support all types; at present only point x point, area x point and point x area supported  */
+     if ((atype & GV_LINES) || (btype & GV_LINES))
+-      G_warning(_("Overlay: line/boundary types not supported by AND operator"));
++      G_warning("%s", _("Overlay: line/boundary types not supported by AND operator"));
+     if ((atype & GV_AREA) && (btype & GV_AREA))
+-      G_warning(_("Overlay: area x area types not supported by AND operator"));
++      G_warning("%s", _("Overlay: area x area types not supported by AND operator"));
+     /* TODO: more points in one node in one map */
+--- grass-6.4.3/lib/vector/neta/centrality.c.orig      2011-04-16 11:52:08.000000000 +0200
++++ grass-6.4.3/lib/vector/neta/centrality.c   2014-05-18 20:57:22.929939803 +0200
+@@ -60,7 +60,7 @@
+     nnodes = dglGet_NodeCount(graph);
+     tmp = (double *)G_calloc(nnodes + 1, sizeof(double));
+     if (!tmp) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return -1;
+     }
+@@ -142,7 +142,7 @@
+     delta = (dglInt32_t *) G_calloc(nnodes + 1, sizeof(dglInt32_t));
+     if (!dst || !prev || !stack || !cnt || !delta) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return -1;
+     }
+--- grass-6.4.3/lib/vector/neta/allpairs.c.orig        2011-04-16 11:52:08.000000000 +0200
++++ grass-6.4.3/lib/vector/neta/allpairs.c     2014-06-03 20:40:49.881146947 +0200
+@@ -47,10 +47,10 @@
+     node_indices = (dglInt32_t *) G_calloc(nnodes, sizeof(dglInt32_t));
+     if (!node_indices) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return -1;
+     }
+-    G_message(_("Computing all pairs shortest paths..."));
++    G_message("%s", _("Computing all pairs shortest paths..."));
+     G_percent_reset();
+     for (i = 0; i <= nnodes; i++)
+       for (j = 0; j <= nnodes; j++)
+--- grass-6.4.3/lib/vector/neta/timetables.c.orig      2011-04-16 11:52:08.000000000 +0200
++++ grass-6.4.3/lib/vector/neta/timetables.c   2014-06-05 21:12:19.967505858 +0200
+@@ -66,7 +66,7 @@
+     *lengths = (int *)G_calloc(count, sizeof(int));
+     *ids = (int *)G_calloc(count, sizeof(int));
+     if (!*lengths || !*ids) {
+-      G_warning(_("Out of memory"));
++      G_warning("%s", _("Out of memory"));
+       return -1;
+     }
+     db_open_select_cursor(driver, sql, &cursor, DB_SEQUENTIAL);
+@@ -165,7 +165,7 @@
+     if (!timetable->route_stops || !timetable->route_times ||
+       !timetable->stop_routes || !timetable->stop_times ||
+       !timetable->walk_length) {
+-      G_warning(_("Out of memory"));
++      G_warning("%s", _("Out of memory"));
+       return 2;
+     }
+@@ -175,7 +175,7 @@
+       timetable->route_times[i] =
+           (int *)G_calloc(timetable->route_length[i], sizeof(int));
+       if (!timetable->route_stops[i] || !timetable->route_times[i]) {
+-          G_warning(_("Out of memory"));
++          G_warning("%s", _("Out of memory"));
+           return 2;
+       }
+@@ -188,7 +188,7 @@
+       timetable->stop_times[i] =
+           (int *)G_calloc(timetable->stop_length[i], sizeof(int));
+       if (!timetable->stop_routes[i] || !timetable->stop_times[i]) {
+-          G_warning(_("Out of memory"));
++          G_warning("%s", _("Out of memory"));
+           return 2;
+       }
+       timetable->walk_length[i] = 0;
+@@ -275,7 +275,7 @@
+           timetable->walk_times[i] =
+               (int *)G_calloc(timetable->walk_length[i], sizeof(int));
+           if (!timetable->walk_stops[i] || !timetable->walk_times[i]) {
+-              G_warning(_("Out of memory"));
++              G_warning("%s", _("Out of memory"));
+               return 2;
+           }
+           timetable->walk_length[i] = 0;
+@@ -410,7 +410,7 @@
+     if (!result->dst || !result->prev_stop || !result->prev_route ||
+       !result->prev_conn) {
+-      G_warning(_("Out of memory"));
++      G_warning("%s", _("Out of memory"));
+       return -1;
+     }
+@@ -422,7 +422,7 @@
+       result->prev_conn[i] = (int *)G_calloc(timetable->stops, sizeof(int));
+       if (!result->dst[i] || !result->prev_stop[i] || !result->prev_route[i]
+           || !result->prev_conn[i]) {
+-          G_warning(_("Out of memory"));
++          G_warning("%s", _("Out of memory"));
+           return -1;
+       }
+     }
+--- grass-6.4.3/lib/vector/neta/flow.c.orig    2011-04-16 11:52:08.000000000 +0200
++++ grass-6.4.3/lib/vector/neta/flow.c 2014-06-07 22:17:06.710489822 +0200
+@@ -61,7 +61,7 @@
+     is_source = (char *)G_calloc(nnodes + 3, sizeof(char));
+     is_sink = (char *)G_calloc(nnodes + 3, sizeof(char));
+     if (!queue || !prev || !is_source || !is_sink) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return -1;
+     }
+@@ -175,7 +175,7 @@
+     queue = (dglInt32_t *) G_calloc(nnodes + 3, sizeof(dglInt32_t));
+     visited = (char *)G_calloc(nnodes + 3, sizeof(char));
+     if (!queue || !visited) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return -1;
+     }
+@@ -306,6 +306,6 @@
+     }
+     dglNode_T_Release(&nt);
+     if (dglFlatten(out) < 0)
+-      G_fatal_error(_("GngFlatten error"));
++      G_fatal_error("%s", _("GngFlatten error"));
+     return edge_cnt;
+ }
+--- grass-6.4.3/lib/vector/neta/bridge.c.orig  2013-03-23 10:52:05.000000000 +0100
++++ grass-6.4.3/lib/vector/neta/bridge.c       2014-06-08 08:30:29.389722738 +0200
+@@ -56,7 +56,7 @@
+     stack = (dglInt32_t **) G_calloc(nnodes + 1, sizeof(dglInt32_t *));
+     current_edge = (dglInt32_t **) G_calloc(nnodes + 1, sizeof(dglInt32_t *));
+     if (!tin || !min_tin || !parent || !stack || !current) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return -1;
+     }
+--- grass-6.4.3/lib/vector/neta/spanningtree.c.orig    2011-04-16 11:52:08.000000000 +0200
++++ grass-6.4.3/lib/vector/neta/spanningtree.c 2014-06-08 10:08:46.199599831 +0200
+@@ -96,12 +96,12 @@
+     nedges = dglGet_EdgeCount(graph);
+     perm = (edge_cost_pair *) G_calloc(nedges, sizeof(edge_cost_pair));
+     if (!perm || !uf_initialize(&uf, nnodes + 1)) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return -1;
+     }
+     /*for some obscure reasons, dglGetEdge always returns NULL. Therefore this complicated enumeration of the edges... */
+     index = 0;
+-    G_message(_("Computing minimum spanning tree..."));
++    G_message("%s", _("Computing minimum spanning tree..."));
+     G_percent_reset();
+     for (i = 1; i <= nnodes; i++) {
+       G_percent(i, nnodes + nedges, 1);
+--- grass-6.4.3/lib/vector/neta/path.c.orig    2011-04-16 11:52:08.000000000 +0200
++++ grass-6.4.3/lib/vector/neta/path.c 2014-06-08 11:46:44.989477298 +0200
+@@ -131,7 +131,7 @@
+     queue = (dglInt32_t *) G_calloc(nnodes + 1, sizeof(dglInt32_t));
+     vis = (char *)G_calloc(nnodes + 1, sizeof(char));
+     if (!prev || !queue || !vis) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return -1;
+     }
+     Vect_reset_list(list);
+--- grass-6.4.3/lib/vector/neta/articulation_point.c.orig      2013-03-23 10:52:05.000000000 +0100
++++ grass-6.4.3/lib/vector/neta/articulation_point.c   2014-06-08 12:37:28.682747190 +0200
+@@ -57,7 +57,7 @@
+     current_edge = (dglInt32_t **) G_calloc(nnodes + 1, sizeof(dglInt32_t *));
+     mark = (int *)G_calloc(nnodes + 1, sizeof(int));
+     if (!tin || !min_tin || !parent || !stack || !current || !mark) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return -1;
+     }
+--- grass-6.4.3/lib/vector/neta/utils.c.orig   2011-04-16 11:52:08.000000000 +0200
++++ grass-6.4.3/lib/vector/neta/utils.c        2014-06-08 15:06:40.995893931 +0200
+@@ -218,11 +218,11 @@
+       if (layer < 1)
+           G_fatal_error(_("'%s' must be > 0 for '%s'"), "layer", "where");
+       if (cat)
+-          G_warning(_("'where' and 'cats' parameters were supplied, cat will be ignored"));
++          G_warning("%s", _("'where' and 'cats' parameters were supplied, cat will be ignored"));
+       *varray = Vect_new_varray(Vect_get_num_lines(In));
+       if (Vect_set_varray_from_db
+           (In, layer, where, mask_type, 1, *varray) == -1) {
+-          G_warning(_("Unable to load data from database"));
++          G_warning("%s", _("Unable to load data from database"));
+           return 0;
+       }
+       return 1;
+@@ -233,7 +233,7 @@
+       *varray = Vect_new_varray(Vect_get_num_lines(In));
+       if (Vect_set_varray_from_cat_string
+           (In, layer, cat, mask_type, 1, *varray) == -1) {
+-          G_warning(_("Problem loading category values"));
++          G_warning("%s", _("Problem loading category values"));
+           return 0;
+       }
+       return 1;
+--- grass-6.4.3/lib/vector/neta/components.c.orig      2011-04-16 11:52:08.000000000 +0200
++++ grass-6.4.3/lib/vector/neta/components.c   2014-06-08 16:09:43.325815094 +0200
+@@ -43,7 +43,7 @@
+     stack = (dglInt32_t *) G_calloc(nnodes + 1, sizeof(dglInt32_t));
+     visited = (int *)G_calloc(nnodes + 1, sizeof(int));
+     if (!stack || !visited) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return -1;
+     }
+@@ -110,7 +110,7 @@
+     visited = (int *)G_calloc(nnodes + 1, sizeof(int));
+     processed = (int *)G_calloc(nnodes + 1, sizeof(int));
+     if (!stack || !visited || !order || !processed) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return -1;
+     }
+--- grass-6.4.3/lib/sites/sites.c.orig 2014-05-18 20:58:37.036604857 +0200
++++ grass-6.4.3/lib/sites/sites.c      2014-05-18 20:58:40.643271502 +0200
+@@ -133,7 +133,7 @@
+     G_debug(4, "cattype = %d", s->cattype);
+     if (s->cattype == FCELL_TYPE || s->cattype == DCELL_TYPE)
+-      G_fatal_error(_("Category must be integer"));
++      G_fatal_error("%s", _("Category must be integer"));
+     if (s->cattype == CELL_TYPE)
+       Vect_cat_set(Cats, 1, s->ccat);
+@@ -207,9 +207,9 @@
+               if ((head->time =
+                    (struct TimeStamp *)G_malloc(sizeof(struct TimeStamp)))
+                   == NULL)
+-                  G_fatal_error(_("Memory error in writing timestamp"));
++                  G_fatal_error("%s", _("Memory error in writing timestamp"));
+               else if (G_scan_timestamp(head->time, head->stime) < 0) {
+-                  G_warning(_("Illegal TimeStamp string"));
++                  G_warning("%s", _("Illegal TimeStamp string"));
+                   return -1;  /* added to prevent crash 5/2000 MN */
+               }
+           }
+@@ -238,9 +238,9 @@
+     if (head->stime && strlen(head->stime) > 0) {
+       if ((head->time =
+            (struct TimeStamp *)G_malloc(sizeof(struct TimeStamp))) == NULL)
+-          G_fatal_error(_("Memory error in allocating timestamp"));
++          G_fatal_error("%s", _("Memory error in allocating timestamp"));
+       if (G_scan_timestamp(head->time, head->stime) < 0) {
+-          G_warning(datetime_error_msg());
++          G_warning("%s", datetime_error_msg());
+           head->time = NULL;
+           head->stime = NULL;
+@@ -345,7 +345,7 @@
+     dbValue *value;
+     G_message(
+-      _("Dev note: Adapted sites library used for vector points. "
++      "%s", _("Dev note: Adapted sites library used for vector points. "
+         "(module should be updated to GRASS 6 vector library)"));
+     Map = (struct Map_info *)G_malloc(sizeof(struct Map_info));
+@@ -394,7 +394,7 @@
+     adbl = astr = 0;
+     while (1) {
+       if (db_fetch(&cursor, DB_NEXT, &more) != DB_OK)
+-          G_fatal_error(_("Cannot fetch row"));
++          G_fatal_error("%s", _("Cannot fetch row"));
+       if (!more)
+           break;
+@@ -475,7 +475,7 @@
+     struct Map_info *Map;
+     G_message(
+-      _("Dev note: Adapted sites library used for vector points. "
++      "%s", _("Dev note: Adapted sites library used for vector points. "
+         "(module should be updated to GRASS 6 vector library)"));
+     G_warning("Site/vector attributes ignored.");
+@@ -576,7 +576,7 @@
+     Site *s;
+     if (n_dim < 2 || n_s_att < 0 || n_d_att < 0)
+-      G_fatal_error(_("G_oldsite_new_struct: invalid # dims or fields"));
++      G_fatal_error("%s", _("G_oldsite_new_struct: invalid # dims or fields"));
+     if ((s = (Site *) G_malloc(sizeof(Site))) == NULL)
+       return (Site *) NULL;
+@@ -1254,7 +1254,7 @@
+     db_append_string(&stmt, fi->table);
+     if (db_open_select_cursor(driver, &stmt, &cursor, DB_SEQUENTIAL) != DB_OK)
+-      G_fatal_error(_("Cannot select attributes"));
++      G_fatal_error("%s", _("Cannot select attributes"));
+     nrows = db_get_num_rows(&cursor);
+     G_debug(1, "%d rows selected from vector attribute table", nrows);
+--- grass-6.4.3/lib/rst/interp_float/segmen2d.c.orig   2010-09-25 11:52:07.000000000 +0200
++++ grass-6.4.3/lib/rst/interp_float/segmen2d.c        2014-05-18 21:06:33.116594990 +0200
+@@ -108,7 +108,7 @@
+       while ((npt < MINPTS) || (npt > params->KMAX2)) {
+           if (i >= 70) {
+-              G_warning(_("Taking too long to find points for interpolation - "
++              G_warning("%s", _("Taking too long to find points for interpolation - "
+                           "please change the region to area where your points are. "
+                           "Continuing calculations..."));
+               break;
+@@ -172,19 +172,19 @@
+           if (!
+               (matrix =
+                G_alloc_matrix(params->KMAX2 + 1, params->KMAX2 + 1))) {
+-              G_warning(_("Out of memory"));
++              G_warning("%s", _("Out of memory"));
+               return -1;
+           }
+       }
+       if (!indx) {
+           if (!(indx = G_alloc_ivector(params->KMAX2 + 1))) {
+-              G_warning(_("Out of memory"));
++              G_warning("%s", _("Out of memory"));
+               return -1;
+           }
+       }
+       if (!b) {
+           if (!(b = G_alloc_vector(params->KMAX2 + 3))) {
+-              G_warning(_("Out of memory"));
++              G_warning("%s", _("Out of memory"));
+               return -1;
+           }
+       }
+@@ -194,7 +194,7 @@
+               (point =
+                (struct triple *)G_malloc(sizeof(struct triple) *
+                                          data->n_points))) {
+-              G_warning(_("Out of memory"));
++              G_warning("%s", _("Out of memory"));
+               return -1;
+           }
+       }
+--- grass-6.4.3/lib/rst/interp_float/point2d.c.orig    2008-11-25 02:31:19.000000000 +0100
++++ grass-6.4.3/lib/rst/interp_float/point2d.c 2014-06-03 21:00:41.291122114 +0200
+@@ -114,7 +114,7 @@
+               sprintf(buf, ", %f", err);
+               db_append_string(&sql2, buf);
+               db_append_string(&sql2, ")");
+-              G_debug(3, db_get_string(&sql2));
++              G_debug(3, "%s", db_get_string(&sql2));
+               if (db_execute_immediate(driver2, &sql2) != DB_OK) {
+                   db_close_database(driver2);
+@@ -171,7 +171,7 @@
+           sprintf(buf, ", %f", skip_err);
+           db_append_string(&sql2, buf);
+           db_append_string(&sql2, ")");
+-          G_debug(3, db_get_string(&sql2));
++          G_debug(3, "%s", db_get_string(&sql2));
+           if (db_execute_immediate(driver2, &sql2) != DB_OK) {
+               db_close_database(driver2);
+--- grass-6.4.3/lib/rst/interp_float/interp2d.c.orig   2010-09-25 11:52:07.000000000 +0200
++++ grass-6.4.3/lib/rst/interp_float/interp2d.c        2014-06-05 21:12:58.724171716 +0200
+@@ -116,13 +116,13 @@
+     if (!w) {
+       if (!(w = (double *)G_malloc(sizeof(double) * (params->KMAX2 + 9)))) {
+-          G_warning(_("Out of memory"));
++          G_warning("%s", _("Out of memory"));
+           return -1;
+       }
+     }
+     if (!w2) {
+       if (!(w2 = (double *)G_malloc(sizeof(double) * (params->KMAX2 + 9)))) {
+-          G_warning(_("Out of memory"));
++          G_warning("%s", _("Out of memory"));
+           return -1;
+       }
+     }
+--- grass-6.4.3/lib/rst/interp_float/vinput2d.c.orig   2010-09-25 11:52:07.000000000 +0200
++++ grass-6.4.3/lib/rst/interp_float/vinput2d.c        2014-06-07 22:17:56.967155442 +0200
+@@ -73,7 +73,7 @@
+       G_fatal_error(_("Vector map <%s> is not 3D"), Vect_get_full_name(Map));
+     if (field > 0 && zcol != NULL) {  /* open db driver */
+-      G_verbose_message(_("Loading data from attribute table ..."));
++      G_verbose_message("%s", _("Loading data from attribute table ..."));
+       Fi = Vect_get_field(Map, field);
+       if (Fi == NULL)
+           G_fatal_error(_("Database connection not defined for layer %d"),
+@@ -118,7 +118,7 @@
+     }
+     /* Lines without nodes */
+-    G_message(_("Reading features from vector map ..."));
++    G_message("%s", _("Reading features from vector map ..."));
+     sm = 0;
+     line = 1;
+     while ((ltype = Vect_read_next_line(Map, Points, Cats)) != -2) {
+@@ -168,7 +168,7 @@
+                                                           &sm);
+                   }
+                   if (sm < 0.0)
+-                      G_fatal_error(_("Negative value of smoothing detected: sm must be >= 0"));
++                      G_fatal_error("%s", _("Negative value of smoothing detected: sm must be >= 0"));
+               }
+               G_debug(5, "  z = %f sm = %f", z, sm);
+           }
+@@ -230,7 +230,7 @@
+     }
+     /* Process all nodes */
+-    G_message(_("Reading nodes from vector map ..."));
++    G_message("%s", _("Reading nodes from vector map ..."));
+     nnodes = Vect_get_num_nodes(Map);
+     for (k1 = 1; k1 <= nnodes; k1++) {
+       G_debug(5, "  node %d", k1);
+@@ -285,7 +285,7 @@
+                                                           &sm);
+                   }
+                   if (sm < 0.0)
+-                      G_fatal_error(_("Negative value of smoothing detected: sm must be >= 0"));
++                      G_fatal_error("%s", _("Negative value of smoothing detected: sm must be >= 0"));
+               }
+               G_debug(5, "  z = %f sm = %f", z, sm);
+           }
+@@ -311,7 +311,7 @@
+       if (!once) {
+           once = 1;
+-          G_warning(_("Strip exists with insufficient data"));
++          G_warning("%s", _("Strip exists with insufficient data"));
+       }
+     }
+@@ -337,7 +337,7 @@
+           params->kmin = npoint;
+       }
+       else {
+-          G_warning(_("Zero points in the given region"));
++          G_warning("%s", _("Zero points in the given region"));
+           return -1;
+       }
+     }
+@@ -388,13 +388,13 @@
+     if (!((c1 >= 0) && (c2 >= 0) && (c3 >= 0) && (c4 >= 0))) {
+       if (!(*OUTRANGE)) {
+-          G_warning(_("Some points outside of region (ignored)"));
++          G_warning("%s", _("Some points outside of region (ignored)"));
+       }
+       (*OUTRANGE)++;
+     }
+     else {
+       if (!(point = quad_point_new(x, y, z, sm))) {
+-          G_warning(_("Unable to allocate memory"));
++          G_warning("%s", _("Unable to allocate memory"));
+           return -1;
+       }
+       a = MT_insert(point, info, info->root, 4);
+--- grass-6.4.3/lib/rst/interp_float/input2d.c.orig    2008-11-25 02:31:19.000000000 +0100
++++ grass-6.4.3/lib/rst/interp_float/input2d.c 2014-06-08 08:30:45.886389060 +0200
+@@ -66,7 +66,7 @@
+                   BM_set(bitmask, j, irev, 1);
+           }
+       }
+-      G_message(_("Bitmap mask created"));
++      G_message("%s", _("Bitmap mask created"));
+     }
+     else
+       bitmask = NULL;
+--- grass-6.4.3/lib/g3d/g3derror.c.orig        2008-11-25 02:31:10.000000000 +0100
++++ grass-6.4.3/lib/g3d/g3derror.c     2014-05-18 21:06:58.066594464 +0200
+@@ -40,7 +40,7 @@
+ void G3d_printError(const char *msg)
+ {
+     fprintf(stderr, "ERROR: ");
+-    fprintf(stderr, msg);
++    fputs(msg, stderr);
+     fprintf(stderr, "\n");
+ }
+--- grass-6.4.3/lib/g3d/g3dparam.c.orig        2008-11-25 02:31:10.000000000 +0100
++++ grass-6.4.3/lib/g3d/g3dparam.c     2014-06-03 21:01:10.674454834 +0200
+@@ -113,7 +113,7 @@
+           *precision = -1;
+       else if ((sscanf(param->precision->answer, "%d", precision) != 1) ||
+                (*precision < 0)) {
+-          G3d_error(_("G3d_getStandard3dParams: precision value invalid"));
++          G3d_error("%s", _("G3d_getStandard3dParams: precision value invalid"));
+           return 0;
+       }
+     }
+@@ -146,7 +146,7 @@
+     if (strcmp(param->dimension->answer, "default") != 0) {
+       if (sscanf(param->dimension->answer, "%dx%dx%d",
+                  tileX, tileY, tileZ) != 3) {
+-          G3d_error(_("G3d_getStandard3dParams: tile dimension value invalid"));
++          G3d_error("%s", _("G3d_getStandard3dParams: tile dimension value invalid"));
+           return 0;
+       }
+     }
+--- grass-6.4.3/lib/g3d/g3dopen.c.orig 2008-11-25 02:31:10.000000000 +0100
++++ grass-6.4.3/lib/g3d/g3dopen.c      2014-06-05 21:19:24.627497006 +0200
+@@ -17,13 +17,13 @@
+     G3d_initDefaults();
+     if (!G3d_maskOpenOld()) {
+-      G3d_error(_("G3d_openCellOldNoHeader: error in G3d_maskOpenOld"));
++      G3d_error("%s", _("G3d_openCellOldNoHeader: error in G3d_maskOpenOld"));
+       return (void *)NULL;
+     }
+     map = G3d_malloc(sizeof(G3D_Map));
+     if (map == NULL) {
+-      G3d_error(_("G3d_openCellOldNoHeader: error in G3d_malloc"));
++      G3d_error("%s", _("G3d_openCellOldNoHeader: error in G3d_malloc"));
+       return (void *)NULL;
+     }
+@@ -42,7 +42,7 @@
+     map->data_fd = G_open_old(buf, buf2, mapset);
+     if (map->data_fd < 0) {
+-      G3d_error(_("G3d_openCellOldNoHeader: error in G_open_old"));
++      G3d_error("%s", _("G3d_openCellOldNoHeader: error in G_open_old"));
+       return (void *)NULL;
+     }
+@@ -96,12 +96,12 @@
+     map = G3d_openCellOldNoHeader(name, mapset);
+     if (map == NULL) {
+-      G3d_error(_("G3d_openCellOld: error in G3d_openCellOldNoHeader"));
++      G3d_error("%s", _("G3d_openCellOld: error in G3d_openCellOldNoHeader"));
+       return (void *)NULL;
+     }
+     if (lseek(map->data_fd, (long)0, SEEK_SET) == -1) {
+-      G3d_error(_("G3d_openCellOld: can't rewind file"));
++      G3d_error("%s", _("G3d_openCellOld: can't rewind file"));
+       return (void *)NULL;
+     }
+@@ -113,7 +113,7 @@
+                       &tileX, &tileY, &tileZ,
+                       &type, &compression, &useRle, &useLzw,
+                       &precision, &dataOffset, &useXdr, &hasIndex, &unit)) {
+-      G3d_error(_("G3d_openCellOld: error in G3d_readHeader"));
++      G3d_error("%s", _("G3d_openCellOld: error in G3d_readHeader"));
+       return 0;
+     }
+@@ -121,11 +121,11 @@
+       window = G3d_windowPtr();
+     if (proj != window->proj) {
+-      G3d_error(_("G3d_openCellOld: projection does not match window projection"));
++      G3d_error("%s", _("G3d_openCellOld: projection does not match window projection"));
+       return (void *)NULL;
+     }
+     if (zone != window->zone) {
+-      G3d_error(_("G3d_openCellOld: zone does not match window zone"));
++      G3d_error("%s", _("G3d_openCellOld: zone does not match window zone"));
+       return (void *)NULL;
+     }
+@@ -137,24 +137,24 @@
+                          &(map->indexLongNbytes), 1)) ||
+           (!G3d_readInts(map->data_fd, map->useXdr,
+                          &(map->indexNbytesUsed), 1))) {
+-          G3d_error(_("G3d_openCellOld: can't read header"));
++          G3d_error("%s", _("G3d_openCellOld: can't read header"));
+           return (void *)NULL;
+       }
+       /* if our long is to short to store offsets we can't read the file */
+       if (map->indexNbytesUsed > sizeof(long))
+-          G3d_fatalError(_("G3d_openCellOld: index does not fit into long"));
++          G3d_fatalError("%s", _("G3d_openCellOld: index does not fit into long"));
+       ltmp = G3d_malloc(map->indexLongNbytes);
+       if (ltmp == NULL) {
+-          G3d_error(_("G3d_openCellOld: error in G3d_malloc"));
++          G3d_error("%s", _("G3d_openCellOld: error in G3d_malloc"));
+           return (void *)NULL;
+       }
+       /* convert file long to long */
+       if (read(map->data_fd, ltmp, map->indexLongNbytes) !=
+           map->indexLongNbytes) {
+-          G3d_error(_("G3d_openCellOld: can't read header"));
++          G3d_error("%s", _("G3d_openCellOld: can't read header"));
+           return (void *)NULL;
+       }
+       G3d_longDecode(ltmp, &(map->indexOffset), 1, map->indexLongNbytes);
+@@ -173,7 +173,7 @@
+                       proj, zone,
+                       north, south, east, west, top, bottom,
+                       rows, cols, depths, ew_res, ns_res, tb_res, unit)) {
+-      G3d_error(_("G3d_openCellOld: error in G3d_fillHeader"));
++      G3d_error("%s", _("G3d_openCellOld: error in G3d_fillHeader"));
+       return (void *)NULL;
+     }
+@@ -220,7 +220,7 @@
+     G3d_initDefaults();
+     if (!G3d_maskOpenOld()) {
+-      G3d_error(_("G3d_openCellNew: error in G3d_maskOpenOld"));
++      G3d_error("%s", _("G3d_openCellNew: error in G3d_maskOpenOld"));
+       return (void *)NULL;
+     }
+@@ -229,7 +229,7 @@
+     map = G3d_malloc(sizeof(G3D_Map));
+     if (map == NULL) {
+-      G3d_error(_("G3d_openCellNew: error in G3d_malloc"));
++      G3d_error("%s", _("G3d_openCellNew: error in G3d_malloc"));
+       return (void *)NULL;
+     }
+@@ -242,7 +242,7 @@
+     map->tempName = G_tempfile();
+     map->data_fd = open(map->tempName, O_RDWR | O_CREAT | O_TRUNC, 0666);
+     if (map->data_fd < 0) {
+-      G3d_error(_("G3d_openCellNew: could not open file"));
++      G3d_error("%s", _("G3d_openCellNew: could not open file"));
+       return (void *)NULL;
+     }
+@@ -287,12 +287,12 @@
+       if ((!G3d_writeInts(map->data_fd, map->useXdr,
+                           &(map->indexLongNbytes), 1)) ||
+           (!G3d_writeInts(map->data_fd, map->useXdr, &dummy, 1))) {
+-          G3d_error(_("G3d_openCellNew: can't write header"));
++          G3d_error("%s", _("G3d_openCellNew: can't write header"));
+           return (void *)NULL;
+       }
+       if (write(map->data_fd, &ldummy, map->indexLongNbytes) !=
+           map->indexLongNbytes) {
+-          G3d_error(_("G3d_openCellNew: can't write header"));
++          G3d_error("%s", _("G3d_openCellNew: can't write header"));
+           return (void *)NULL;
+       }
+     }
+@@ -315,7 +315,7 @@
+                       region->rows, region->cols, region->depths,
+                       region->ew_res, region->ns_res, region->tb_res,
+                       g3d_unit_default)) {
+-      G3d_error(_("G3d_openCellNew: error in G3d_fillHeader"));
++      G3d_error("%s", _("G3d_openCellNew: error in G3d_fillHeader"));
+       return (void *)NULL;
+     }
+--- grass-6.4.3/lib/g3d/g3dwindowio.c.orig     2013-02-23 11:52:07.000000000 +0100
++++ grass-6.4.3/lib/g3d/g3dwindowio.c  2014-06-07 22:18:19.253821644 +0200
+@@ -71,7 +71,7 @@
+       windowName++;
+     if (strchr(windowName, GRASS_DIRSEP) || strchr(windowName, HOST_DIRSEP)) {
+-      sprintf(path, windowName);
++      strcpy(path, windowName);
+       return;
+     }
+--- grass-6.4.3/lib/g3d/g3drange.c.orig        2008-11-25 02:31:10.000000000 +0100
++++ grass-6.4.3/lib/g3d/g3drange.c     2014-06-08 08:31:13.596388483 +0200
+@@ -196,8 +196,7 @@
+   error:
+     G_remove(buf, buf2);      /* remove the old file with this name */
+-    sprintf(buf, "can't write range file for [%s in %s]", name, G_mapset());
+-    G_warning(buf);
++    G_warning(buf, "can't write range file for [%s in %s]", name, G_mapset());
+     return -1;
+ }
+--- grass-6.4.3/lib/gpde/N_solvers.c.orig      2008-11-25 02:31:01.000000000 +0100
++++ grass-6.4.3/lib/gpde/N_solvers.c   2014-05-18 21:09:18.566591526 +0200
+@@ -47,17 +47,17 @@
+ {
+     if (les->type != N_NORMAL_LES) {
+-      G_warning(_("The gauss elimination solver does not work with sparse matrices"));
++      G_warning("%s", _("The gauss elimination solver does not work with sparse matrices"));
+       return 0;
+     }
+     if (les->quad != 1) {
+-      G_fatal_error(_("The linear equation system is not quadratic"));
++      G_fatal_error("%s", _("The linear equation system is not quadratic"));
+       return 0;
+     }
+-    G_message(_("Starting direct gauss elimination solver"));
++    G_message("%s", _("Starting direct gauss elimination solver"));
+     N_les_pivot_create(les);
+     gauss_elimination(les->A, les->b, les->rows);
+@@ -85,17 +85,17 @@
+     double *c, *tmpv;
+     if (les->type != N_NORMAL_LES) {
+-      G_warning(_("The lu solver does not work with sparse matrices"));
++      G_warning("%s", _("The lu solver does not work with sparse matrices"));
+       return 0;
+     }
+     if (les->quad != 1) {
+-      G_warning(_("The linear equation system is not quadratic"));
++      G_warning("%s", _("The linear equation system is not quadratic"));
+       return -1;
+     }
+-    G_message(_("Starting direct lu decomposition solver"));
++    G_message("%s", _("Starting direct lu decomposition solver"));
+     tmpv = vectmem(les->rows);
+     c = vectmem(les->rows);
+@@ -152,25 +152,25 @@
+ int N_solver_cholesky(N_les * les)
+ {
+     if (les->type != N_NORMAL_LES) {
+-      G_warning(_("The cholesky solver does not work with sparse matrices"));
++      G_warning("%s", _("The cholesky solver does not work with sparse matrices"));
+       return 0;
+     }
+     if (les->quad != 1) {
+-      G_warning(_("The linear equation system is not quadratic"));
++      G_warning("%s", _("The linear equation system is not quadratic"));
+       return -1;
+     }
+     /* check for symmetry */
+     if (check_symmetry(les) != 1) {
+-      G_warning(_("Matrix is not symmetric!"));
++      G_warning("%s", _("Matrix is not symmetric!"));
+       return -3;
+     }
+-    G_message(_("Starting cholesky decomposition solver"));
++    G_message("%s", _("Starting cholesky decomposition solver"));
+     if (cholesky_decomposition(les->A, les->rows) != 1) {
+-      G_warning(_("Unable to solve the linear equation system"));
++      G_warning("%s", _("Unable to solve the linear equation system"));
+       return -2;
+     }
+--- grass-6.4.3/lib/gpde/N_solvers_krylov.c.orig       2012-03-03 11:52:06.000000000 +0100
++++ grass-6.4.3/lib/gpde/N_solvers_krylov.c    2014-06-03 21:02:49.687786102 +0200
+@@ -75,13 +75,13 @@
+     N_les *M;
+     if (L->quad != 1) {
+-      G_warning(_("The linear equation system is not quadratic"));
++      G_warning("%s", _("The linear equation system is not quadratic"));
+       return -1;
+     }
+     /* check for symmetry */
+     if (check_symmetry(L) != 1) {
+-      G_warning(_("Matrix is not symmetric!"));
++      G_warning("%s", _("Matrix is not symmetric!"));
+     }
+     x = L->x;
+@@ -187,7 +187,7 @@
+                   ;
+               }
+               else {
+-                  G_warning(_("Unable to solve the linear equation system"));
++                  G_warning("%s", _("Unable to solve the linear equation system"));
+                   error_break = 1;
+               }
+           }
+@@ -252,13 +252,13 @@
+     int error_break;
+     if (L->quad != 1) {
+-      G_warning(_("The linear equation system is not quadratic"));
++      G_warning("%s", _("The linear equation system is not quadratic"));
+       return -1;
+     }
+     /* check for symmetry */
+     if (check_symmetry(L) != 1) {
+-      G_warning(_("Matrix is not symmetric!"));
++      G_warning("%s", _("Matrix is not symmetric!"));
+     }
+     x = L->x;
+@@ -354,7 +354,7 @@
+                   ;
+               }
+               else {
+-                  G_warning(_("Unable to solve the linear equation system"));
++                  G_warning("%s", _("Unable to solve the linear equation system"));
+                   error_break = 1;
+               }
+           }
+@@ -420,7 +420,7 @@
+     int error_break;
+     if (L->quad != 1) {
+-      G_warning(_("The linear equation system is not quadratic"));
++      G_warning("%s", _("The linear equation system is not quadratic"));
+       return -1;
+     }
+@@ -478,7 +478,7 @@
+                   ;
+               }
+               else {
+-                  G_warning(_("Unable to solve the linear equation system"));
++                  G_warning("%s", _("Unable to solve the linear equation system"));
+                   error_break = 1;
+               }
+@@ -829,7 +829,7 @@
+     int symm = 0;
+     if (L->quad != 1) {
+-      G_warning(_("The linear equation system is not quadratic"));
++      G_warning("%s", _("The linear equation system is not quadratic"));
+       return 0;
+     }
+--- grass-6.4.3/lib/gpde/N_solvers_classic_iter.c.orig 2008-11-25 02:31:01.000000000 +0100
++++ grass-6.4.3/lib/gpde/N_solvers_classic_iter.c      2014-06-05 21:21:22.934161207 +0200
+@@ -54,7 +54,7 @@
+ {
+     if (L->quad != 1) {
+-      G_warning(_("The linear equation system is not quadratic"));
++      G_warning("%s", _("The linear equation system is not quadratic"));
+       return -1;
+     }
+@@ -91,7 +91,7 @@
+ {
+     if (L->quad != 1) {
+-      G_warning(_("The linear equation system is not quadratic"));
++      G_warning("%s", _("The linear equation system is not quadratic"));
+       return -1;
+     }
+--- grass-6.4.3/lib/gpde/N_arrays_io.c.orig    2011-08-20 11:52:10.000000000 +0200
++++ grass-6.4.3/lib/gpde/N_arrays_io.c 2014-06-07 22:18:49.037154353 +0200
+@@ -101,7 +101,7 @@
+       if (!G_get_raster_row(map, rast, y, type)) {
+           G_close_cell(map);
+-          G_fatal_error(_("Could not get raster row"));
++          G_fatal_error("%s", _("Could not get raster row"));
+       }
+       for (x = 0, ptr = rast; x < cols;
+@@ -159,7 +159,7 @@
+     /* Close file */
+     if (G_close_cell(map) < 0)
+-      G_fatal_error(_("Unable to close input map"));
++      G_fatal_error("%s", _("Unable to close input map"));
+     return data;
+ }
+@@ -188,7 +188,7 @@
+     struct Cell_head region;
+     if (!array)
+-      G_fatal_error(_("N_array_2d * array is empty"));
++      G_fatal_error("%s", _("N_array_2d * array is empty"));
+     /* Get the current region */
+     G_get_set_window(&region);
+@@ -241,7 +241,7 @@
+     /* Close file */
+     if (G_close_cell(map) < 0)
+-      G_fatal_error(_("Unable to close input map"));
++      G_fatal_error("%s", _("Unable to close input map"));
+     return;
+--- grass-6.4.3/lib/symbol/read.c.orig 2011-06-11 11:52:07.000000000 +0200
++++ grass-6.4.3/lib/symbol/read.c      2014-05-18 21:11:01.443256055 +0200
+@@ -221,7 +221,7 @@
+ {
+     fclose(fp);
+     G_free(s);                        /* TODO: free all */
+-    G_warning(msg);
++    G_warning("%s", msg);
+     return NULL;
+ }
+--- grass-6.4.3/lib/arraystats/class.c.orig    2013-03-23 10:52:05.000000000 +0100
++++ grass-6.4.3/lib/arraystats/class.c 2014-05-18 21:11:42.799921860 +0200
+@@ -18,7 +18,7 @@
+       finfo = class_equiprob(data, nrec, nbreaks, classbreaks);
+     else if (G_strcasecmp(algo, "dis") == 0)
+           /*  finfo = class_discont(data, nrec, *nbreaks, classbreaks); disabled because of bugs */
+-        G_fatal_error(_("Discont algorithm currently not available because of bugs"));
++        G_fatal_error("%s", _("Discont algorithm currently not available because of bugs"));
+     else
+       G_fatal_error(_("%s: Unknown algorithm"), algo);
+--- grass-6.4.3/lib/ogsf/GK2.c.orig    2008-11-25 02:31:16.000000000 +0100
++++ grass-6.4.3/lib/ogsf/GK2.c 2014-05-18 21:13:51.269919182 +0200
+@@ -272,7 +272,7 @@
+       Views = gk_make_linear_framesfromkeys(Keys, Numkeys, Viewsteps, loop);
+       if (!Views) {
+-          G_warning(_("Check no. of frames requested and keyframes marked"));
++          G_warning("%s", _("Check no. of frames requested and keyframes marked"));
+       }
+     }
+     else if (Numkeys > 2) {
+@@ -285,7 +285,7 @@
+           (Keys, Numkeys, Viewsteps, loop, 1.0 - Tension);
+       if (!Views) {
+-          G_warning(_("Check no. of frames requested and keyframes marked"));
++          G_warning("%s", _("Check no. of frames requested and keyframes marked"));
+       }
+     }
+--- grass-6.4.3/lib/ogsf/gsd_surf.c.orig       2008-11-25 02:31:16.000000000 +0100
++++ grass-6.4.3/lib/ogsf/gsd_surf.c    2014-06-03 21:03:43.157784989 +0200
+@@ -1739,7 +1739,7 @@
+       if (n) {
+           if (npts != npts1) {
+-              G_warning(_("Cut-plane points mis-match between surfaces. "
++              G_warning("%s", _("Cut-plane points mis-match between surfaces. "
+                           "Check resolution(s)."));
+               err = 1;
+               nsurfs = n;
+--- grass-6.4.3/lib/ogsf/gsds.c.orig   2008-11-25 02:31:16.000000000 +0100
++++ grass-6.4.3/lib/ogsf/gsds.c        2014-06-05 21:21:43.807494105 +0200
+@@ -106,7 +106,7 @@
+       return (0);
+     }
+-    G_fatal_error(_("Maximum number of datasets exceeded"));
++    G_fatal_error("%s", _("Maximum number of datasets exceeded"));
+     /* This return statement keeps compilers happy, it is never executed */
+     return (0);
+--- grass-6.4.3/lib/ogsf/gsd_label.c.orig      2008-11-25 02:31:16.000000000 +0100
++++ grass-6.4.3/lib/ogsf/gsd_label.c   2014-06-07 22:19:10.573820577 +0200
+@@ -55,7 +55,7 @@
+     }
+     if (label_id > (label_base + MAX_LIST)) {
+-      G_warning(_("Max. number of labels reached!"));
++      G_warning("%s", _("Max. number of labels reached!"));
+       return;
+     }
+--- grass-6.4.3/lib/ogsf/gk.c.orig     2008-11-25 02:31:16.000000000 +0100
++++ grass-6.4.3/lib/ogsf/gk.c  2014-06-08 08:31:38.589721295 +0200
+@@ -319,7 +319,7 @@
+     if (keys && keysteps) {
+       if (keysteps < 3) {
+-          G_warning(_("Need at least 3 keyframes for spline"));
++          G_warning("%s", _("Need at least 3 keyframes for spline"));
+           G_free(tkeys);
+           return (NULL);
+       }
+@@ -621,7 +621,7 @@
+     if (keys && keysteps) {
+       if (keysteps < 2) {
+-          G_warning(_("Need at least 2 keyframes for interpolation"));
++          G_warning("%s", _("Need at least 2 keyframes for interpolation"));
+           G_free(tkeys);
+           return (NULL);
+       }
+--- grass-6.4.3/lib/ogsf/gsd_img_mpeg.c.orig   2014-06-11 16:44:34.053702315 +0200
++++ grass-6.4.3/lib/ogsf/gsd_img_mpeg.c        2014-06-11 17:08:13.550339392 +0200
+@@ -70,7 +70,7 @@
+     st = avformat_new_stream(oc, NULL);
+ #endif
+     if (!st) {
+-      G_warning(_("Unable to allocate stream"));
++      G_warning("%s", _("Unable to allocate stream"));
+       return NULL;
+     }
+@@ -173,7 +173,7 @@
+     /* find the video encoder */
+     codec = avcodec_find_encoder(c->codec_id);
+     if (!codec) {
+-      G_warning(_("Video codec not found"));
++      G_warning("%s", _("Video codec not found"));
+       return;
+     }
+@@ -183,7 +183,7 @@
+ #else
+     if (avcodec_open2(c, codec, NULL) < 0) {
+ #endif
+-      G_warning(_("Unable to open codec"));
++      G_warning("%s", _("Unable to open codec"));
+       return;
+     }
+@@ -202,7 +202,7 @@
+     /* allocate the encoded raw picture */
+     picture = alloc_picture(c->pix_fmt, c->width, c->height);
+     if (!picture) {
+-      G_warning(_("Unable to allocate picture"));
++      G_warning("%s", _("Unable to allocate picture"));
+       return;
+     }
+@@ -213,7 +213,7 @@
+     if (c->pix_fmt != PIX_FMT_YUV420P) {
+       tmp_picture = alloc_picture(PIX_FMT_YUV420P, c->width, c->height);
+       if (!tmp_picture) {
+-          G_warning(_("Unable to allocate temporary picture"));
++          G_warning("%s", _("Unable to allocate temporary picture"));
+           return;
+       }
+     }
+@@ -280,7 +280,7 @@
+       }
+     }
+     if (ret != 0) {
+-      G_warning(_("Error while writing video frame"));
++      G_warning("%s", _("Error while writing video frame"));
+       return;
+     }
+     frame_count++;
+@@ -338,7 +338,7 @@
+     fmt = av_guess_format(NULL, filename, NULL);
+ #endif
+     if (!fmt) {
+-      G_warning(_("Unable to deduce output format from file extension: using MPEG"));
++      G_warning("%s", _("Unable to deduce output format from file extension: using MPEG"));
+ #if LIBAVFORMAT_VERSION_INT < AV_VERSION_INT(52, 32, 0)
+       fmt = guess_format("mpeg", NULL, NULL);
+ #else
+@@ -346,14 +346,14 @@
+ #endif
+     }
+     if (!fmt) {
+-      G_warning(_("Unable to find suitable output format"));
++      G_warning("%s", _("Unable to find suitable output format"));
+       return (-1);
+     }
+     /* allocate the output media context */
+     oc = avformat_alloc_context();
+     if (!oc) {
+-      G_warning(_("Out of memory"));
++      G_warning("%s", _("Out of memory"));
+       return (-1);
+     }
+     oc->oformat = fmt;
+@@ -377,7 +377,7 @@
+ #else
+     if (avformat_write_header(oc, NULL) < 0) {
+ #endif
+-      G_warning(_("Invalid output format parameters"));
++      G_warning("%s", _("Invalid output format parameters"));
+       return -1;
+     }
+--- grass-6.4.3/lib/ogsf/gsd_legend.c.orig     2008-11-25 02:31:16.000000000 +0100
++++ grass-6.4.3/lib/ogsf/gsd_legend.c  2014-06-11 17:08:51.493671934 +0200
+@@ -291,7 +291,7 @@
+     }
+     if (fmin == fmax)
+-      G_warning(_("Range request error for legend"));
++      G_warning("%s", _("Range request error for legend"));
+     /* set a reasonable precision */
+     if (is_fp) {
+@@ -381,7 +381,7 @@
+           /* watch out for trying to display mega cats */
+           if (is_fp && !Listnum) {
+               discrete = 0;   /* maybe later do stats & allow if few #s */
+-              G_warning(_("Unable to show discrete FP range (use list"));
++              G_warning("%s", _("Unable to show discrete FP range (use list"));
+               return (-1);
+           }
+           if (numlabs < MAX_LEGEND)
+@@ -497,9 +497,9 @@
+       if (discrete) {
+           if (numlabs > lleg / 5)
+-              G_warning(_("Too many categories to show as discrete!"));
++              G_warning("%s", _("Too many categories to show as discrete!"));
+           else if (numlabs > 1.2 * lleg / gsd_get_txtheight(size))
+-              G_warning(_("Try using smaller font!"));
++              G_warning("%s", _("Try using smaller font!"));
+       }
+       incr = do_invert ? -1 : 1;
+--- grass-6.4.3/lib/ogsf/Gs3.c.orig    2013-06-08 11:52:06.000000000 +0200
++++ grass-6.4.3/lib/ogsf/Gs3.c 2014-06-11 17:09:36.580337659 +0200
+@@ -130,7 +130,7 @@
+     nullflags = G_allocate_null_buf();        /* G_fatal_error */
+     if (!nullflags) {
+-      G_fatal_error(_("Unable to allocate memory for a null buffer"));
++      G_fatal_error("%s", _("Unable to allocate memory for a null buffer"));
+     }
+     if ((cellfile = G_open_cell_old(map_name, map_set)) == -1) {
+@@ -205,7 +205,7 @@
+     nullflags = G_allocate_null_buf();        /* G_fatal_error */
+     if (!nullflags) {
+-      G_fatal_error(_("Unable to allocate memory for a null buffer"));
++      G_fatal_error("%s", _("Unable to allocate memory for a null buffer"));
+     }
+     if ((cellfile = G_open_cell_old(map_name, map_set)) == -1) {
+@@ -363,7 +363,7 @@
+     nullflags = G_allocate_null_buf();
+     if (!nullflags) {
+-      G_fatal_error(_("Unable to allocate memory for a null buffer"));
++      G_fatal_error("%s", _("Unable to allocate memory for a null buffer"));
+     }
+     if ((cellfile = G_open_cell_old(map_name, map_set)) == -1) {
+@@ -479,7 +479,7 @@
+     nullflags = G_allocate_null_buf();        /* G_fatal_error */
+     if (!nullflags) {
+-      G_fatal_error(_("Unable to allocate memory for a null buffer"));
++      G_fatal_error("%s", _("Unable to allocate memory for a null buffer"));
+     }
+     if ((cellfile = G_open_cell_old(map_name, map_set)) == -1) {
+@@ -584,7 +584,7 @@
+     nullflags = G_allocate_null_buf();
+     if (!nullflags) {
+-      G_fatal_error(_("Unable to allocate memory for a null buffer"));
++      G_fatal_error("%s", _("Unable to allocate memory for a null buffer"));
+     }
+     G_message(_("Loading raster map <%s>..."),
+@@ -1017,7 +1017,7 @@
+     if (ret >= 0) {
+       if (strcmp((v.pgm_id), "Nvision-ALPHA!")) {
+-          G_warning(_("View not saved by this program,"
++          G_warning("%s", _("View not saved by this program,"
+                       "there may be some inconsistancies"));
+       }
+--- grass-6.4.3/lib/ogsf/gvl_file.c.orig       2008-11-25 02:31:16.000000000 +0100
++++ grass-6.4.3/lib/ogsf/gvl_file.c    2014-06-11 17:09:53.957003966 +0200
+@@ -101,7 +101,7 @@
+       return (0);
+     }
+-    G_fatal_error(_("Maximum number of datafiles exceeded"));
++    G_fatal_error("%s", _("Maximum number of datafiles exceeded"));
+     /* This return statement keeps compilers happy, it is never executed */
+     return (0);
+--- grass-6.4.3/lib/ogsf/gsdrape.c.orig        2008-11-25 02:31:16.000000000 +0100
++++ grass-6.4.3/lib/ogsf/gsdrape.c     2014-06-11 17:10:11.873670259 +0200
+@@ -204,7 +204,7 @@
+       first = 0;
+       if (0 > drape_line_init(gs->rows, gs->cols)) {
+-          G_warning(_("Unable to process vector map - out of memory"));
++          G_warning("%s", _("Unable to process vector map - out of memory"));
+           Ebuf = NULL;
+           return (-1);
+--- grass-6.4.3/lib/ogsf/gs_bm.c.orig  2008-11-25 02:31:16.000000000 +0100
++++ grass-6.4.3/lib/ogsf/gs_bm.c       2014-06-11 17:15:12.970330653 +0200
+@@ -121,7 +121,7 @@
+     if (bmcon && bmvar) {
+       if (varsize != consize) {
+-          G_warning(_("Bitmap mismatch"));
++          G_warning("%s", _("Bitmap mismatch"));
+           return (-1);
+       }
+--- grass-6.4.3/lib/ogsf/GS2.c.orig    2013-07-09 21:05:44.000000000 +0200
++++ grass-6.4.3/lib/ogsf/GS2.c 2014-06-11 17:16:43.330328771 +0200
+@@ -1204,7 +1204,7 @@
+     }
+     if (MAP_ATT != gs_get_att_src(gs, att)) {
+-      sprintf(catstr, _("no category info"));
++      strcpy(catstr, _("no category info"));
+       return -1;
+     }
+@@ -1223,7 +1223,7 @@
+                             drow, dcol, catstr));
+     }
+-    sprintf(catstr, _("no data"));
++    strcpy(catstr, _("no data"));
+     return 1;
+ }
+@@ -1726,13 +1726,13 @@
+       }
+       if (0 > gs_malloc_att_buff(gs, att, ATTY_NULL)) {
+-          G_fatal_error(_("GS_load_att_map(): Out of memory. Unable to load map"));
++          G_fatal_error("%s", _("GS_load_att_map(): Out of memory. Unable to load map"));
+       }
+       switch (atty) {
+       case ATTY_MASK:
+           if (0 > gs_malloc_att_buff(gs, att, ATTY_MASK)) {
+-              G_fatal_error(_("GS_load_att_map(): Out of memory. Unable to load map"));
++              G_fatal_error("%s", _("GS_load_att_map(): Out of memory. Unable to load map"));
+           }
+           ret = Gs_loadmap_as_bitmap(&wind, filename, tbuff->bm);
+@@ -1740,7 +1740,7 @@
+           break;
+       case ATTY_CHAR:
+           if (0 > gs_malloc_att_buff(gs, att, ATTY_CHAR)) {
+-              G_fatal_error(_("GS_load_att_map(): Out of memory. Unable to load map"));
++              G_fatal_error("%s", _("GS_load_att_map(): Out of memory. Unable to load map"));
+           }
+           ret = Gs_loadmap_as_char(&wind, filename, tbuff->cb,
+@@ -1749,7 +1749,7 @@
+           break;
+       case ATTY_SHORT:
+           if (0 > gs_malloc_att_buff(gs, att, ATTY_SHORT)) {
+-              G_fatal_error(_("GS_load_att_map(): Out of memory. Unable to load map"));
++              G_fatal_error("%s", _("GS_load_att_map(): Out of memory. Unable to load map"));
+           }
+           ret = Gs_loadmap_as_short(&wind, filename, tbuff->sb,
+@@ -1757,7 +1757,7 @@
+           break;
+       case ATTY_FLOAT:
+           if (0 > gs_malloc_att_buff(gs, att, ATTY_FLOAT)) {
+-              G_fatal_error(_("GS_load_att_map(): Out of memory. Unable to load map"));
++              G_fatal_error("%s", _("GS_load_att_map(): Out of memory. Unable to load map"));
+           }
+           ret = Gs_loadmap_as_float(&wind, filename, tbuff->fb,
+@@ -1767,7 +1767,7 @@
+       case ATTY_INT:
+       default:
+           if (0 > gs_malloc_att_buff(gs, att, ATTY_INT)) {
+-              G_fatal_error(_("GS_load_att_map(): Out of memory. Unable to load map"));
++              G_fatal_error("%s", _("GS_load_att_map(): Out of memory. Unable to load map"));
+           }
+           ret = Gs_loadmap_as_int(&wind, filename, tbuff->ib,
+@@ -1815,7 +1815,7 @@
+       else if (ATTY_FLOAT == atty) {
+           if (!reuse) {
+               if (0 > gs_malloc_att_buff(gs, att, ATTY_INT)) {
+-                  G_fatal_error(_("GS_load_att_map(): Out of memory. Unable to load map"));
++                  G_fatal_error("%s", _("GS_load_att_map(): Out of memory. Unable to load map"));
+               }
+               Gs_pack_colors_float(filename, tbuff->fb, tbuff->ib,
+@@ -1843,11 +1843,11 @@
+     }
+     if (ret < 0) {
+-      G_warning(_("Loading failed"));
++      G_warning("%s", _("Loading failed"));
+     }
+     if (-1 == Gs_update_attrange(gs, att)) {
+-      G_warning(_("Error finding range"));
++      G_warning("%s", _("Error finding range"));
+     }
+     return ret;
+--- grass-6.4.3/lib/nviz/lights.c.orig 2012-02-25 11:52:09.000000000 +0100
++++ grass-6.4.3/lib/nviz/lights.c      2014-05-18 21:14:51.669917923 +0200
+@@ -168,7 +168,7 @@
+     num = GS_new_light();
+     if (num < 1) {
+-      G_warning(_("Unable to define new light"));
++      G_warning("%s", _("Unable to define new light"));
+       return 0;
+     }
+--- grass-6.4.3/lib/nviz/position.c.orig       2013-03-23 10:52:05.000000000 +0100
++++ grass-6.4.3/lib/nviz/position.c    2014-06-03 21:04:07.301117818 +0200
+@@ -53,7 +53,7 @@
+     else if (state_flag == 0)
+       GS_set_nofocus();       /* no center of view -- use viewdir */
+     else {
+-      G_warning(_("Unable to set focus"));
++      G_warning("%s", _("Unable to set focus"));
+       return 0;
+     }
+--- grass-6.4.3/lib/nviz/map_obj.c.orig        2010-11-13 11:52:06.000000000 +0100
++++ grass-6.4.3/lib/nviz/map_obj.c     2014-06-05 21:22:08.337493594 +0200
+@@ -56,7 +56,7 @@
+     /* raster -> surface */
+     if (type == MAP_OBJ_SURF) {
+       if (GS_num_surfs() >= MAX_SURFS) {
+-          G_warning(_("Maximum surfaces loaded!"));
++          G_warning("%s", _("Maximum surfaces loaded!"));
+           return -1;
+       }
+@@ -85,7 +85,7 @@
+     /* vector overlay */
+     else if (type == MAP_OBJ_VECT) {
+       if (GV_num_vects() >= MAX_VECTS) {
+-          G_warning(_("Maximum vector line maps loaded!"));
++          G_warning("%s", _("Maximum vector line maps loaded!"));
+           return -1;
+       }
+@@ -113,7 +113,7 @@
+     /* vector points overlay */
+     else if (type == MAP_OBJ_SITE) {
+       if (GP_num_sites() >= MAX_SITES) {
+-          G_warning(_("Maximum vector point maps loaded!"));
++          G_warning("%s", _("Maximum vector point maps loaded!"));
+           return -1;
+       }
+@@ -140,7 +140,7 @@
+     /* 3d raster map -> volume */
+     else if (type == MAP_OBJ_VOL) {
+       if (GVL_num_vols() >= MAX_VOLS) {
+-          G_warning(_("Maximum volumes loaded!"));
++          G_warning("%s", _("Maximum volumes loaded!"));
+           return -1;
+       }
+       
+@@ -157,7 +157,7 @@
+       Nviz_set_volume_attr_default(new_id);
+     }
+     else {
+-      G_warning(_("Nviz_new_map_obj(): unsupported data type"));
++      G_warning("%s", _("Nviz_new_map_obj(): unsupported data type"));
+       return -1;
+     }
+     
+--- grass-6.4.3/lib/nviz/render.c.orig 2012-07-14 11:52:05.000000000 +0200
++++ grass-6.4.3/lib/nviz/render.c      2014-06-07 22:19:28.293820202 +0200
+@@ -102,7 +102,7 @@
+     rwin->displayId = XOpenDisplay((char *)display);
+     if (!rwin->displayId) {
+-      G_fatal_error(_("Bad server connection"));
++      G_fatal_error("%s", _("Bad server connection"));
+     }
+     v = glXChooseVisual(rwin->displayId,
+@@ -111,7 +111,7 @@
+     rwin->contextId = glXCreateContext(rwin->displayId, v, NULL, GL_FALSE);
+     if (!rwin->contextId) {
+-      G_fatal_error(_("Unable to create rendering context"));
++      G_fatal_error("%s", _("Unable to create rendering context"));
+     }
+     /* create win pixmap to render to (same depth as RootWindow) */
+--- grass-6.4.3/lib/cairodriver/Draw_bitmap.c.orig     2013-05-04 11:52:05.000000000 +0200
++++ grass-6.4.3/lib/cairodriver/Draw_bitmap.c  2014-05-18 21:15:46.773250108 +0200
+@@ -44,7 +44,7 @@
+                                              nrows, stride);
+     if (cairo_surface_status(surf) != CAIRO_STATUS_SUCCESS)
+-      G_fatal_error(_("Cairo_draw_bitmap: Failed to create source"));
++      G_fatal_error("%s", _("Cairo_draw_bitmap: Failed to create source"));
+     for (i = 0; i < nrows; i++)
+       memcpy(&data[i * stride], &buf[i * ncols], ncols);
+--- grass-6.4.3/db/drivers/dbf/column.c.orig   2011-07-09 11:52:05.000000000 +0200
++++ grass-6.4.3/db/drivers/dbf/column.c        2014-05-18 21:16:20.316582742 +0200
+@@ -39,7 +39,7 @@
+       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 */
+--- grass-6.4.3/db/drivers/postgres/parse.c.orig       2008-11-25 02:30:09.000000000 +0100
++++ grass-6.4.3/db/drivers/postgres/parse.c    2014-05-18 21:17:19.606581506 +0200
+@@ -52,11 +52,11 @@
+           else if (strncmp(tokens[i], "dbname", 6) == 0)
+               pgconn->dbname = G_store(tokens[i] + 7);
+           else if (strncmp(tokens[i], "user", 4) == 0)
+-              G_warning(_("'user' in database definition is not supported, use db.login"));
++              G_warning("%s", _("'user' in database definition is not supported, use db.login"));
+           /* pgconn->user = G_store ( tokens[i] + 5 ); */
+           else if (strncmp(tokens[i], "password", 8) == 0)
+               /* pgconn->password = G_store ( tokens[i] + 9 ); */
+-              G_warning(_("'password' in database definition is not supported, use db.login"));
++              G_warning("%s", _("'password' in database definition is not supported, use db.login"));
+           else if (strncmp(tokens[i], "schema", 6) == 0)
+               pgconn->schema = G_store(tokens[i] + 7);
+           else {
+--- grass-6.4.3/db/drivers/postgres/fetch.c.orig       2008-11-25 02:30:09.000000000 +0100
++++ grass-6.4.3/db/drivers/postgres/fetch.c    2014-06-03 21:04:47.084450324 +0200
+@@ -169,7 +169,7 @@
+           else if (strcmp(PQgetvalue(c->res, c->row, col), "f") == 0)
+               db_set_string(&(value->s), "0");
+           else
+-              G_warning(_("Cannot recognize boolean value"));
++              G_warning("%s", _("Cannot recognize boolean value"));
+           break;
+       }
+     }
+--- grass-6.4.3/db/drivers/mysql/parse.c.orig  2008-11-25 02:30:08.000000000 +0100
++++ grass-6.4.3/db/drivers/mysql/parse.c       2014-05-18 21:17:47.439914259 +0200
+@@ -68,11 +68,11 @@
+               conn->dbname = G_store(tokens[i] + 7);
+           }
+           else if (strncmp(tokens[i], "user", 4) == 0) {
+-              G_warning(_("'user' in database definition "
++              G_warning("%s", _("'user' in database definition "
+                           "is not supported, use db.login"));
+           }
+           else if (strncmp(tokens[i], "password", 8) == 0) {
+-              G_warning(_("'password' in database definition "
++              G_warning("%s", _("'password' in database definition "
+                           "is not supported, use db.login"));
+           }
+           else {
+--- grass-6.4.3/db/drivers/sqlite/db.c.orig    2011-09-10 11:52:05.000000000 +0200
++++ grass-6.4.3/db/drivers/sqlite/db.c 2014-05-18 21:18:17.306580304 +0200
+@@ -107,7 +107,7 @@
+     init_error();
+     if (sqlite3_close(sqlite) == SQLITE_BUSY)
+-      G_fatal_error(_("SQLite database connection is still busy"));
++      G_fatal_error("%s", _("SQLite database connection is still busy"));
+     return DB_OK;
+ }
+--- grass-6.4.3/db/drivers/ogr/describe.c.orig 2010-01-16 11:52:39.000000000 +0100
++++ grass-6.4.3/db/drivers/ogr/describe.c      2014-05-18 21:18:47.746579669 +0200
+@@ -162,7 +162,7 @@
+           break;
+       default:
+-          G_warning(_("Unknown type"));
++          G_warning("%s", _("Unknown type"));
+           break;
+       }
+--- grass-6.4.3/db/drivers/ogr/fetch.c.orig    2010-01-16 11:52:39.000000000 +0100
++++ grass-6.4.3/db/drivers/ogr/fetch.c 2014-06-03 21:05:28.574449457 +0200
+@@ -129,7 +129,7 @@
+           break;
+       default:
+-          G_warning(_("Unknown type"));
++          G_warning("%s", _("Unknown type"));
+           break;
+       }
+     }
+--- grass-6.4.3/db/db.login/main.c.orig        2011-04-23 11:52:07.000000000 +0200
++++ grass-6.4.3/db/db.login/main.c     2014-05-18 21:20:17.286577803 +0200
+@@ -82,7 +82,7 @@
+               fprintf(stderr,
+                       _("\nEnter database password for connection\n<%s:%s:user=%s>\n"),
+                       driver->answer, database->answer, user->answer);
+-              fprintf(stderr, _("Hit RETURN to cancel request\n"));
++              fputs(_("Hit RETURN to cancel request\n"), stderr);
+               fprintf(stderr, ">");
+           } while (!G_gets(answer));
+ #ifdef HAVE_TERMIOS_H
+@@ -90,11 +90,11 @@
+ #endif
+           G_strip(answer);
+           if (strlen(answer) == 0) {
+-              G_message(_("Exiting. Not changing current settings"));
++              G_message("%s", _("Exiting. Not changing current settings"));
+               return -1;
+           }
+           else {
+-              G_message(_("New password set"));
++              G_message("%s", _("New password set"));
+               password->answer = G_store(answer);
+               break;
+           }
+@@ -103,11 +103,11 @@
+     if (db_set_login
+       (driver->answer, database->answer, user->answer,
+        password->answer) == DB_FAILED) {
+-      G_fatal_error(_("Unable to set user/password"));
++      G_fatal_error("%s", _("Unable to set user/password"));
+     }
+     if (password->answer)
+-      G_warning(_("The password was stored in file"));
++      G_warning("%s", _("The password was stored in file"));
+     exit(EXIT_SUCCESS);
+ }
+--- grass-6.4.3/db/base/copy.c.orig    2011-08-13 11:52:04.000000000 +0200
++++ grass-6.4.3/db/base/copy.c 2014-06-11 17:57:54.816943920 +0200
+@@ -93,7 +93,7 @@
+     /* Check options and copy tables */
+     if (from_table->answer) {
+       if (select->answer)
+-          G_fatal_error(_("Cannot combine 'from_table' and 'select' options"));
++          G_fatal_error("%s", _("Cannot combine 'from_table' and 'select' options"));
+       if (where->answer) {
+           ret =
+@@ -111,10 +111,10 @@
+     }
+     else {
+       if (!select->answer)
+-          G_fatal_error(_("Either 'from_table' or 'select' option must be given."));
++          G_fatal_error("%s", _("Either 'from_table' or 'select' option must be given."));
+       if (where->answer)
+-          G_fatal_error(_("Cannot combine 'select' and 'where' options"));
++          G_fatal_error("%s", _("Cannot combine 'select' and 'where' options"));
+       ret =
+           db_copy_table_select(from_driver->answer, from_database->answer,
+@@ -124,7 +124,7 @@
+     }
+     if (ret == DB_FAILED) {
+-      G_warning(_("Copy table failed"));
++      G_warning("%s", _("Copy table failed"));
+       exit(EXIT_FAILURE);
+     }
+--- grass-6.4.3/db/base/drivers.c.orig 2012-02-04 11:52:04.000000000 +0100
++++ grass-6.4.3/db/base/drivers.c      2014-06-11 18:00:15.723607651 +0200
+@@ -38,7 +38,7 @@
+     list = db_read_dbmscap();
+     if (list == NULL) {
+-      G_fatal_error(_("Error trying to read dbmscap file"));
++      G_fatal_error("%s", _("Error trying to read dbmscap file"));
+     }
+     for (p = list; p; p = p->next) {
+--- grass-6.4.3/db/base/connect.c.orig 2011-04-23 11:52:07.000000000 +0200
++++ grass-6.4.3/db/base/connect.c      2014-06-11 18:01:09.156939873 +0200
+@@ -118,7 +118,7 @@
+           fprintf(stdout, "group:%s\n", conn.group ? conn.group : "");
+       }
+       else
+-          G_fatal_error(_("Database connection not defined. "
++          G_fatal_error("%s", _("Database connection not defined. "
+                           "Run db.connect."));
+       exit(EXIT_SUCCESS);
+@@ -145,10 +145,10 @@
+       /* they must be a matched pair, so if one is set but not the other
+          then give up and let the user figure it out */
+       else if (!conn.driverName) {
+-          G_fatal_error(_("Default driver is not set"));
++          G_fatal_error("%s", _("Default driver is not set"));
+       }
+       else if (!conn.databaseName) {
+-          G_fatal_error(_("Default database is not set"));
++          G_fatal_error("%s", _("Default database is not set"));
+       }
+       /* connection either already existed or now exists */
+--- grass-6.4.3/display/drivers/XDRIVER/Get_w_box.c.orig       2008-11-25 02:31:49.000000000 +0100
++++ grass-6.4.3/display/drivers/XDRIVER/Get_w_box.c    2014-05-18 21:21:04.253243491 +0200
+@@ -31,7 +31,7 @@
+     int done;
+     if (redraw_pid) {
+-      G_warning(_("Monitor: interactive command in redraw"));
++      G_warning("%s", _("Monitor: interactive command in redraw"));
+       return -1;
+     }
+--- grass-6.4.3/display/drivers/XDRIVER/Get_w_line.c.orig      2008-11-25 02:31:49.000000000 +0100
++++ grass-6.4.3/display/drivers/XDRIVER/Get_w_line.c   2014-06-03 21:06:48.541114459 +0200
+@@ -32,7 +32,7 @@
+     int done;
+     if (redraw_pid) {
+-      G_warning(_("Monitor: interactive command in redraw"));
++      G_warning("%s", _("Monitor: interactive command in redraw"));
+       return -1;
+     }
+--- grass-6.4.3/display/drivers/XDRIVER/Get_w_pointer.c.orig   2008-11-25 02:31:49.000000000 +0100
++++ grass-6.4.3/display/drivers/XDRIVER/Get_w_pointer.c        2014-06-05 21:23:12.274158928 +0200
+@@ -18,7 +18,7 @@
+     XEvent bpevent;
+     if (redraw_pid) {
+-      G_warning(_("Monitor: interactive command in redraw"));
++      G_warning("%s", _("Monitor: interactive command in redraw"));
+       return -1;
+     }
+--- grass-6.4.3/display/drivers/XDRIVER/Graph_set.c.orig       2008-11-25 02:31:49.000000000 +0100
++++ grass-6.4.3/display/drivers/XDRIVER/Graph_set.c    2014-06-07 22:19:54.543819656 +0200
+@@ -109,7 +109,7 @@
+     G_message(_("found %d visuals of type TrueColor"), num_visuals);
+-    G_message(_("searching for highest bit depth"));
++    G_message("%s", _("searching for highest bit depth"));
+     for (vis_num = 0; vis_num < num_visuals; vis_num++) {
+       if (mvisual_info[vis_num].depth <= highest_bit_depth)
+--- grass-6.4.3/display/drivers/XDRIVER/Serve_Xevent.c.orig    2008-11-25 02:31:49.000000000 +0100
++++ grass-6.4.3/display/drivers/XDRIVER/Serve_Xevent.c 2014-06-08 08:32:20.323053759 +0200
+@@ -328,12 +328,12 @@
+       return;
+     if (!XGetWMName(dpy, grwin, &prop)) {
+-      G_warning(_("Monitor: XGetWMName failed"));
++      G_warning("%s", _("Monitor: XGetWMName failed"));
+       return;
+     }
+     if (!prop.value || !prop.nitems || prop.format != 8) {
+-      G_warning(_("Monitor: XGetWMName: bad result"));
++      G_warning("%s", _("Monitor: XGetWMName: bad result"));
+       return;
+     }
+--- grass-6.4.3/display/d.ask/main.c.orig      2011-04-23 11:52:13.000000000 +0200
++++ grass-6.4.3/display/d.ask/main.c   2014-05-18 21:23:50.943240016 +0200
+@@ -58,7 +58,7 @@
+     /* make sure we can do graphics */
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     R_close_driver();
+@@ -83,7 +83,7 @@
+       fd = popen("d.menu tcolor=red > /dev/null", "w");
+       if (fd) {
+           fprintf(fd, _("** no %s files found **\n"), element->answers[1]);
+-          fprintf(fd, _("Click here to CONTINUE\n"));
++          fputs(_("Click here to CONTINUE\n"), fd);
+           pclose(fd);
+       }
+       exit(EXIT_SUCCESS);
+--- grass-6.4.3/display/d.barscale/main.c.orig 2013-07-09 21:05:44.000000000 +0200
++++ grass-6.4.3/display/d.barscale/main.c      2014-05-18 21:24:42.976572265 +0200
+@@ -119,7 +119,7 @@
+     use_feet = feet->answer ? 1 : 0;
+     if (northarrow->answer && scalebar->answer)
+-      G_fatal_error(_("Choose either -n or -s flag"));
++      G_fatal_error("%s", _("Choose either -n or -s flag"));
+     if (northarrow->answer)
+       draw = 1;
+@@ -131,13 +131,13 @@
+     fontsize = atoi(fsize->answer);
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     if (D_get_cur_wind(window_name))
+-      G_fatal_error(_("No current window"));
++      G_fatal_error("%s", _("No current window"));
+     if (D_set_cur_wind(window_name))
+-      G_fatal_error(_("Current window not available"));
++      G_fatal_error("%s", _("Current window not available"));
+     /* Parse and select background color */
+@@ -153,16 +153,16 @@
+     G_get_window(&window);
+     if (D_check_map_window(&window))
+-      G_fatal_error(_("Setting map window"));
++      G_fatal_error("%s", _("Setting map window"));
+     if (G_set_window(&window) == -1)
+-      G_fatal_error(_("Current window not settable"));
++      G_fatal_error("%s", _("Current window not settable"));
+     /* Determine conversion factors */
+     if (D_get_screen_window(&t, &b, &l, &r))
+-      G_fatal_error(_("Getting screen window"));
++      G_fatal_error("%s", _("Getting screen window"));
+     if (D_do_conversions(&window, t, b, l, r))
+-      G_fatal_error(_("Error in calculating conversions"));
++      G_fatal_error("%s", _("Error in calculating conversions"));
+     if (!mouse->answer) {
+       /* Draw the scale */
+--- grass-6.4.3/display/d.colors/main.c.orig   2013-04-20 11:52:17.000000000 +0200
++++ grass-6.4.3/display/d.colors/main.c        2014-05-18 21:25:29.243237967 +0200
+@@ -75,14 +75,14 @@
+       char msg[256];
+       sprintf(msg, "Raster file [%s] not available", map->answer);
+-      G_fatal_error(msg);
++      G_fatal_error("%s", msg);
+     }
+     if (G_raster_map_is_fp(map->answer, mapset)) {
+       sprintf(buff,
+               "Raster file [%s] is floating point! \nd.colors only works with integer maps",
+               map->answer);
+-      G_fatal_error(buff);
++      G_fatal_error("%s", buff);
+     }
+     /* connect to the driver */
+--- grass-6.4.3/display/d.colors/get_info.c.orig       2008-11-25 02:31:45.000000000 +0100
++++ grass-6.4.3/display/d.colors/get_info.c    2014-06-03 21:07:48.187779882 +0200
+@@ -10,7 +10,6 @@
+ {
+     struct Colors colors;
+     struct Categories categories;
+-    char buff[128];
+     if (!name)
+       exit(0);
+@@ -19,14 +18,12 @@
+     /* Reading color lookup table */
+     if (G_read_cats(name, mapset, &categories) == -1) {
+-      sprintf(buff, "category file for [%s] not available", name);
+-      G_fatal_error(buff);
++      G_fatal_error("category file for [%s] not available", name);
+     }
+     /* Reading color lookup table */
+     if (G_read_colors(name, mapset, &colors) == -1) {
+-      sprintf(buff, "color file for [%s] not available", name);
+-      G_fatal_error(buff);
++      G_fatal_error("color file for [%s] not available", name);
+     }
+     interact(&categories, &colors, name, mapset);
+--- grass-6.4.3/display/d.colortable/main.c.orig       2013-04-20 11:52:23.000000000 +0200
++++ grass-6.4.3/display/d.colortable/main.c    2014-05-18 21:25:58.866570683 +0200
+@@ -142,18 +142,18 @@
+     if (G_read_fp_range(map_name, mapset, &fp_range) == -1)
+       G_fatal_error(_("Range file for [%s] not available"), map_name);
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     if (D_get_cur_wind(window_name))
+-      G_fatal_error(_("No current frame"));
++      G_fatal_error("%s", _("No current frame"));
+     if (D_set_cur_wind(window_name))
+-      G_fatal_error(_("Current frame not available"));
++      G_fatal_error("%s", _("Current frame not available"));
+     /* Figure out where to put boxes */
+     D_get_screen_window(&t, &b, &l, &r);
+     G_get_fp_range_min_max(&fp_range, &dmin, &dmax);
+     if (G_is_d_null_value(&dmin) || G_is_d_null_value(&dmax))
+-      G_fatal_error(_("Data range is empty"));
++      G_fatal_error("%s", _("Data range is empty"));
+     cats_num = (int)dmax - (int)dmin + 1;
+--- grass-6.4.3/display/d.erase/main.c.orig    2011-04-23 11:52:12.000000000 +0200
++++ grass-6.4.3/display/d.erase/main.c 2014-05-18 21:26:22.373236860 +0200
+@@ -55,7 +55,7 @@
+       exit(1);
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     err = NULL;
+     if (D_get_cur_wind(name))
+@@ -79,7 +79,7 @@
+     R_close_driver();
+     if (err)
+-      G_fatal_error(err);
++      G_fatal_error("%s", err);
+     exit(0);
+ }
+--- grass-6.4.3/display/d.extend/main.c.orig   2008-11-25 02:31:48.000000000 +0100
++++ grass-6.4.3/display/d.extend/main.c        2014-05-18 21:28:18.436567774 +0200
+@@ -38,7 +38,7 @@
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     if (D_get_cell_list(&rast, &nrasts) < 0)
+       rast = NULL;
+@@ -49,7 +49,7 @@
+     R_close_driver();
+     if (rast == NULL && vect == NULL)
+-      G_fatal_error(_("No raster or vector map displayed"));
++      G_fatal_error("%s", _("No raster or vector map displayed"));
+     G_get_window(&window);
+--- grass-6.4.3/display/d.extract/extract.c.orig       2008-11-25 02:31:46.000000000 +0100
++++ grass-6.4.3/display/d.extract/extract.c    2014-05-18 21:29:15.966566575 +0200
+@@ -41,12 +41,12 @@
+     Vect_get_map_box(In, &box);
+     mode = M_START;
+-    G_message(_("Select vector(s) with mouse"));
+-    G_message(_(" - L: draw box with left mouse button to select"));
+-    G_message(_(" - M: draw box with middle mouse button to remove from display"));
+-    G_message(_(" - R: quit and save selected vectors to new map\n"));
++    G_message("%s", _("Select vector(s) with mouse"));
++    G_message("%s", _(" - L: draw box with left mouse button to select"));
++    G_message("%s", _(" - M: draw box with middle mouse button to remove from display"));
++    G_message("%s", _(" - R: quit and save selected vectors to new map\n"));
+     while (1) {
+-      G_message(_("L: add  M: remove  R: quit and save\n"));
++      G_message("%s", _("L: add  M: remove  R: quit and save\n"));
+       if (mode == M_START) {
+           R_get_location_with_pointer(&screen_x, &screen_y, &button);
+--- grass-6.4.3/display/d.extract/main.c.orig  2014-06-03 21:09:11.114444821 +0200
++++ grass-6.4.3/display/d.extract/main.c       2014-06-03 21:09:17.851111345 +0200
+@@ -76,7 +76,7 @@
+     type = Vect_option_to_types(type_opt);
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     color = G_standard_color_rgb(BLACK);
+     if (G_str_to_color(color_opt->answer, &r, &g, &b)) {
+@@ -114,7 +114,7 @@
+     R_close_driver();
+     /* Copy tables */
+-    G_message(_("Copying tables..."));
++    G_message("%s", _("Copying tables..."));
+     n = Vect_get_num_dblinks(&In);
+     tbtype = GV_1TABLE;
+     if (n > 1)
+@@ -122,7 +122,7 @@
+     for (i = 0; i < n; i++) {
+       Fi = Vect_get_dblink(&In, i);
+       if (Fi == NULL) {
+-          G_warning(_("Cannot get db link info -> cannot copy table."));
++          G_warning("%s", _("Cannot get db link info -> cannot copy table."));
+           continue;
+       }
+       Fin = Vect_default_field_info(&Out, Fi->number, Fi->name, tbtype);
+--- grass-6.4.3/display/d.font/main.c.orig     2011-04-23 11:52:13.000000000 +0200
++++ grass-6.4.3/display/d.font/main.c  2014-05-18 21:29:43.743232663 +0200
+@@ -83,7 +83,7 @@
+     /* load the font */
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     if (flag1->answer) {      /* List font names */
+       print_font_list(stdout, 0);
+--- grass-6.4.3/display/d.geodesic/main.c.orig 2011-04-23 11:52:13.000000000 +0200
++++ grass-6.4.3/display/d.geodesic/main.c      2014-05-18 21:30:11.219898757 +0200
+@@ -80,7 +80,7 @@
+     use_mouse = 1;
+     if (parm.coor->answer) {
+       if (parm.coor->answers[0] == NULL)
+-          G_fatal_error(_("No coordinates given"));
++          G_fatal_error("%s", _("No coordinates given"));
+       if (!G_scan_easting(parm.coor->answers[0], &lon1, G_projection())) {
+           G_usage();
+@@ -102,7 +102,7 @@
+     }
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     line_color = D_translate_color(parm.lcolor->answer);
+     if (!line_color)
+--- grass-6.4.3/display/d.graph/do_graph.c.orig        2008-11-25 02:31:46.000000000 +0100
++++ grass-6.4.3/display/d.graph/do_graph.c     2014-05-18 21:30:27.703231747 +0200
+@@ -102,7 +102,7 @@
+     int R, G, B, color = 0;
+     if (1 != sscanf(buff, "%*s %s", in_color)) {
+-      G_warning(_("Unable to read color"));
++      G_warning("%s", _("Unable to read color"));
+       return (-1);
+     }
+@@ -412,7 +412,7 @@
+     Symb = S_read(symb_name);
+     if (Symb == NULL) {
+-      G_warning(_("Cannot read symbol, cannot display points"));
++      G_warning("%s", _("Cannot read symbol, cannot display points"));
+       return (-1);
+     }
+     else
+--- grass-6.4.3/display/d.graph/main.c.orig    2013-04-20 11:52:17.000000000 +0200
++++ grass-6.4.3/display/d.graph/main.c 2014-06-03 21:10:19.667776726 +0200
+@@ -93,7 +93,7 @@
+     /* open graphics window */
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     /* Parse and select color */
+     if (opt2->answer != NULL) {
+@@ -116,13 +116,13 @@
+       mapunits = FALSE;
+     if (D_get_cur_wind(window_name))
+-      G_fatal_error(_("No current window"));
++      G_fatal_error("%s", _("No current window"));
+     if (D_set_cur_wind(window_name))
+-      G_fatal_error(_("Current window not available"));
++      G_fatal_error("%s", _("Current window not available"));
+     if (D_get_screen_window(&t, &b, &l, &r))
+-      G_fatal_error(_("Getting screen window"));
++      G_fatal_error("%s", _("Getting screen window"));
+     /* Finish graphics setup */
+     R_set_window(t, b, l, r);
+--- grass-6.4.3/display/d.grid/fiducial.c.orig 2013-04-20 11:52:21.000000000 +0200
++++ grass-6.4.3/display/d.grid/fiducial.c      2014-05-18 21:33:21.223228130 +0200
+@@ -61,7 +61,7 @@
+     Symb = S_read(symbol_name);
+     if (!Symb)
+-      G_fatal_error(_("Reading symbol"));
++      G_fatal_error("%s", _("Reading symbol"));
+     S_stroke(Symb, size, rotation, tolerance);
+     D_symbol(Symb, x0, y0, line_color, fill_color);
+--- grass-6.4.3/display/d.grid/plot.c.orig     2013-05-04 11:52:10.000000000 +0200
++++ grass-6.4.3/display/d.grid/plot.c  2014-06-03 21:12:56.931106778 +0200
+@@ -200,13 +200,13 @@
+           e1 = west + (ll * ((east - west) / SEGS));
+           e2 = e1 + ((east - west) / SEGS);
+           if (pj_do_proj(&e1, &n1, &info_in, &info_out) < 0)
+-              G_fatal_error(_("Error in pj_do_proj"));
++              G_fatal_error("%s", _("Error in pj_do_proj"));
+           check_coords(e1, n1, &lon, &lat, 1, window, info_in, info_out);
+           e1 = lon;
+           n1 = lat;
+           if (pj_do_proj(&e2, &n2, &info_in, &info_out) < 0)
+-              G_fatal_error(_("Error in pj_do_proj"));
++              G_fatal_error("%s", _("Error in pj_do_proj"));
+           check_coords(e2, n2, &lon, &lat, 1, window, info_in, info_out);
+           e2 = lon;
+@@ -256,13 +256,13 @@
+              n2 = n1 + ((north - south)/SEGS);
+            */
+           if (pj_do_proj(&e1, &n1, &info_in, &info_out) < 0)
+-              G_fatal_error(_("Error in pj_do_proj"));
++              G_fatal_error("%s", _("Error in pj_do_proj"));
+           check_coords(e1, n1, &lon, &lat, 2, window, info_in, info_out);
+           e1 = lon;
+           n1 = lat;
+           if (pj_do_proj(&e2, &n2, &info_in, &info_out) < 0)
+-              G_fatal_error(_("Error in pj_do_proj"));
++              G_fatal_error("%s", _("Error in pj_do_proj"));
+           check_coords(e2, n2, &lon, &lat, 2, window, info_in, info_out);
+           e2 = lon;
+@@ -316,14 +316,14 @@
+     out_proj_keys = G_get_projinfo();
+     out_unit_keys = G_get_projunits();
+     if (pj_get_kv(info_out, out_proj_keys, out_unit_keys) < 0)
+-      G_fatal_error(_("Can't get projection key values of current location"));
++      G_fatal_error("%s", _("Can't get projection key values of current location"));
+     /* In Info */
+     if (!wgs84) {
+       /* Set lat/long to same ellipsoid as location if we're not looking
+        * for the WGS84 values */
+       if (GPJ_get_equivalent_latlong(info_in, info_out) < 0)
+-          G_fatal_error(_("Unable to set up lat/long projection parameters"));
++          G_fatal_error("%s", _("Unable to set up lat/long projection parameters"));
+     }
+     else {
+@@ -337,7 +337,7 @@
+        * the WGS84 values would be meaningless), and if they are set the 
+        * input datum to WGS84 */
+       if (G_get_datumparams_from_projinfo(out_proj_keys, buff, dum) < 0)
+-          G_fatal_error(_("WGS84 grid output not possible as this location does not contain\n"
++          G_fatal_error("%s", _("WGS84 grid output not possible as this location does not contain\n"
+                          "datum transformation parameters. Try running g.setproj."));
+       else
+           G_set_key_value("datum", "wgs84", in_proj_info);
+@@ -350,7 +350,7 @@
+       G_set_key_value("meters", "1.0", in_unit_info);
+       if (pj_get_kv(info_in, in_proj_info, in_unit_info) < 0)
+-          G_fatal_error(_("Unable to set up lat/long projection parameters"));
++          G_fatal_error("%s", _("Unable to set up lat/long projection parameters"));
+       G_free_key_value(in_proj_info);
+       G_free_key_value(in_unit_info);
+@@ -401,7 +401,7 @@
+       e1 = ew;
+       n1 = window.north;
+       if (pj_do_proj(&e1, &n1, &info_out, &info_in) < 0)
+-          G_fatal_error(_("Error in pj_do_proj"));
++          G_fatal_error("%s", _("Error in pj_do_proj"));
+       if (!first) {
+           north = n1;
+           first = 1;
+@@ -417,7 +417,7 @@
+       e1 = ew;
+       s1 = window.south;
+       if (pj_do_proj(&e1, &s1, &info_out, &info_in) < 0)
+-          G_fatal_error(_("Error in pj_do_proj"));
++          G_fatal_error("%s", _("Error in pj_do_proj"));
+       if (!first) {
+           south = s1;
+           first = 1;
+@@ -434,7 +434,7 @@
+       e1 = window.east;
+       n1 = ns;
+       if (pj_do_proj(&e1, &n1, &info_out, &info_in) < 0)
+-          G_fatal_error(_("Error in pj_do_proj"));
++          G_fatal_error("%s", _("Error in pj_do_proj"));
+       if (!first) {
+           east = e1;
+           first = 1;
+@@ -451,7 +451,7 @@
+       w1 = window.west;
+       n1 = ns;
+       if (pj_do_proj(&w1, &n1, &info_out, &info_in) < 0)
+-          G_fatal_error(_("Error in pj_do_proj"));
++          G_fatal_error("%s", _("Error in pj_do_proj"));
+       if (!first) {
+           west = w1;
+           first = 1;
+@@ -509,17 +509,17 @@
+     if (proj) {
+       /* convert original coords to ll */
+       if (pj_do_proj(&e, &n, &info_out, &info_in) < 0)
+-          G_fatal_error(_("Error in pj_do_proj1"));
++          G_fatal_error("%s", _("Error in pj_do_proj1"));
+       if (par == 1) {
+           /* lines of latitude -- const. northing */
+           /* convert correct UTM to ll */
+           if (pj_do_proj(&x, &y, &info_out, &info_in) < 0)
+-              G_fatal_error(_("Error in pj_do_proj2"));
++              G_fatal_error("%s", _("Error in pj_do_proj2"));
+           /* convert new ll back to coords */
+           if (pj_do_proj(&x, &n, &info_in, &info_out) < 0)
+-              G_fatal_error(_("Error in pj_do_proj3"));
++              G_fatal_error("%s", _("Error in pj_do_proj3"));
+           *lat = n;
+           *lon = x;
+       }
+@@ -527,11 +527,11 @@
+           /* lines of longitude -- const. easting */
+           /* convert correct UTM to ll */
+           if (pj_do_proj(&x, &y, &info_out, &info_in) < 0)
+-              G_fatal_error(_("Error in pj_do_proj5"));
++              G_fatal_error("%s", _("Error in pj_do_proj5"));
+           /* convert new ll back to coords */
+           if (pj_do_proj(&e, &y, &info_in, &info_out) < 0)
+-              G_fatal_error(_("Error in pj_do_proj6"));
++              G_fatal_error("%s", _("Error in pj_do_proj6"));
+           *lat = y;
+           *lon = e;
+       }
+--- grass-6.4.3/display/d.grid/main.c.orig     2013-04-20 11:52:21.000000000 +0200
++++ grass-6.4.3/display/d.grid/main.c  2014-06-05 21:23:55.994158017 +0200
+@@ -144,13 +144,13 @@
+     /* do some checking */
+     if (nogrid->answer && noborder->answer)
+-      G_fatal_error(_("Both grid and border drawing are disabled"));
++      G_fatal_error("%s", _("Both grid and border drawing are disabled"));
+     if (wgs84->answer)
+       geogrid->answer = 1;    /* -w implies -g */
+     if (geogrid->answer && G_projection() == PROJECTION_LL)
+-      G_fatal_error(_("Geo-Grid option is not available for LL projection"));
++      G_fatal_error("%s", _("Geo-Grid option is not available for LL projection"));
+     if (geogrid->answer && G_projection() == PROJECTION_XY)
+-      G_fatal_error(_("Geo-Grid option is not available for XY projection"));
++      G_fatal_error("%s", _("Geo-Grid option is not available for XY projection"));
+     if (notext->answer)
+       do_text = FALSE;
+@@ -169,7 +169,7 @@
+     mark_type = MARK_GRID;
+     if (cross->answer + fiducial->answer + dot->answer > 1)
+-      G_fatal_error(_("Choose a single mark style"));
++      G_fatal_error("%s", _("Choose a single mark style"));
+     if (cross->answer)
+       mark_type = MARK_CROSS;
+     if (fiducial->answer)
+@@ -203,7 +203,7 @@
+     /* Setup driver and check important information */
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     /* Parse and select grid color */
+--- grass-6.4.3/display/d.his/main.c.orig      2011-04-23 11:52:13.000000000 +0200
++++ grass-6.4.3/display/d.his/main.c   2014-05-18 21:34:50.536559602 +0200
+@@ -114,13 +114,13 @@
+     /* Do screen initializing stuff */
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     if (D_get_cur_wind(window_name))
+-      G_fatal_error(_("No current graphics window"));
++      G_fatal_error("%s", _("No current graphics window"));
+     if (D_set_cur_wind(window_name))
+-      G_fatal_error(_("Current graphics window not available"));
++      G_fatal_error("%s", _("Current graphics window not available"));
+     D_set_cell_name("his result");
+@@ -216,17 +216,17 @@
+       if (G_get_raster_row_colors
+           (hue_file, atrow, &hue_colors, hue_r, hue_g, hue_b, hue_n) < 0)
+-          G_fatal_error(_("Error reading hue data"));
++          G_fatal_error("%s", _("Error reading hue data"));
+       if (int_used &&
+           (G_get_raster_row_colors
+            (int_file, atrow, &int_colors, int_r, dummy, dummy, int_n) < 0))
+-          G_fatal_error(_("Error reading intensity data"));
++          G_fatal_error("%s", _("Error reading intensity data"));
+       if (sat_used &&
+           (G_get_raster_row_colors
+            (sat_file, atrow, &sat_colors, sat_r, dummy, dummy, sat_n) < 0))
+-          G_fatal_error(_("Error reading saturation data"));
++          G_fatal_error("%s", _("Error reading saturation data"));
+       for (atcol = 0; atcol < window.cols; atcol++) {
+           if (nulldraw->answer) {
+--- grass-6.4.3/display/d.histogram/main.c.orig        2013-04-20 11:52:17.000000000 +0200
++++ grass-6.4.3/display/d.histogram/main.c     2014-05-18 21:35:07.946559239 +0200
+@@ -151,7 +151,7 @@
+     cat_ranges = flag3->answer;
+     if (cat_ranges && nsteps != 255)
+-      G_warning(_("When -C flag is set, the nsteps argument is ignored"));
++      G_warning("%s", _("When -C flag is set, the nsteps argument is ignored"));
+     nodata = flag1->answer;
+     quiet = flag2->answer ? YES : NO;
+@@ -178,7 +178,7 @@
+     /* set up the graphics driver and initialize its color-table */
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     D_setup(0);                       /* 0 = don't clear frame */
+     D_get_screen_window(&t, &b, &l, &r);
+--- grass-6.4.3/display/d.info/main.c.orig     2011-04-23 11:52:13.000000000 +0200
++++ grass-6.4.3/display/d.info/main.c  2014-05-18 21:37:55.379889082 +0200
+@@ -71,7 +71,7 @@
+     }
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     if (rflag->answer || dflag->answer) {
+       l = R_screen_left();
+@@ -100,19 +100,19 @@
+     if (bflag->answer) {
+       if (D_get_cur_wind(window_name))
+-          G_fatal_error(_("No current window"));
++          G_fatal_error("%s", _("No current window"));
+       if (D_set_cur_wind(window_name))
+-          G_fatal_error(_("Current window not available"));
++          G_fatal_error("%s", _("Current window not available"));
+       /* Read in the map window associated with window */
+       G_get_window(&window);
+       if (D_check_map_window(&window))
+-          G_fatal_error(_("Setting map window"));
++          G_fatal_error("%s", _("Setting map window"));
+       if (D_get_screen_window(&t, &b, &l, &r))
+-          G_fatal_error(_("Getting screen window"));
++          G_fatal_error("%s", _("Getting screen window"));
+       if (D_do_conversions(&window, t, b, l, r))
+-          G_fatal_error(_("Error in calculating conversions"));
++          G_fatal_error("%s", _("Error in calculating conversions"));
+       l = D_get_d_west();
+       r = D_get_d_east();
+@@ -126,18 +126,18 @@
+       /* outer bounds of the screen (including white bands) */
+       if (D_get_cur_wind(window_name))
+-          G_fatal_error(_("No current window"));
++          G_fatal_error("%s", _("No current window"));
+       if (D_set_cur_wind(window_name))
+-          G_fatal_error(_("Current window not available"));
++          G_fatal_error("%s", _("Current window not available"));
+       G_get_window(&window);
+       if (D_check_map_window(&window))
+-          G_fatal_error(_("Setting map window"));
++          G_fatal_error("%s", _("Setting map window"));
+       if (D_get_screen_window(&t, &b, &l, &r))
+-          G_fatal_error(_("Getting screen window"));
++          G_fatal_error("%s", _("Getting screen window"));
+       if (D_do_conversions(&window, t, b, l, r))
+-          G_fatal_error(_("Error in calculating conversions"));
++          G_fatal_error("%s", _("Error in calculating conversions"));
+       n = D_d_to_u_row((double)t);
+       s = D_d_to_u_row((double)b);
+--- grass-6.4.3/display/d.legend/main.c.orig   2013-04-20 11:52:17.000000000 +0200
++++ grass-6.4.3/display/d.legend/main.c        2014-05-18 21:39:41.689886866 +0200
+@@ -262,13 +262,13 @@
+     G_set_c_null_value(&null_cell, 1);
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     if (D_get_cur_wind(window_name))
+-      G_fatal_error(_("No current window"));
++      G_fatal_error("%s", _("No current window"));
+     if (D_set_cur_wind(window_name))
+-      G_fatal_error(_("Current window not available"));
++      G_fatal_error("%s", _("Current window not available"));
+     white = D_translate_color(DEFAULT_FG_COLOR);
+     black = D_translate_color(DEFAULT_BG_COLOR);
+@@ -328,11 +328,11 @@
+       y1++;
+     if ((x0 < l) || (x1 > r) || (y0 < t) || (y1 > b)) /* for mouse or at= 0- or 100+; needs to be after order check */
+-      G_warning(_("Legend box lies outside of frame. Text may not display properly."));
++      G_warning("%s", _("Legend box lies outside of frame. Text may not display properly."));
+     horiz = (x1 - x0 > y1 - y0);
+     if (horiz)
+-      G_message(_("Drawing horizontal legend as box width exceeds height"));
++      G_message("%s", _("Drawing horizontal legend as box width exceeds height"));
+     if (!fp && horiz)         /* better than nothing */
+       do_smooth = TRUE;
+@@ -348,7 +348,7 @@
+       G_get_range_min_max(&range, &min_ind, &max_ind);
+       if (G_is_c_null_value(&min_ind))
+-          G_fatal_error(_("Input map contains no data"));
++          G_fatal_error("%s", _("Input map contains no data"));
+       G_get_color_range(&min_colr, &max_colr, &colors);
+@@ -361,13 +361,13 @@
+               min_ind =
+                   UserRangeMin <
+                   min_colr ? min_colr : (int)ceil(UserRangeMin);
+-              G_warning(_("Color range exceeds lower limit of actual data"));
++              G_warning("%s", _("Color range exceeds lower limit of actual data"));
+           }
+           if (max_ind < UserRangeMax) {
+               max_ind =
+                   UserRangeMax >
+                   max_colr ? max_colr : (int)floor(UserRangeMax);
+-              G_warning(_("Color range exceeds upper limit of actual data"));
++              G_warning("%s", _("Color range exceeds upper limit of actual data"));
+           }
+       }
+@@ -465,7 +465,7 @@
+       /* following covers both the above if(do_cats == cats_num) and k++ loop */
+       if (lines < 1) {
+           lines = 1;          /* ward off the dpl floating point exception */
+-          G_fatal_error(_("Nothing to draw! (no categories with labels? out of range?)"));
++          G_fatal_error("%s", _("Nothing to draw! (no categories with labels? out of range?)"));
+       }
+       /* Figure number of lines, number of pixles per line and text size */
+@@ -475,7 +475,7 @@
+       /*  an alternate solution is to set   dots_per_line=1         */
+       if ((dots_per_line == 0) && (do_smooth == 0)) {
+           if (!use_catlist) {
+-              G_message(_("Forcing a smooth legend: too many categories for current window height"));
++              G_message("%s", _("Forcing a smooth legend: too many categories for current window height"));
+               do_smooth = 1;
+           }
+       }
+@@ -519,11 +519,11 @@
+               dmax = UserRangeMax;
+           if (dmin > UserRangeMin) {
+               dmin = UserRangeMin < min_dcolr ? min_dcolr : UserRangeMin;
+-              G_warning(_("Color range exceeds lower limit of actual data"));
++              G_warning("%s", _("Color range exceeds lower limit of actual data"));
+           }
+           if (dmax < UserRangeMax) {
+               dmax = UserRangeMax > max_dcolr ? max_dcolr : UserRangeMax;
+-              G_warning(_("Color range exceeds upper limit of actual data"));
++              G_warning("%s", _("Color range exceeds upper limit of actual data"));
+           }
+       }
+@@ -892,7 +892,7 @@
+       }
+       if (0 == k)
+-          G_fatal_error(_("Nothing to draw! (no categories with labels?)"));  /* "(..., out of range?)" */
++          G_fatal_error("%s", _("Nothing to draw! (no categories with labels?)"));    /* "(..., out of range?)" */
+       if (do_cats != cats_num) {
+--- grass-6.4.3/display/d.linegraph/linegraph.c.orig   2013-04-20 11:52:17.000000000 +0200
++++ grass-6.4.3/display/d.linegraph/linegraph.c        2014-05-18 21:45:28.133212979 +0200
+@@ -206,7 +206,7 @@
+       num_y_files++;
+       if (num_y_files > 10)
+-          G_fatal_error(_("Maximum of 10 Y data files exceeded"));
++          G_fatal_error("%s", _("Maximum of 10 Y data files exceeded"));
+     }
+     /* set colors  */
+@@ -248,7 +248,7 @@
+     /* get coordinates of current screen window, in pixels */
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     D_get_screen_window(&t, &b, &l, &r);
+     R_set_window(t, b, l, r);
+@@ -536,7 +536,7 @@
+     R_text(xlabel);
+     /* top label */
+-    sprintf(xlabel, title[2]->answer);
++    strcpy(xlabel, title[2]->answer);
+     text_height = (b - t) * TEXT_HEIGHT;
+     text_width = (r - l) * TEXT_WIDTH * 2.0;
+     R_text_size(text_width, text_height);
+--- grass-6.4.3/display/d.measure/main.c.orig  2013-04-20 11:52:17.000000000 +0200
++++ grass-6.4.3/display/d.measure/main.c       2014-05-19 20:01:35.694875370 +0200
+@@ -84,13 +84,13 @@
+       exit(EXIT_FAILURE);
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     if (D_get_cur_wind(frame))
+-      G_fatal_error(_("No current frame"));
++      G_fatal_error("%s", _("No current frame"));
+     if (D_set_cur_wind(frame))
+-      G_fatal_error(_("Current frame not available"));
++      G_fatal_error("%s", _("Current frame not available"));
+     color1 = D_translate_color(parm.c1->answer);
+     color2 = D_translate_color(parm.c2->answer);
+--- grass-6.4.3/display/d.menu/main.c.orig     2014-05-19 20:02:20.804874429 +0200
++++ grass-6.4.3/display/d.menu/main.c  2014-05-19 20:02:24.221541025 +0200
+@@ -105,7 +105,7 @@
+       exit(EXIT_FAILURE);
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     backcolor = D_translate_color(opt1->answer);
+     if (backcolor == 0) {
+@@ -183,7 +183,7 @@
+     options[i] = NULL;
+     if (i < 2) {
+       R_close_driver();
+-      G_fatal_error(_("Menu must contain a title and at least one option"));
++      G_fatal_error("%s", _("Menu must contain a title and at least one option"));
+     }
+     i = D_popup(backcolor, textcolor, dividercolor, top,      /* The col of the top left corner */
+--- grass-6.4.3/display/d.nviz/main.c.orig     2011-04-23 11:52:13.000000000 +0200
++++ grass-6.4.3/display/d.nviz/main.c  2014-05-19 20:03:59.071539048 +0200
+@@ -144,7 +144,7 @@
+     /* check arguments */
+     if ((!parm.i->answer) && (!parm.route->answer))
+-      G_fatal_error(_("Either -i flag and/or route parameter must be used"));
++      G_fatal_error("%s", _("Either -i flag and/or route parameter must be used"));
+     /* get GRASS parameters */
+     G_get_window(&window);
+@@ -168,7 +168,7 @@
+     if (parm.k->answer)
+       key_frames = 1;
+     if (parm.o->answer && !parm.f->answer)
+-      G_fatal_error(_("Off-screen only available with full render mode"));
++      G_fatal_error("%s", _("Off-screen only available with full render mode"));
+     if (parm.o->answer)
+       off_screen = 1;
+@@ -188,9 +188,9 @@
+     /* Set Image name */
+     if (parm.name->answer)
+-      sprintf(img_name, parm.name->answer);
++      strcpy(img_name, parm.name->answer);
+     else
+-      sprintf(img_name, "NVIZ");
++      strcpy(img_name, "NVIZ");
+     /* Open ASCII file for output */
+@@ -247,7 +247,7 @@
+       int count = 0;
+       if (R_open_driver() != 0)
+-          G_fatal_error(_("No graphics device selected"));
++          G_fatal_error("%s", _("No graphics device selected"));
+       D_setup(0);
+       G_setup_plot(D_get_d_north(),
+@@ -279,7 +279,7 @@
+           }
+           else {
+               if (e2 == -9999. || n2 == -9999.) {
+-                  G_fatal_error(_("You must select more than one point"));
++                  G_fatal_error("%s", _("You must select more than one point"));
+               }
+               break;
+@@ -297,7 +297,7 @@
+       }
+       if (count < 4) {
+-          G_fatal_error(_("You must select at least four points"));
++          G_fatal_error("%s", _("You must select at least four points"));
+       }
+@@ -389,7 +389,7 @@
+     fclose(fp);
+     sprintf(buf1, _("Created NVIZ script <%s>."), outfile);
+-    G_done_msg(buf1);
++    G_done_msg("%s", buf1);
+     exit(EXIT_SUCCESS);
+@@ -535,7 +535,7 @@
+     if (row < 0 || row > nrows || col < 0 || col > ncols) {
+       G_debug(3, "Fail: row=%d  nrows=%d   col=%d  ncols=%d", row, nrows,
+               col, ncols);
+-      G_warning(_("Skipping this point, selected point is outside region. "
++      G_warning("%s", _("Skipping this point, selected point is outside region. "
+                  "Perhaps the camera setback distance puts it beyond the edge?"));
+       frame++;
+       return 1;
+--- grass-6.4.3/display/d.paint.labels/main.c.orig     2013-04-20 11:52:17.000000000 +0200
++++ grass-6.4.3/display/d.paint.labels/main.c  2014-05-19 20:04:54.338204563 +0200
+@@ -87,7 +87,7 @@
+       G_fatal_error(_("Label file <%s> not found"), label_name);
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     /* Read in the map window associated with window */
+     G_get_window(&window);
+@@ -99,7 +99,7 @@
+     if (minreg_opt->answer) {
+       minreg = atof(minreg_opt->answer);
+       if (reg < minreg) {
+-          G_warning(_("Region size is lower than minreg, nothing displayed."));
++          G_warning("%s", _("Region size is lower than minreg, nothing displayed."));
+           D_add_to_list(G_recreate_command());
+           R_close_driver();
+           exit(0);
+@@ -108,7 +108,7 @@
+     if (maxreg_opt->answer) {
+       maxreg = atof(maxreg_opt->answer);
+       if (reg > maxreg) {
+-          G_warning(_("Region size is greater than maxreg, nothing displayed."));
++          G_warning("%s", _("Region size is greater than maxreg, nothing displayed."));
+           D_add_to_list(G_recreate_command());
+           R_close_driver();
+           exit(0);
+@@ -121,22 +121,22 @@
+       G_fatal_error(_("Unable to open label file <%s>"), label_name);
+     if (D_get_cur_wind(window_name))
+-      G_fatal_error(_("No current window"));
++      G_fatal_error("%s", _("No current window"));
+     if (D_set_cur_wind(window_name))
+-      G_fatal_error(_("Current window not available"));
++      G_fatal_error("%s", _("Current window not available"));
+     if (D_check_map_window(&window))
+-      G_fatal_error(_("Setting map window"));
++      G_fatal_error("%s", _("Setting map window"));
+     if (G_set_window(&window) == -1)
+-      G_fatal_error(_("Current window not settable"));
++      G_fatal_error("%s", _("Current window not settable"));
+     /* Determine conversion factors */
+     if (D_get_screen_window(&t, &b, &l, &r))
+-      G_fatal_error(_("Getting screen window"));
++      G_fatal_error("%s", _("Getting screen window"));
+     if (D_do_conversions(&window, t, b, l, r))
+-      G_fatal_error(_("Error in calculating conversions"));
++      G_fatal_error("%s", _("Error in calculating conversions"));
+     /* Go draw the raster map */
+     do_labels(infile, !horiz_flag->answer);
+--- grass-6.4.3/display/d.path/main.c.orig     2008-11-25 02:31:48.000000000 +0100
++++ grass-6.4.3/display/d.path/main.c  2014-05-19 20:05:13.864870822 +0200
+@@ -140,7 +140,7 @@
+     use_mouse = TRUE;
+     if (coor_opt->answer) {
+       if (coor_opt->answers[0] == NULL)
+-          G_fatal_error(_("No coordinates given"));
++          G_fatal_error("%s", _("No coordinates given"));
+       if (!G_scan_easting(coor_opt->answers[0], &x1, G_projection()))
+           G_fatal_error(_("%s - illegal x value"), coor_opt->answers[0]);
+@@ -156,7 +156,7 @@
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     color = G_standard_color_rgb(BLACK);
+     if (G_str_to_color(color_opt->answer, &r, &g, &b)) {
+@@ -182,7 +182,7 @@
+     if (geo_f->answer) {
+       geo = 1;
+       if (G_projection() != PROJECTION_LL)
+-          G_fatal_error(_("The current projection is not longitude-latitude"));
++          G_fatal_error("%s", _("The current projection is not longitude-latitude"));
+     }
+     else
+       geo = 0;
+--- grass-6.4.3/display/d.path/select.c.orig   2008-11-25 02:31:48.000000000 +0100
++++ grass-6.4.3/display/d.path/select.c        2014-06-03 21:15:45.337769937 +0200
+@@ -32,10 +32,10 @@
+     msize = 10 * (D_d_to_u_col(2.0) - D_d_to_u_col(1.0));     /* do it better */
+     G_debug(1, "msize = %f\n", msize);
+-    G_message(_("\nMouse Buttons:"));
+-    fprintf(stderr, _("Left:   Select From\n"));
+-    fprintf(stderr, _("Middle: Select To\n"));
+-    fprintf(stderr, _("Right:  Quit\n\n"));
++    G_message("%s", _("\nMouse Buttons:"));
++    fputs(_("Left:   Select From\n"), stderr);
++    fputs(_("Middle: Select To\n"), stderr);
++    fputs(_("Right:  Quit\n\n"), stderr);
+     while (1) {
+       R_get_location_with_pointer(&screen_x, &screen_y, &button);
+@@ -146,7 +146,7 @@
+                                           Points, NULL, NULL, NULL, &fdist,
+                                           &tdist);
+           if (ret == 0) {
+-              fprintf(stdout, _("Destination unreachable\n"));
++              fputs(_("Destination unreachable\n"), stdout);
+               sp_disp = 0;
+           }
+           else {
+@@ -277,7 +277,7 @@
+                                   5 * maxdist, 5 * maxdist, &cost, Points,
+                                   NULL, NULL, NULL, &fdist, &tdist);
+     if (ret == 0) {
+-      fprintf(stdout, _("Destination unreachable\n"));
++      fputs(_("Destination unreachable\n"), stdout);
+     }
+     else {
+       fprintf(stdout, _("Costs on the network = %f\n"), cost);
+--- grass-6.4.3/display/d.profile/Range.c.orig 2012-09-01 11:52:29.000000000 +0200
++++ grass-6.4.3/display/d.profile/Range.c      2014-05-19 20:05:32.231537106 +0200
+@@ -84,7 +84,7 @@
+     *min = *max = 0;
+-    G_message(_("one moment ..."));
++    G_message("%s", _("one moment ..."));
+     sprintf(buf, "Gdescribe -r -1 '%s in %s'", name, mapset);
+     fd = popen(buf, "r");
+     if (fd == NULL)
+--- grass-6.4.3/display/d.profile/What.c.orig  2013-04-20 11:52:17.000000000 +0200
++++ grass-6.4.3/display/d.profile/What.c       2014-06-03 21:16:52.277768540 +0200
+@@ -26,7 +26,7 @@
+       NoCatStrings = 1;
+     if (G_get_map_row(fd, buf, row) < 0)
+-      G_fatal_error(_("Error reading raster map"));
++      G_fatal_error("%s", _("Error reading raster map"));
+     else {
+       R_standard_color(D_translate_color(DEFAULT_BG_COLOR));
+       D_erase_window();
+--- grass-6.4.3/display/d.profile/main.c.orig  2011-04-23 11:52:13.000000000 +0200
++++ grass-6.4.3/display/d.profile/main.c       2014-06-05 21:25:46.387489049 +0200
+@@ -127,11 +127,11 @@
+        if (max < 0) max = 0;
+      */
+-    G_message(_("\n\nUse mouse to choose action"));
++    G_message("%s", _("\n\nUse mouse to choose action"));
+     /* establish connection with graphics driver */
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     /* Make sure screen is clear */
+     D_remove_windows();
+@@ -196,7 +196,7 @@
+           /* exit if user hit left mouse button */
+           if (button == 3) {
+               D_set_cur_wind(ORIG.name);
+-              G_message(_("Use 'd.frame -e' to remove left over frames"));
++              G_message("%s", _("Use 'd.frame -e' to remove left over frames"));
+               exit(EXIT_SUCCESS);
+           }
+@@ -280,11 +280,11 @@
+                       DrawText(25, 2, 1, "       of current window");
+                   }
+                   else if (err == -2)
+-                      G_fatal_error(_("Error opening cell-file"));
++                      G_fatal_error("%s", _("Error opening cell-file"));
+                   else if (err == -3)
+-                      G_fatal_error(_("Error reading from cell-file"));
++                      G_fatal_error("%s", _("Error reading from cell-file"));
+                   else if (err == -4)
+-                      G_fatal_error(_("Mysterious window inconsistancy error"));
++                      G_fatal_error("%s", _("Mysterious window inconsistancy error"));
+                   else {
+                       /* draw profile line on cell-file */
+                       black_and_white_line(screen_x, screen_y, cur_screen_x,
+@@ -390,7 +390,7 @@
+       R_get_location_with_pointer(&screen_x, &screen_y, &button);
+       if (button == 3) {
+           D_set_cur_wind(ORIG.name);
+-          G_message(_("Use 'd.frame -e' to remove left over frames"));
++          G_message("%s", _("Use 'd.frame -e' to remove left over frames"));
+           exit(EXIT_SUCCESS);
+       }
+       else if (button == 2) {
+--- grass-6.4.3/display/d.rast/display.c.orig  2008-11-25 02:31:46.000000000 +0100
++++ grass-6.4.3/display/d.rast/display.c       2014-05-19 20:05:50.948203383 +0200
+@@ -72,7 +72,7 @@
+     D_get_screen_window(&t, &b, &l, &r);
+     D_set_overlay_mode(overlay);
+     if (D_cell_draw_setup(t, b, l, r))
+-      G_fatal_error(_("Cannot use current window"));
++      G_fatal_error("%s", _("Cannot use current window"));
+     /* Make sure map is available */
+     if ((cellfile = G_open_cell_old(name, mapset)) == -1)
+--- grass-6.4.3/display/d.rast/main.c.orig     2010-12-04 11:52:07.000000000 +0100
++++ grass-6.4.3/display/d.rast/main.c  2014-06-03 21:18:36.354433037 +0200
+@@ -111,18 +111,18 @@
+       G_fatal_error(_("Raster map <%s> not found"), name);
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     fp = G_raster_map_is_fp(name, mapset);
+     if (catlist->answer) {
+       if (fp)
+-          G_warning(_("Ignoring catlist: map is floating point (please use 'val=')"));
++          G_warning("%s", _("Ignoring catlist: map is floating point (please use 'val=')"));
+       else
+           parse_catlist(catlist->answers, &mask);
+     }
+     if (vallist->answer) {
+       if (!fp)
+-          G_warning(_("Ignoring vallist: map is integer (please use 'cat=')"));
++          G_warning("%s", _("Ignoring vallist: map is integer (please use 'cat=')"));
+       else
+           parse_vallist(vallist->answers, &d_mask);
+     }
+--- grass-6.4.3/display/d.rast.arrow/arrow.c.orig      2011-04-23 11:52:13.000000000 +0200
++++ grass-6.4.3/display/d.rast.arrow/arrow.c   2014-05-19 20:06:51.694868783 +0200
+@@ -221,49 +221,49 @@
+     scale = atof(opt8->answer);
+     if (scale <= 0.0)
+-      G_fatal_error(_("Illegal value for scale factor"));
++      G_fatal_error("%s", _("Illegal value for scale factor"));
+     skip = atoi(opt9->answer);
+     if (skip <= 0)
+-      G_fatal_error(_("Illegal value for skip factor"));
++      G_fatal_error("%s", _("Illegal value for skip factor"));
+     if (opt7->answer) {
+       if (map_type != 1 && map_type != 4)
+-          G_fatal_error(_("Magnitude is only supported for GRASS and compass aspect maps."));
++          G_fatal_error("%s", _("Magnitude is only supported for GRASS and compass aspect maps."));
+       mag_map = opt7->answer;
+       if ((mag_mapset = G_find_cell2(mag_map, "")) == NULL)
+           G_fatal_error(_("Raster map <%s> not found"), mag_map);
+     }
+     else if (scale != 1.0)
+-      G_warning(_("Scale option requires magnitude_map"));
++      G_warning("%s", _("Scale option requires magnitude_map"));
+     /* Setup driver and check important information */
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     if (D_get_cur_wind(window_name))
+-      G_fatal_error(_("No current window"));
++      G_fatal_error("%s", _("No current window"));
+     if (D_set_cur_wind(window_name))
+-      G_fatal_error(_("Current window not available"));
++      G_fatal_error("%s", _("Current window not available"));
+     /* Read in the map window associated with window */
+     G_get_window(&window);
+     if (D_check_map_window(&window))
+-      G_fatal_error(_("Setting map window"));
++      G_fatal_error("%s", _("Setting map window"));
+     if (G_set_window(&window) == -1)
+-      G_fatal_error(_("Current window not settable"));
++      G_fatal_error("%s", _("Current window not settable"));
+     /* Determine conversion factors */
+     if (D_get_screen_window(&t, &b, &l, &r))
+-      G_fatal_error(_("Getting screen window"));
++      G_fatal_error("%s", _("Getting screen window"));
+     if (D_do_conversions(&window, t, b, l, r))
+-      G_fatal_error(_("Error in calculating conversions"));
++      G_fatal_error("%s", _("Error in calculating conversions"));
+     /* where are we, both geographically and on the screen? */
+     D_south = D_get_d_south();
+@@ -310,7 +310,7 @@
+     if (opt7->answer) {
+       G_init_fp_range(&range);        /* really needed? */
+       if (G_read_fp_range(mag_map, mag_mapset, &range) != 1)
+-          G_fatal_error(_("Problem reading range file"));
++          G_fatal_error("%s", _("Problem reading range file"));
+       G_get_fp_range_min_max(&range, &mag_min, &mag_max);
+       scale *= 1.5 * ((D_ew < D_ns) ? D_ew : D_ns) / fabs(mag_max);
+@@ -365,7 +365,7 @@
+        get name of layer that is on the screen */
+     if (!layer_set) {
+       if (D_get_cell_name(full_name))
+-          G_fatal_error(_("No raster map exists in the current window"));
++          G_fatal_error("%s", _("No raster map exists in the current window"));
+       mapset = G_find_cell(full_name, "");
+       if (mapset == NULL)
+--- grass-6.4.3/display/d.rast.num/number.c.orig       2012-05-26 11:52:07.000000000 +0200
++++ grass-6.4.3/display/d.rast.num/number.c    2014-05-19 20:08:03.048200629 +0200
+@@ -129,13 +129,13 @@
+       exit(EXIT_FAILURE);
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     if (opt1->answer)
+       strcpy(full_name, opt1->answer);
+     else {
+       if (D_get_cell_name(full_name))
+-          G_fatal_error(_("No raster map exists in current window"));
++          G_fatal_error("%s", _("No raster map exists in current window"));
+     }
+     if (strcmp("none", opt2->answer) == 0)
+@@ -163,27 +163,27 @@
+     /* Setup driver and check important information */
+     if (D_get_cur_wind(window_name))
+-      G_fatal_error(_("No current window"));
++      G_fatal_error("%s", _("No current window"));
+     if (D_set_cur_wind(window_name))
+-      G_fatal_error(_("Current window not available"));
++      G_fatal_error("%s", _("Current window not available"));
+     /* Read in the map window associated with window */
+     G_get_window(&window);
+     if (D_check_map_window(&window))
+-      G_fatal_error(_("Setting map window"));
++      G_fatal_error("%s", _("Setting map window"));
+     if (G_set_window(&window) == -1)
+-      G_fatal_error(_("Current window not settable"));
++      G_fatal_error("%s", _("Current window not settable"));
+     /* Determine conversion factors */
+     if (D_get_screen_window(&t, &b, &l, &r))
+-      G_fatal_error(_("Getting screen window"));
++      G_fatal_error("%s", _("Getting screen window"));
+     if (D_do_conversions(&window, t, b, l, r))
+-      G_fatal_error(_("Error in calculating conversions"));
++      G_fatal_error("%s", _("Error in calculating conversions"));
+     /* where are we, both geographically and on the screen? */
+@@ -213,7 +213,7 @@
+                 nrows, ncols);
+     }
+     if ((nrows > 200) || (ncols > 200)) {
+-      G_fatal_error(_("Aborting (region larger then 200 rows X 200 cols is not allowed)"));
++      G_fatal_error("%s", _("Aborting (region larger then 200 rows X 200 cols is not allowed)"));
+     }
+     /* resolutions */
+--- grass-6.4.3/display/d.rgb/main.c.orig      2013-04-20 11:52:17.000000000 +0200
++++ grass-6.4.3/display/d.rgb/main.c   2014-05-19 20:54:29.298142555 +0200
+@@ -80,7 +80,7 @@
+     /* Do screen initializing stuff */
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     
+     D_get_screen_window(&t, &b, &l, &r);
+     D_set_overlay_mode(flag_o->answer);
+@@ -116,7 +116,7 @@
+       for (i = 0; i < 3; i++)
+           if (G_get_raster_row(B[i].file, B[i].array, row, B[i].type) < 0)
+-              G_fatal_error(_("Error reading row of data"));
++              G_fatal_error("%s", _("Error reading row of data"));
+       if (row == next_row)
+           next_row = D_draw_raster_RGB(next_row,
+--- grass-6.4.3/display/d.rhumbline/main.c.orig        2011-04-23 11:52:13.000000000 +0200
++++ grass-6.4.3/display/d.rhumbline/main.c     2014-05-19 21:04:23.771463498 +0200
+@@ -82,7 +82,7 @@
+     use_mouse = 1;
+     if (parm.coor->answer) {
+       if (parm.coor->answers[0] == NULL)
+-          G_fatal_error(_("No coordinates given"));
++          G_fatal_error("%s", _("No coordinates given"));
+       if (!G_scan_easting(parm.coor->answers[0], &lon1, G_projection())) {
+           G_usage();
+@@ -105,7 +105,7 @@
+     }
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     line_color = D_translate_color(parm.lcolor->answer);
+     if (!line_color)
+--- grass-6.4.3/display/d.save/main.c.orig     2011-04-23 11:52:13.000000000 +0200
++++ grass-6.4.3/display/d.save/main.c  2014-05-19 21:05:37.641461958 +0200
+@@ -159,7 +159,7 @@
+     if (stat)                 /* Check we have monitor */
+-      G_fatal_error(_("No monitor selected"));
++      G_fatal_error("%s", _("No monitor selected"));
+     total_rno = 0;
+     if (opt2->answers) {
+@@ -454,7 +454,7 @@
+           G_scan_northing(Nstr, &(Mwind->north), proj);
+           G_scan_northing(Sstr, &(Mwind->south), proj);
+           if ((err = G_adjust_Cell_head(Mwind, 1, 1))) {
+-              G_fatal_error(err);
++              G_fatal_error("%s", err);
+           }
+           G_format_resolution(Mwind->ew_res, EWRESstr, proj);
+           G_format_resolution(Mwind->ns_res, NSRESstr, proj);
+--- grass-6.4.3/display/d.text.new/main.c.orig 2011-04-23 11:52:13.000000000 +0200
++++ grass-6.4.3/display/d.text.new/main.c      2014-05-19 21:07:07.488126752 +0200
+@@ -272,7 +272,7 @@
+       (opt.line->answer && flag.m->answer) ||
+       (opt.at->answer && flag.m->answer) ||
+       (flag.p->answer && flag.g->answer))
+-      G_fatal_error(_("Please choose only one placement method"));
++      G_fatal_error("%s", _("Please choose only one placement method"));
+     text = opt.text->answer;
+@@ -292,7 +292,7 @@
+     bold = flag.b->answer;
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     if (opt.font->answer)
+@@ -306,10 +306,10 @@
+     D_setup(0);
+     if (D_get_cur_wind(win_name))
+-      G_fatal_error(_("No current window"));
++      G_fatal_error("%s", _("No current window"));
+     if (D_set_cur_wind(win_name))
+-      G_fatal_error(_("Current window not available"));
++      G_fatal_error("%s", _("Current window not available"));
+     /* figure out where to put text */
+     D_get_screen_window(&win.t, &win.b, &win.l, &win.r);
+@@ -342,7 +342,7 @@
+       if (get_coordinates(&x, &y, &east, &north,
+                           win, opt.at->answers, flag.m->answer,
+                           flag.p->answer, flag.g->answer))
+-          G_fatal_error(_("Invalid coordinates"));
++          G_fatal_error("%s", _("Invalid coordinates"));
+       orig_x = x;
+       orig_y = y;
+     }
+@@ -409,8 +409,8 @@
+     }
+     if (isatty(0))
+-      fprintf(stdout,
+-              _("\nPlease enter text instructions.  Enter EOF (ctrl-d) on last line to quit\n"));
++      fputs(
++              _("\nPlease enter text instructions.  Enter EOF (ctrl-d) on last line to quit\n"), stdout);
+     cmd_file = G_tempfile();
+     if ((cmd_fp = fopen(cmd_file, "w")) == NULL)
+@@ -629,9 +629,9 @@
+     double e, n;
+     if (mouse) {
+-      fprintf(stderr, _("Click!\n"));
+-      fprintf(stderr, _(" Left:    Place text here\n"));
+-      fprintf(stderr, _(" Right:   Quit\n"));
++      fputs(_("Click!\n"), stderr);
++      fputs(_(" Left:    Place text here\n"), stderr);
++      fputs(_(" Right:   Quit\n"), stderr);
+       R_get_location_with_pointer(x, y, &i);
+       i &= 0x0f;
+--- grass-6.4.3/display/d.thematic.area/main.c.orig    2014-05-19 21:08:18.424791940 +0200
++++ grass-6.4.3/display/d.thematic.area/main.c 2014-05-19 21:08:21.824791869 +0200
+@@ -221,9 +221,9 @@
+     Clist = Vect_new_cat_list();
+     Clist->field = atoi(field_opt->answer);
+     if (Clist->field < 1)
+-      G_fatal_error(_("'layer' must be > 0"));
++      G_fatal_error("%s", _("'layer' must be > 0"));
+     if ((fi = Vect_get_field(&Map, Clist->field)) == NULL)
+-      G_fatal_error(_("Database connection not defined"));
++      G_fatal_error("%s", _("Database connection not defined"));
+     if (fi != NULL) {
+       driver = db_start_driver(fi->driver);
+       if (driver == NULL)
+@@ -325,7 +325,7 @@
+     if (breaks_opt->answers) {
+       if (algo_opt->answer || nbclass_opt->answer)
+-          G_warning(_("You gave both manual breaks and a classification algorithm or a number of classes. The manual breaks have precedence and will thus be used."));
++          G_warning("%s", _("You gave both manual breaks and a classification algorithm or a number of classes. The manual breaks have precedence and will thus be used."));
+       /*Get class breaks */
+@@ -362,7 +362,7 @@
+       }
+       else {
+-          G_fatal_error(_("You must either give classbreaks or a classification algorithm"));
++          G_fatal_error("%s", _("You must either give classbreaks or a classification algorithm"));
+       }
+     };
+@@ -393,19 +393,19 @@
+     if (!nodraw_flag->answer) {
+       /* Now's let's prepare the actual plotting */
+       if (R_open_driver() != 0)
+-          G_fatal_error(_("No graphics device selected"));
++          G_fatal_error("%s", _("No graphics device selected"));
+       D_setup(0);
+       if (verbose)
+-          G_message(_("Plotting ..."));
++          G_message("%s", _("Plotting ..."));
+       Vect_get_map_box(&Map, &box);
+       if (window.north < box.S || window.south > box.N ||
+           window.east < box.W ||
+           window.west > G_adjust_easting(box.E, &window)) {
+-          G_message(_("The bounding box of the map is outside the current region, "
++          G_message("%s", _("The bounding box of the map is outside the current region, "
+                      "nothing drawn."));
+           stat = 0;
+       }
+--- grass-6.4.3/display/d.thematic.area/plot1.c.orig   2012-10-27 11:52:09.000000000 +0200
++++ grass-6.4.3/display/d.thematic.area/plot1.c        2014-06-03 21:19:39.964431715 +0200
+@@ -207,7 +207,7 @@
+       /* for reading RRR:GGG:BBB color strings from table */
+       if (rgb_column == NULL || *rgb_column == '\0')
+-          G_fatal_error(_("Color definition column not specified"));
++          G_fatal_error("%s", _("Color definition column not specified"));
+       db_CatValArray_init(&cvarr_rgb);
+@@ -235,7 +235,7 @@
+     if (width_column) {
+       if (*width_column == '\0')
+-          G_fatal_error(_("Line width column not specified."));
++          G_fatal_error("%s", _("Line width column not specified."));
+       db_CatValArray_init(&cvarr_width);
+@@ -291,7 +291,7 @@
+           ltype = Vect_read_next_line(Map, Points, Cats);
+           switch (ltype) {
+           case -1:
+-              fprintf(stderr, _("\nERROR: vector map - can't read\n"));
++              fputs(_("\nERROR: vector map - can't read\n"), stderr);
+               return -1;
+           case -2:            /* EOF */
+               return 0;
+--- grass-6.4.3/display/d.title/main.c.orig    2011-04-23 11:52:13.000000000 +0200
++++ grass-6.4.3/display/d.title/main.c 2014-05-19 21:08:44.298124734 +0200
+@@ -94,10 +94,10 @@
+     type = fancy_mode->answer ? FANCY : NORMAL;
+     if (fancy_mode->answer && simple_mode->answer)
+-      G_fatal_error(_("Title can be fancy or simple, not both"));
++      G_fatal_error("%s", _("Title can be fancy or simple, not both"));
+     if (!strlen(map_name))
+-      G_fatal_error(_("No map name given"));
++      G_fatal_error("%s", _("No map name given"));
+     /* Make sure map is available */
+     mapset = G_find_cell(map_name, "");
+--- grass-6.4.3/display/d.vect/dir.c.orig      2014-05-19 21:09:01.058124385 +0200
++++ grass-6.4.3/display/d.vect/dir.c   2014-05-19 21:09:03.781457661 +0200
+@@ -28,7 +28,7 @@
+       ltype = Vect_read_next_line(Map, Points, Cats);
+       switch (ltype) {
+       case -1:
+-          G_fatal_error(_("Can't read vector map"));
++          G_fatal_error("%s", _("Can't read vector map"));
+       case -2:                /* EOF */
+           return 0;
+       }
+--- grass-6.4.3/display/d.vect/attr.c.orig     2012-06-09 11:52:08.000000000 +0200
++++ grass-6.4.3/display/d.vect/attr.c  2014-06-03 21:20:36.491097200 +0200
+@@ -27,7 +27,7 @@
+     G_debug(2, "attr()");
+     if (attrcol == NULL || *attrcol == '\0') {
+-      G_fatal_error(_("attrcol not specified, cannot display attributes"));
++      G_fatal_error("%s", _("attrcol not specified, cannot display attributes"));
+     }
+     Points = Vect_new_line_struct();
+@@ -50,7 +50,7 @@
+     while (1) {
+       ltype = Vect_read_next_line(Map, Points, Cats);
+       if (ltype == -1)
+-          G_fatal_error(_("Can't read vector map"));
++          G_fatal_error("%s", _("Can't read vector map"));
+       else if (ltype == -2)
+           break;
+       
+--- grass-6.4.3/display/d.vect/label.c.orig    2012-06-09 11:52:08.000000000 +0200
++++ grass-6.4.3/display/d.vect/label.c 2014-06-05 21:28:47.830818601 +0200
+@@ -25,7 +25,7 @@
+       ltype = Vect_read_next_line(Map, Points, Cats);
+       switch (ltype) {
+       case -1:
+-          G_fatal_error(_("Can't read vector map"));
++          G_fatal_error("%s", _("Can't read vector map"));
+       case -2:                /* EOF */
+           return 0;
+       }
+--- grass-6.4.3/display/d.vect/topo.c.orig     2012-06-09 11:52:08.000000000 +0200
++++ grass-6.4.3/display/d.vect/topo.c  2014-06-08 08:33:17.813052560 +0200
+@@ -36,7 +36,7 @@
+       G_debug(3, "ltype = %d", ltype);
+       switch (ltype) {
+       case -1:
+-          fprintf(stderr, _("\nERROR: vector map - can't read\n"));
++          fputs(_("\nERROR: vector map - can't read\n"), stderr);
+           return -1;
+       case -2:                /* EOF */
+           return 0;
+--- grass-6.4.3/display/d.vect/main.c.orig     2012-07-14 11:52:05.000000000 +0200
++++ grass-6.4.3/display/d.vect/main.c  2014-06-08 10:11:11.272930140 +0200
+@@ -364,7 +364,7 @@
+     /* please remove -v flag before GRASS 7 released */
+     if (verbose_flag->answer) {
+       G_putenv("GRASS_VERBOSE", "3");
+-      G_warning(_("The '-v' flag is superseded and will be removed "
++      G_warning("%s", _("The '-v' flag is superseded and will be removed "
+                   "in future. Please use '--verbose' instead."));
+     }
+     /* but keep this */
+@@ -374,7 +374,7 @@
+     G_get_set_window(&window);
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     /* Read map options */
+@@ -384,7 +384,7 @@
+       minreg = atof(minreg_opt->answer);
+       if (reg < minreg) {
+-          G_message(_("Region size is lower than minreg, nothing displayed."));
++          G_message("%s", _("Region size is lower than minreg, nothing displayed."));
+           D_add_to_list(G_recreate_command());
+           exit(EXIT_SUCCESS);
+       }
+@@ -393,7 +393,7 @@
+       maxreg = atof(maxreg_opt->answer);
+       if (reg > maxreg) {
+-          G_message(_("Region size is greater than maxreg, nothing displayed."));
++          G_message("%s", _("Region size is greater than maxreg, nothing displayed."));
+           D_add_to_list(G_recreate_command());
+           exit(EXIT_SUCCESS);
+       }
+@@ -408,7 +408,7 @@
+     if (table_acolors_flag->answer && cats_acolors_flag->answer) {
+       cats_acolors_flag->answer = '\0';
+-      G_warning(_("The '-c' and '-a' flags cannot be used together, "
++      G_warning("%s", _("The '-c' and '-a' flags cannot be used together, "
+                   "the '-c' flag will be ignored!"));
+     }
+@@ -460,10 +460,10 @@
+     if (where_opt->answer) {
+       if (Clist->field < 1)
+-          G_fatal_error(_("'layer' must be > 0 for 'where'."));
++          G_fatal_error("%s", _("'layer' must be > 0 for 'where'."));
+       chcat = 1;
+       if ((fi = Vect_get_field(&Map, Clist->field)) == NULL)
+-          G_fatal_error(_("Database connection not defined"));
++          G_fatal_error("%s", _("Database connection not defined"));
+       if (fi != NULL) {
+           driver = db_start_driver(fi->driver);
+           if (driver == NULL)
+@@ -487,7 +487,7 @@
+     }
+     else if (cat_opt->answer) {
+       if (Clist->field < 1)
+-          G_fatal_error(_("'layer' must be > 0 for 'cats'."));
++          G_fatal_error("%s", _("'layer' must be > 0 for 'cats'."));
+       chcat = 1;
+       ret = Vect_str_to_cat_list(cat_opt->answer, Clist);
+       if (ret > 0)
+@@ -580,7 +580,7 @@
+                D_get_d_west(), D_get_d_east(), D_move_abs, D_cont_abs);
+     if (verbose)
+-      G_message(_("Plotting ..."));
++      G_message("%s", _("Plotting ..."));
+     if (level >= 2)
+       Vect_get_map_box(&Map, &box);
+@@ -588,7 +588,7 @@
+     if (level >= 2 && (window.north < box.S || window.south > box.N ||
+                      window.east < box.W ||
+                      window.west > G_adjust_easting(box.E, &window))) {
+-      G_message(_("The bounding box of the map is outside the current region, "
++      G_message("%s", _("The bounding box of the map is outside the current region, "
+                  "nothing drawn."));
+       stat = 0;
+     }
+@@ -622,12 +622,12 @@
+                   D_line_width(default_width);
+           }
+           else
+-              G_warning(_("Unable to display areas, topology not available"));
++              G_warning("%s", _("Unable to display areas, topology not available"));
+       }
+       if (display & DISP_SHAPE) {
+           if (id_flag->answer && level < 2) {
+-              G_warning(_("Unable to display lines by id, topology not available"));
++              G_warning("%s", _("Unable to display lines by id, topology not available"));
+           }
+           else {
+               stat = plot1(&Map, type, Clist,
+@@ -670,7 +670,7 @@
+           if (level >= 2)
+               stat = topo(&Map, type, &lattr);
+           else
+-              G_warning(_("Unable to display topology, not available"));
++              G_warning("%s", _("Unable to display topology, not available"));
+       }
+     }
+--- grass-6.4.3/display/d.vect.chart/main.c.orig       2008-11-25 02:31:46.000000000 +0100
++++ grass-6.4.3/display/d.vect.chart/main.c    2014-05-19 21:09:29.091457134 +0200
+@@ -254,7 +254,7 @@
+       ctype = CTYPE_BAR;
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     /* should we plot the maximum reference on bar plots? */
+     if (max_reference_opt->answer != NULL) {
+--- grass-6.4.3/display/d.vect/area.c.orig     2012-03-17 10:52:03.000000000 +0100
++++ grass-6.4.3/display/d.vect/area.c  2014-06-07 22:20:14.877152566 +0200
+@@ -69,7 +69,7 @@
+           if (open_db)
+               db_close_database_shutdown_driver(driver);
+-          G_fatal_error(_("Color definition column not specified."));
++          G_fatal_error("%s", _("Color definition column not specified."));
+       }
+       db_CatValArray_init(&cvarr_rgb);
+@@ -110,7 +110,7 @@
+           if (open_db)
+               db_close_database_shutdown_driver(driver);
+           
+-          G_fatal_error(_("Line width column not specified."));
++          G_fatal_error("%s", _("Line width column not specified."));
+       }
+       
+       db_CatValArray_init(&cvarr_width);
+--- grass-6.4.3/display/d.vect/plot1.c.orig    2012-10-27 11:52:09.000000000 +0200
++++ grass-6.4.3/display/d.vect/plot1.c 2014-06-08 10:51:14.689546711 +0200
+@@ -219,7 +219,7 @@
+           if (open_db)
+               db_close_database_shutdown_driver(driver);
+           
+-          G_fatal_error(_("Color definition column not specified"));
++          G_fatal_error("%s", _("Color definition column not specified"));
+       }
+       db_CatValArray_init(&cvarr_rgb);
+@@ -258,7 +258,7 @@
+           if (open_db)
+               db_close_database_shutdown_driver(driver);
+-          G_fatal_error(_("Line width column not specified."));
++          G_fatal_error("%s", _("Line width column not specified."));
+       }
+       db_CatValArray_init(&cvarr_width);
+@@ -301,7 +301,7 @@
+           if (open_db)
+               db_close_database_shutdown_driver(driver);
+-          G_fatal_error(_("Symbol size column not specified."));
++          G_fatal_error("%s", _("Symbol size column not specified."));
+       }
+       
+       db_CatValArray_init(&cvarr_size);
+@@ -344,7 +344,7 @@
+           if (open_db)
+               db_close_database_shutdown_driver(driver);
+-          G_fatal_error(_("Symbol rotation column not specified."));
++          G_fatal_error("%s", _("Symbol rotation column not specified."));
+       }
+       
+       db_CatValArray_init(&cvarr_rot);
+@@ -385,7 +385,7 @@
+     if( !(nrec_size || nrec_rot) ) {
+       Symb = S_read(symbol_name);
+       if (Symb == NULL)
+-          G_warning(_("Unable to read symbol, unable to display points"));
++          G_warning("%s", _("Unable to read symbol, unable to display points"));
+       else
+           S_stroke(Symb, (int)(size + 0.5), 0.0, 0);
+     }
+@@ -416,7 +416,7 @@
+       else {
+           ltype = Vect_read_next_line(Map, Points, Cats);
+           if (ltype == -1) {
+-              G_fatal_error(_("Unable to read vector map"));
++              G_fatal_error("%s", _("Unable to read vector map"));
+           }
+           else if (ltype == -2) { /* EOF */
+               break;
+@@ -686,7 +686,7 @@
+                   G_free(Symb);
+               Symb = S_read(symbol_name);
+               if (Symb == NULL)
+-                  G_warning(_("Unable to read symbol, unable to display points"));
++                  G_warning("%s", _("Unable to read symbol, unable to display points"));
+               else
+                   S_stroke(Symb, (int)(var_size + 0.5), rotation, 0);
+           }
+--- grass-6.4.3/display/d.what.rast/what.c.orig        2012-09-01 11:52:29.000000000 +0200
++++ grass-6.4.3/display/d.what.rast/what.c     2014-05-19 21:09:45.544790124 +0200
+@@ -54,7 +54,7 @@
+       G_set_d_null_value(&null_dcell, 1);
+       for (i = 0; i < nrasts; i++) {
+           if (row < 0 || row >= nrows || col < 0 || col >= ncols) {
+-              G_message(_("You are clicking outside the map"));
++              G_message("%s", _("You are clicking outside the map"));
+               continue;
+           }
+           if (G_get_c_raster_row(fd[i], buf, row) < 0)
+--- grass-6.4.3/display/d.what.rast/main.c.orig        2012-09-01 11:52:29.000000000 +0200
++++ grass-6.4.3/display/d.what.rast/main.c     2014-06-03 21:21:37.701095925 +0200
+@@ -113,28 +113,28 @@
+       rast = opt1->answers;
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     if (D_get_cur_wind(temp))
+-      G_fatal_error(_("No current graphics window"));
++      G_fatal_error("%s", _("No current graphics window"));
+     if (D_set_cur_wind(temp))
+-      G_fatal_error(_("Current graphics window not available"));
++      G_fatal_error("%s", _("Current graphics window not available"));
+     /* Read in the map window associated with window */
+     G_get_window(&window);
+     if (D_check_map_window(&window))
+-      G_fatal_error(_("Setting graphics window"));
++      G_fatal_error("%s", _("Setting graphics window"));
+     if (G_set_window(&window) == -1)
+-      G_fatal_error(_("Can't set current graphics window"));
++      G_fatal_error("%s", _("Can't set current graphics window"));
+     /* Determine conversion factors */
+     if (D_get_screen_window(&t, &b, &l, &r))
+-      G_fatal_error(_("Getting graphics window coordinates"));
++      G_fatal_error("%s", _("Getting graphics window coordinates"));
+     if (D_do_conversions(&window, t, b, l, r))
+-      G_fatal_error(_("Error in calculating conversions"));
++      G_fatal_error("%s", _("Error in calculating conversions"));
+     width = mwidth = 0;
+     if (rast) {
+--- grass-6.4.3/display/d.what.vect/what.c.orig        2009-04-18 11:52:33.000000000 +0200
++++ grass-6.4.3/display/d.what.vect/what.c     2014-05-19 21:12:15.348120335 +0200
+@@ -176,9 +176,9 @@
+           if (line + area == 0) {
+               if (txt) {
+-                  fprintf(stdout, _("Nothing Found.\n"));
++                  fputs(_("Nothing Found.\n"), stdout);
+                   if (notty)
+-                      fprintf(stderr, _("Nothing Found.\n"));
++                      fputs(_("Nothing Found.\n"), stderr);
+                   nlines++;
+               }
+               continue;
+@@ -349,10 +349,10 @@
+               }
+               else {
+                   if (txt) {
+-                      fprintf(stdout, _("Area\n"));
++                      fputs(_("Area\n"), stdout);
+                   }
+                   else {
+-                      sprintf(buf, "feature type: Area<BR>");
++                      strcpy(buf, "feature type: Area<BR>");
+                       db_append_string(&html, buf);
+                   }
+               }
+@@ -442,8 +442,8 @@
+                   Fi = Vect_get_field(&(Map[i]), Cats->field[j]);
+                   if (Fi == NULL) {
+                       if (txt) {
+-                          fprintf(stdout,
+-                                  _("Database connection not defined"));
++                          fputs(
++                                  _("Database connection not defined"), stdout);
+                       }
+                       else {
+                           db_append_string(&html,
+@@ -494,7 +494,7 @@
+           fflush(stdout);
+           if (!txt && !topo) {
+               db_append_string(&html, "</BODY></HTML>");
+-              G_debug(3, db_get_string(&html));
++              G_debug(3, "%s", db_get_string(&html));
+               F_open(title, db_get_string(&html));
+           }
+@@ -520,20 +520,20 @@
+ int show_buttons(int once, int flash)
+ {
+     if (once) {
+-      fprintf(stderr, _("\nClick mouse button on desired location\n\n"));
++      fputs(_("\nClick mouse button on desired location\n\n"), stderr);
+       nlines = 3;
+     }
+     else if (nlines >= 18) {  /* display prompt every screen full */
+-      fprintf(stderr, "\n");
+-      fprintf(stderr, _("Buttons\n"));
+-      fprintf(stderr, _(" Left:  what's here\n"));
++      fputs("\n", stderr);
++      fputs(_("Buttons\n"), stderr);
++      fputs(_(" Left:  what's here\n"), stderr);
+       if (flash) {
+-          fprintf(stderr, _(" Middle: toggle flash color\n"));
++          fputs(_(" Middle: toggle flash color\n"), stderr);
+           nlines = 5;
+       }
+       else
+           nlines = 4;
+-      fprintf(stderr, _(" Right: quit\n"));
++      fputs(_(" Right: quit\n"), stderr);
+     }
+     return 0;
+--- grass-6.4.3/display/d.what.vect/main.c.orig        2013-04-20 11:52:17.000000000 +0200
++++ grass-6.4.3/display/d.what.vect/main.c     2014-06-03 21:22:14.874428485 +0200
+@@ -151,13 +151,13 @@
+               G_fatal_error(_("%s: You must build topology on vector map"),
+                             vect[i]);
+-          G_message(_("Building spatial index..."));
++          G_message("%s", _("Building spatial index..."));
+           Vect_build_spatial_index(&Map[i]);
+       }
+     }
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     D_setup(0);
+     what(once->answer, txt->answer, terse->answer, flash->answer,
+@@ -169,6 +169,6 @@
+     R_close_driver();
+     R_pad_freelist(vect, nvects);
+-    G_message(_("Done."));
++    G_message("%s", _("Done."));
+     exit(EXIT_SUCCESS);
+ }
+--- grass-6.4.3/display/d.where/main.c.orig    2013-04-20 11:52:17.000000000 +0200
++++ grass-6.4.3/display/d.where/main.c 2014-05-19 21:13:05.828119283 +0200
+@@ -74,10 +74,10 @@
+       exit(EXIT_FAILURE);
+     if (latlong->answer && wgs84->answer)
+-      G_fatal_error(_("Ambiguous request for lat/long ellipsoids"));
++      G_fatal_error("%s", _("Ambiguous request for lat/long ellipsoids"));
+     if (decimal->answer && !(latlong->answer || wgs84->answer))
+-      G_fatal_error(_("Please specify a lat/long ellipsoid with -l or -w"));
++      G_fatal_error("%s", _("Please specify a lat/long ellipsoid with -l or -w"));
+     if (((G_projection() == PROJECTION_LL) && wgs84->answer) ||
+       ((G_projection() != PROJECTION_LL) &&
+@@ -90,20 +90,20 @@
+       /* read current projection info */
+       if ((in_proj_info = G_get_projinfo()) == NULL)
+-          G_fatal_error(_("Can't get projection info of current location"));
++          G_fatal_error("%s", _("Can't get projection info of current location"));
+       if ((in_unit_info = G_get_projunits()) == NULL)
+-          G_fatal_error(_("Can't get projection units of current location"));
++          G_fatal_error("%s", _("Can't get projection units of current location"));
+       if (pj_get_kv(&iproj, in_proj_info, in_unit_info) < 0)
+-          G_fatal_error(_("Can't get projection key values of current location"));
++          G_fatal_error("%s", _("Can't get projection key values of current location"));
+       if (!wgs84->answer) {
+           /* Set output to same ellipsoid as input if we're not looking
+            * for the WGS84 values */
+           if (GPJ_get_equivalent_latlong(&oproj, &iproj) < 0)
+-              G_fatal_error(_("Unable to set up lat/long projection parameters"));
++              G_fatal_error("%s", _("Unable to set up lat/long projection parameters"));
+       }
+       else {
+@@ -119,7 +119,7 @@
+            * the WGS84 values would be meaningless), and if they are set the 
+            * output datum to WGS84 */
+           if (G_get_datumparams_from_projinfo(in_proj_info, buff, dum) < 0)
+-              G_fatal_error(_("WGS84 output not possible as this location does not contain\n"
++              G_fatal_error("%s", _("WGS84 output not possible as this location does not contain\n"
+                              "datum transformation parameters. Try running g.setproj."));
+           else
+               G_set_key_value("datum", "wgs84", out_proj_info);
+@@ -129,7 +129,7 @@
+           G_set_key_value("meters", "1.0", out_unit_info);
+           if (pj_get_kv(&oproj, out_proj_info, out_unit_info) < 0)
+-              G_fatal_error(_("Unable to set up lat/long projection parameters"));
++              G_fatal_error("%s", _("Unable to set up lat/long projection parameters"));
+           G_free_key_value(out_proj_info);
+           G_free_key_value(out_unit_info);
+@@ -141,7 +141,7 @@
+     }
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     D_setup(0);
+     where_am_i(once->answer, have_spheroid, decimal->answer, wgs84->answer,
+              dcoord->answer);
+--- grass-6.4.3/display/d.zoom/redraw.c.orig   2008-11-25 02:31:47.000000000 +0100
++++ grass-6.4.3/display/d.zoom/redraw.c        2014-05-23 18:15:05.887805169 +0200
+@@ -36,7 +36,7 @@
+     }
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     D_setup(0);
+     return 0;
+--- grass-6.4.3/display/d.zoom/zoom.c.orig     2008-11-25 02:31:47.000000000 +0100
++++ grass-6.4.3/display/d.zoom/zoom.c  2014-06-03 21:23:54.654426405 +0200
+@@ -12,10 +12,10 @@
+     while (!end) {
+       if (printmenu) {
+-          fprintf(stderr, _("\n\nButtons:\n"));
+-          fprintf(stderr, _("Left:   Zoom menu\n"));
+-          fprintf(stderr, _("Middle: Pan\n"));
+-          fprintf(stderr, _("Right:  Quit menu\n"));
++          fputs(_("\n\nButtons:\n"), stderr);
++          fputs(_("Left:   Zoom menu\n"), stderr);
++          fputs(_("Middle: Pan\n"), stderr);
++          fputs(_("Right:  Quit menu\n"), stderr);
+           printmenu = 0;
+       }
+--- grass-6.4.3/display/d.zoom/pan.c.orig      2008-11-25 02:31:47.000000000 +0100
++++ grass-6.4.3/display/d.zoom/pan.c   2014-06-05 21:29:16.287484674 +0200
+@@ -14,9 +14,9 @@
+     while (!end) {
+       if (printmenu) {
+-          fprintf(stderr, _("\n\nButtons:\n"));
+-          fprintf(stderr, _("Left:   Pan\n"));
+-          fprintf(stderr, _("Right:  Quit\n"));
++          fputs(_("\n\nButtons:\n"), stderr);
++          fputs(_("Left:   Pan\n"), stderr);
++          fputs(_("Right:  Quit\n"), stderr);
+           printmenu = 0;
+       }
+--- grass-6.4.3/display/d.zoom/main.c.orig     2013-04-20 11:52:18.000000000 +0200
++++ grass-6.4.3/display/d.zoom/main.c  2014-06-07 22:21:05.250484850 +0200
+@@ -142,7 +142,7 @@
+       exit(EXIT_FAILURE);
+     if ((full->answer + pan->answer + hand->answer) > 1)
+-      G_fatal_error(_("Please choose only one mode of operation"));
++      G_fatal_error("%s", _("Please choose only one mode of operation"));
+     sscanf(zoom->answer, "%lf", &magnify);
+@@ -155,12 +155,12 @@
+     cmd = NULL;
+     if (!just->answer) {
+       if (R_open_driver() != 0)
+-          G_fatal_error(_("No graphics device selected"));
++          G_fatal_error("%s", _("No graphics device selected"));
+       stat = R_pad_get_item("list", &list, &nlists);
+       R_close_driver();
+       if (stat || !nlists) {
+-          G_message(_("ERROR: can not get \"list\" items"));
+-          G_message(_("-j flag forced"));
++          G_message("%s", _("ERROR: can not get \"list\" items"));
++          G_message("%s", _("-j flag forced"));
+           just->answer = 1;
+       }
+       else {
+@@ -193,7 +193,7 @@
+     /* Make sure map is available */
+     if (rmap->required == YES && rmap->answers == NULL)
+-      G_fatal_error(_("No map is displayed in GRASS monitor"));
++      G_fatal_error("%s", _("No map is displayed in GRASS monitor"));
+     if (rast) {
+@@ -290,7 +290,7 @@
+ #endif
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     D_setup(0);
+@@ -304,11 +304,11 @@
+       map = G_find_file("windows", "previous_zoom", "");
+       if (!map)
+-          G_fatal_error(_("No previous zoom available"));
++          G_fatal_error("%s", _("No previous zoom available"));
+       G__get_window(&tmpwin, "windows", "previous_zoom", map);
+-      G_message(_("Returning to previous zoom"));
++      G_message("%s", _("Returning to previous zoom"));
+       ux1 = tmpwin.east;
+       ux2 = tmpwin.west;
+@@ -349,6 +349,6 @@
+     if (vect)
+       R_pad_freelist(vect, nvects);
+-    G_message(_("Zooming complete."));
++    G_message("%s", _("Zooming complete."));
+     exit(stat);
+ }
+--- grass-6.4.3/display/d.frame/select.c.orig  2008-11-25 02:31:48.000000000 +0100
++++ grass-6.4.3/display/d.frame/select.c       2014-06-11 18:02:07.603605317 +0200
+@@ -33,7 +33,7 @@
+       exit(EXIT_FAILURE);
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     if (frame->answer) {
+       stat = D_set_cur_wind(frame->answer);
+@@ -48,10 +48,10 @@
+     /* Save current frame just in case */
+     D_get_cur_wind(orig_name);
+-    fprintf(stderr, _("\nButtons:\n"));
+-    fprintf(stderr, _("Left:   Select frame\n"));
+-    fprintf(stderr, _("Middle: Keep original frame\n"));
+-    fprintf(stderr, _("Right:  Accept frame\n"));
++    fputs(_("\nButtons:\n"), stderr);
++    fputs(_("Left:   Select frame\n"), stderr);
++    fputs(_("Middle: Keep original frame\n"), stderr);
++    fputs(_("Right:  Accept frame\n"), stderr);
+     button = ident_win(cur_name);
+--- grass-6.4.3/display/d.frame/list.c.orig    2008-11-25 02:31:48.000000000 +0100
++++ grass-6.4.3/display/d.frame/list.c 2014-06-11 18:02:31.410271491 +0200
+@@ -20,7 +20,7 @@
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     R_pad_list(&pads, &npads);
+--- grass-6.4.3/display/d.frame/frame.c.orig   2014-06-11 18:02:56.876937622 +0200
++++ grass-6.4.3/display/d.frame/frame.c        2014-06-11 18:02:59.500270902 +0200
+@@ -126,7 +126,7 @@
+     if (flag.erase->answer) {
+       if (R_open_driver() != 0)
+-          G_fatal_error(_("No graphics device selected"));
++          G_fatal_error("%s", _("No graphics device selected"));
+       if (!create)
+           D_full_screen();
+@@ -180,7 +180,7 @@
+     if (print) {
+       if (R_open_driver() != 0)
+-          G_fatal_error(_("No graphics device selected"));
++          G_fatal_error("%s", _("No graphics device selected"));
+       D_get_cur_wind(buf);
+       D_set_cur_wind(buf);
+       R_close_driver();
+@@ -220,7 +220,7 @@
+     int p;
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     R_pad_list(&pads, &npads);
+--- grass-6.4.3/display/d.mon/pgms/release.c.orig      2008-11-25 02:31:48.000000000 +0100
++++ grass-6.4.3/display/d.mon/pgms/release.c   2014-06-11 18:03:25.030270370 +0200
+@@ -33,7 +33,7 @@
+               /* Please remove before GRASS 7 is released */
+           case 'v':
+               G_set_verbose(G_verbose_max());
+-              G_warning(_("The '-v' flag is superseded and will be removed "
++              G_warning("%s", _("The '-v' flag is superseded and will be removed "
+                           "in future. Please use '--verbose' instead."));
+               ;
+               break;
+@@ -74,7 +74,7 @@
+           G_warning(_("No such monitor as <%s>"), monitor);
+           break;
+       default:                /* couldn't access lock file? */
+-          G_warning(_("Failed testing lock mechanism"));
++          G_warning("%s", _("Failed testing lock mechanism"));
+           break;
+       }
+     }
+--- grass-6.4.3/display/d.mon/pgms/stop.c.orig 2014-06-11 18:03:48.626936547 +0200
++++ grass-6.4.3/display/d.mon/pgms/stop.c      2014-06-11 18:03:52.340269803 +0200
+@@ -79,7 +79,7 @@
+       G_warning(_("Error - Monitor '%s' in use by another user"), name);
+       break;
+     default:
+-      G_warning(_("Error - Locking mechanism failed"));
++      G_warning("%s", _("Error - Locking mechanism failed"));
+       break;
+     }
+     if (unset)
+--- grass-6.4.3/general/g.access/set_perms.c.orig      2010-09-25 11:52:08.000000000 +0200
++++ grass-6.4.3/general/g.access/set_perms.c   2014-05-23 18:15:34.001137917 +0200
+@@ -23,7 +23,7 @@
+     if (chmod(path, perms) == 0)
+       fprintf(stdout, "%s\n", explain_perms(group, other, 0));
+     else
+-      G_fatal_error(_("Unable to change mapset permissions"));
++      G_fatal_error("%s", _("Unable to change mapset permissions"));
+     return 0;
+ }
+--- grass-6.4.3/general/g.access/main.c.orig   2013-04-20 11:52:24.000000000 +0200
++++ grass-6.4.3/general/g.access/main.c        2014-06-03 21:25:43.724424132 +0200
+@@ -64,11 +64,11 @@
+     /* this part is until PERMANENT no longer holds DEFAULT_WIND and MYNAME */
+     if (strcmp(G_mapset(), "PERMANENT") == 0)
+-      G_fatal_error(_("Access to the PERMANENT mapset must be open, nothing changed"));
++      G_fatal_error("%s", _("Access to the PERMANENT mapset must be open, nothing changed"));
+     /* get the current permissions */
+     if (get_perms(path, &perms, &group, &other) < 0)
+-      G_fatal_error(_("Unable to determine mapset permissions"));
++      G_fatal_error("%s", _("Unable to determine mapset permissions"));
+     if (group_opt->answer) {
+       if (group_opt->answer[0] == 'g')
+--- grass-6.4.3/general/g.gisenv/main.c.orig   2013-04-20 11:52:24.000000000 +0200
++++ grass-6.4.3/general/g.gisenv/main.c        2014-05-23 18:15:52.187804204 +0200
+@@ -73,7 +73,7 @@
+       exit(EXIT_FAILURE);
+     if (flag_s->answer && flag_n->answer)
+-      G_fatal_error(_("-s and -n are mutually exclusive"));
++      G_fatal_error("%s", _("-s and -n are mutually exclusive"));
+     /* Print or optionally set environment variables */
+     if (!get->answer && !set->answer) {
+--- grass-6.4.3/general/g.mapset/main.c.orig   2010-10-30 11:52:08.000000000 +0200
++++ grass-6.4.3/general/g.mapset/main.c        2014-05-23 18:16:55.464469552 +0200
+@@ -90,7 +90,7 @@
+       exit(EXIT_FAILURE);
+     if (!mapset_opt->answer && !f_list->answer)
+-      G_fatal_error(_("Either mapset= or -l must be used"));
++      G_fatal_error("%s", _("Either mapset= or -l must be used"));
+     /* Store original values */
+     gisdbase_old = G__getenv("GISDBASE");
+@@ -144,7 +144,7 @@
+     ret = G__mapset_permissions2(gisdbase_new, location_new, mapset_new);
+     switch (ret) {
+     case 0:
+-      G_fatal_error(_("You don't have permission to use this mapset"));
++      G_fatal_error("%s", _("You don't have permission to use this mapset"));
+       break;
+     case -1:
+       if (f_add->answer == TRUE) {
+@@ -153,7 +153,7 @@
+           G_make_mapset(gisdbase_new, location_new, mapset_new);
+       }
+       else
+-          G_fatal_error(_("The mapset does not exist. Use -c flag to create it."));
++          G_fatal_error("%s", _("The mapset does not exist. Use -c flag to create it."));
+       break;
+     default:
+       break;
+@@ -162,12 +162,12 @@
+     /* Check if the mapset is in use */
+     gis_lock = getenv("GIS_LOCK");
+     if (!gis_lock)
+-      G_fatal_error(_("Unable to read GIS_LOCK environment variable"));
++      G_fatal_error("%s", _("Unable to read GIS_LOCK environment variable"));
+     G_asprintf(&lock_prog, "%s/etc/lock", G_gisbase());
+     sprintf(path, "%s/.gislock", mapset_new_path);
+-    G_debug(2, path);
++    G_debug(2, "%s", path);
+     ret = G_spawn(lock_prog, lock_prog, path, gis_lock, NULL);
+     G_debug(2, "lock result = %d", ret);
+@@ -180,7 +180,7 @@
+                     G_whoami());
+     /* Erase monitors */
+-    G_message(_("Erasing monitors..."));
++    G_message("%s", _("Erasing monitors..."));
+     while ((cap = R_parse_monitorcap(MON_NEXT, "")) != NULL) {
+       G__setenv("MONITOR", cap->name);
+       R__open_quiet();
+@@ -196,7 +196,7 @@
+     /* Clean temporary directory */
+     sprintf(path, "%s/etc/clean_temp", G_gisbase());
+-    G_verbose_message(_("Cleaning up temporary files..."));
++    G_verbose_message("%s", _("Cleaning up temporary files..."));
+     G_spawn(path, "clean_temp", NULL);
+     /* Reset variables */
+@@ -210,7 +210,7 @@
+     G_free(mapset_old_path);
+-    G_important_message(_("Your shell continues to use the history for the old mapset"));
++    G_important_message("%s", _("Your shell continues to use the history for the old mapset"));
+     if ((shell = getenv("SHELL"))) {
+       if (strstr(shell, "bash")) {
+--- grass-6.4.3/general/g.mapsets/dsply_maps.c.orig    2010-10-30 11:52:08.000000000 +0200
++++ grass-6.4.3/general/g.mapsets/dsply_maps.c 2014-05-23 18:17:55.604468298 +0200
+@@ -20,7 +20,7 @@
+ {
+     int n;
+-    fprintf(stdout, _("Available mapsets:"));
++    fputs(_("Available mapsets:"), stdout);
+     for (n = 0; n < nmapsets; n++) {
+       if (n % 4)
+           fprintf(stdout, " ");
+@@ -30,7 +30,7 @@
+     }
+     fprintf(stdout, "\n");
+     if (nmapsets == 0)
+-      fprintf(stdout, _("** no mapsets **\n"));
++      fputs(_("** no mapsets **\n"), stdout);
+     fprintf(stdout, "\n");
+     return 0;
+--- grass-6.4.3/general/g.mapsets/dsply_path.c.orig    2010-10-30 11:52:08.000000000 +0200
++++ grass-6.4.3/general/g.mapsets/dsply_path.c 2014-06-03 21:26:24.111089955 +0200
+@@ -27,7 +27,7 @@
+     /* account for largest mapset number in offset value */
+     for (n = nmapsets; n /= 10; offset++) ;
+-    fprintf(stdout, _("Your mapset search list:\n"));
++    fputs(_("Your mapset search list:\n"), stdout);
+     
+     nleft = 78;
+     for (n = 0; (name = G__mapset_name(n)); n++) {
+--- grass-6.4.3/general/g.mapsets/main.c.orig  2013-04-20 11:52:24.000000000 +0200
++++ grass-6.4.3/general/g.mapsets/main.c       2014-06-05 21:31:09.227482320 +0200
+@@ -219,7 +219,7 @@
+     fp = G_fopen_new("", "SEARCH_PATH");
+     if (!fp)
+-      G_fatal_error(_("Cannot open SEARCH_PATH for write"));
++      G_fatal_error("%s", _("Cannot open SEARCH_PATH for write"));
+     cur_mapset = G_mapset();
+--- grass-6.4.3/general/g.message/main.c.orig  2013-04-20 11:52:24.000000000 +0200
++++ grass-6.4.3/general/g.message/main.c       2014-05-23 18:18:17.387801178 +0200
+@@ -88,7 +88,7 @@
+     if (fatal->answer + warning->answer + debug_flag->answer +
+       verbose->answer > 1)
+-      G_fatal_error(_("Select only one message level"));
++      G_fatal_error("%s", _("Select only one message level"));
+     debug_level = atoi(debug_opt->answer);
+     
+@@ -101,7 +101,7 @@
+       i = n = s = -1;
+       sscanf(message->answer, "%d %d %d", &i, &n, &s);
+       if (s == -1) 
+-          G_fatal_error(_("Unable to parse input message"));
++          G_fatal_error("%s", _("Unable to parse input message"));
+       G_percent(i, n, s);
+     }
+     else if (debug_flag->answer)
+--- grass-6.4.3/general/g.mlist/main.c.orig    2011-06-18 11:52:04.000000000 +0200
++++ grass-6.4.3/general/g.mlist/main.c 2014-05-23 18:18:48.901133854 +0200
+@@ -160,7 +160,7 @@
+     G_free(buf);
+     if (flag.regex->answer && flag.extended->answer)
+-      G_fatal_error(_("-r and -e are mutually exclusive"));
++      G_fatal_error("%s", _("-r and -e are mutually exclusive"));
+     if (opt.pattern->answer) {
+       if (flag.regex->answer || flag.extended->answer)
+--- grass-6.4.3/general/g.mremove/main.c.orig  2008-11-25 02:31:50.000000000 +0100
++++ grass-6.4.3/general/g.mremove/main.c       2014-05-23 18:21:15.467797466 +0200
+@@ -101,10 +101,10 @@
+       exit(EXIT_FAILURE);
+     if (flag.regex->answer && flag.extended->answer)
+-      G_fatal_error(_("-r and -e are mutually exclusive"));
++      G_fatal_error("%s", _("-r and -e are mutually exclusive"));
+     if (!flag.force->answer)
+-      G_message(_("The following files would be deleted:"));
++      G_message("%s", _("The following files would be deleted:"));
+     for (n = 0; n < nlist; n++) {
+       o = opt[n];
+@@ -155,7 +155,7 @@
+     if (!flag.force->answer) {
+       G_message(" ");
+-      G_message(_("You must use the force flag to actually remove them. Exiting."));
++      G_message("%s", _("You must use the force flag to actually remove them. Exiting."));
+     }
+     exit(result);
+--- grass-6.4.3/general/g.mremove/do_remove.c.orig     2008-11-25 02:31:50.000000000 +0100
++++ grass-6.4.3/general/g.mremove/do_remove.c  2014-06-03 21:26:38.531089654 +0200
+@@ -39,7 +39,7 @@
+               removed = 1;
+           }
+           else {
+-              G_warning(_("couldn't be removed"));
++              G_warning("%s", _("couldn't be removed"));
+               result = 1;
+           }
+       }
+--- grass-6.4.3/general/g.proj/create.c.orig   2012-10-20 11:52:06.000000000 +0200
++++ grass-6.4.3/general/g.proj/create.c        2014-05-23 18:21:57.521129923 +0200
+@@ -21,7 +21,7 @@
+                   strerror(errno));
+     else
+       /* Shouldn't happen */
+-      G_fatal_error(_("Unspecified error while creating new location"));
++      G_fatal_error("%s", _("Unspecified error while creating new location"));
+     G_message(_("You can switch to the new location by\n`%s=%s`"),
+             "g.mapset mapset=PERMANENT location", location);
+@@ -60,9 +60,9 @@
+        * number or zone have changed */
+       G__put_window(&cellhd, "", "DEFAULT_WIND");
+       G__put_window(&cellhd, "", "WIND");
+-      G_message(_("Default region was updated to the new projection, but if you have "
++      G_message("%s", _("Default region was updated to the new projection, but if you have "
+                   "multiple mapsets `g.region -d` should be run in each to update the "
+                   "region from the default"));
+     }
+-    G_important_message(_("Projection information updated"));
++    G_important_message("%s", _("Projection information updated"));
+ }
+--- grass-6.4.3/general/g.proj/main.c.orig     2012-10-20 11:52:06.000000000 +0200
++++ grass-6.4.3/general/g.proj/main.c  2014-06-03 21:44:08.334401108 +0200
+@@ -256,7 +256,7 @@
+     if ((cellhd.proj != PROJECTION_XY)
+       && (projinfo == NULL || projunits == NULL))
+-      G_fatal_error(_("Projection files missing"));
++      G_fatal_error("%s", _("Projection files missing"));
+     /* Override input datum if requested */
+     if(datum->answer)
+--- grass-6.4.3/general/g.proj/input.c.orig    2012-10-20 11:52:06.000000000 +0200
++++ grass-6.4.3/general/g.proj/input.c 2014-06-05 21:39:13.140805567 +0200
+@@ -88,7 +88,7 @@
+     if (infd) {
+       fread(buff, sizeof(buff), 1, infd);
+       if (ferror(infd))
+-          G_fatal_error(_("Error reading WKT projection description"));
++          G_fatal_error("%s", _("Error reading WKT projection description"));
+       else
+           fclose(infd);
+       /* Get rid of newlines */
+@@ -140,7 +140,7 @@
+     hSRS = OSRNewSpatialReference(NULL);
+     if (OSRImportFromProj4(hSRS, proj4string) != OGRERR_NONE)
+-      G_fatal_error(_("Can't parse PROJ.4-style parameter string"));
++      G_fatal_error("%s", _("Can't parse PROJ.4-style parameter string"));
+     G_free(proj4string);
+@@ -178,7 +178,7 @@
+     hSRS = OSRNewSpatialReference(NULL);
+     if (OSRImportFromEPSG(hSRS, epsg_num) != OGRERR_NONE)
+-      G_fatal_error(_("Unable to translate EPSG code"));
++      G_fatal_error("%s", _("Unable to translate EPSG code"));
+     ret = GPJ_osr_to_grass(&cellhd, &projinfo, &projunits, hSRS, 0);
+@@ -215,7 +215,7 @@
+     /* Try opening file with OGR first because it doesn't output a
+      * (potentially confusing) error message if it can't open the file */
+-    G_message(_("Trying to open with OGR..."));
++    G_message("%s", _("Trying to open with OGR..."));
+     OGRRegisterAll();
+     if ((ogr_ds = OGROpen(geofile, FALSE, NULL))
+@@ -223,7 +223,7 @@
+       OGRLayerH ogr_layer;
+       OGRSpatialReferenceH ogr_srs;
+-      G_message(_("...succeeded."));
++      G_message("%s", _("...succeeded."));
+       /* Get the first layer */
+       ogr_layer = OGR_DS_GetLayer(ogr_ds, 0);
+       ogr_srs = OGR_L_GetSpatialRef(ogr_layer);
+@@ -236,13 +236,13 @@
+       /* Try opening with GDAL */
+       GDALDatasetH gdal_ds;
+-      G_message(_("Trying to open with GDAL..."));
++      G_message("%s", _("Trying to open with GDAL..."));
+       GDALAllRegister();
+       if ((gdal_ds = GDALOpen(geofile, GA_ReadOnly))) {
+           char *wktstring;
+-          G_message(_("...succeeded."));
++          G_message("%s", _("...succeeded."));
+           wktstring = (char *)GDALGetProjectionRef(gdal_ds);
+           ret =
+               GPJ_wkt_to_grass(&cellhd, &projinfo, &projunits, wktstring,
+--- grass-6.4.3/general/g.pnmcomp/main.c.orig  2011-04-23 11:52:13.000000000 +0200
++++ grass-6.4.3/general/g.pnmcomp/main.c       2014-05-23 18:24:42.331126488 +0200
+@@ -50,7 +50,7 @@
+ {
+     for (;;) {
+       if (!fgets(buf, size, fp))
+-          G_fatal_error(_("Error reading PPM file"));
++          G_fatal_error("%s", _("Error reading PPM file"));
+       if (buf[0] != '#')
+           return 0;
+@@ -65,12 +65,12 @@
+     read_line(buf, sizeof(buf), fp);
+     if (sscanf(buf, "P%c", magic) != 1)
+-      G_fatal_error(_("Invalid PPM file"));
++      G_fatal_error("%s", _("Invalid PPM file"));
+     read_line(buf, sizeof(buf), fp);
+     if (sscanf(buf, "%d %d", &ncols, &nrows) != 2)
+-      G_fatal_error(_("Invalid PPM file"));
++      G_fatal_error("%s", _("Invalid PPM file"));
+     if (ncols != width || nrows != height)
+       G_fatal_error("Expecting %dx%d image but got %dx%d image.",
+@@ -79,7 +79,7 @@
+     read_line(buf, sizeof(buf), fp);
+     if (sscanf(buf, "%d", maxval) != 1)
+-      G_fatal_error(_("Invalid PPM file"));
++      G_fatal_error("%s", _("Invalid PPM file"));
+ }
+ static void read_pnm(const char *filename, char *buf, int components)
+@@ -100,12 +100,12 @@
+     case '2':
+     case '5':
+       if (components == 3)
+-          G_fatal_error(_("Expecting PPM but got PGM"));
++          G_fatal_error("%s", _("Expecting PPM but got PGM"));
+       break;
+     case '3':
+     case '6':
+       if (components == 1)
+-          G_fatal_error(_("Expecting PGM but got PPM"));
++          G_fatal_error("%s", _("Expecting PGM but got PPM"));
+       break;
+     default:
+       G_fatal_error(_("Invalid magic number: 'P%c'"), magic);
+@@ -121,7 +121,7 @@
+               int y;
+               if (fscanf(fp, "%d", &y) != 1)
+-                  G_fatal_error(_("Invalid PGM file"));
++                  G_fatal_error("%s", _("Invalid PGM file"));
+               *p++ = (unsigned char)y;
+           }
+           break;
+@@ -130,7 +130,7 @@
+               int r, g, b;
+               if (fscanf(fp, "%d %d %d", &r, &g, &b) != 3)
+-                  G_fatal_error(_("Invalid PPM file"));
++                  G_fatal_error("%s", _("Invalid PPM file"));
+               *p++ = (unsigned char)r;
+               *p++ = (unsigned char)g;
+               *p++ = (unsigned char)b;
+@@ -138,12 +138,12 @@
+           break;
+       case '5':
+           if (fread(p, 1, width, fp) != width)
+-              G_fatal_error(_("Invalid PGM file"));
++              G_fatal_error("%s", _("Invalid PGM file"));
+           p += width;
+           break;
+       case '6':
+           if (fread(p, 3, width, fp) != width)
+-              G_fatal_error(_("Invalid PPM file"));
++              G_fatal_error("%s", _("Invalid PPM file"));
+           p += 3 * width;
+           break;
+       }
+@@ -243,7 +243,7 @@
+     fprintf(fp, "P6\n%d %d\n255\n", width, height);
+     if (fwrite(p, 3 * width, height, fp) != height)
+-      G_fatal_error(_("Error writing PPM file"));
++      G_fatal_error("%s", _("Error writing PPM file"));
+     fclose(fp);
+ }
+@@ -260,7 +260,7 @@
+     fprintf(fp, "P5\n%d %d\n255\n", width, height);
+     if (fwrite(p, width, height, fp) != height)
+-      G_fatal_error(_("Error writing PGM file"));
++      G_fatal_error("%s", _("Error writing PGM file"));
+     fclose(fp);
+ }
+--- grass-6.4.3/general/g.region/printwindow.c.orig    2011-04-09 11:52:08.000000000 +0200
++++ grass-6.4.3/general/g.region/printwindow.c 2014-05-23 18:28:31.327788381 +0200
+@@ -244,13 +244,13 @@
+           /* read current projection info */
+           if ((in_proj_info = G_get_projinfo()) == NULL)
+-              G_fatal_error(_("Can't get projection info of current location"));
++              G_fatal_error("%s", _("Can't get projection info of current location"));
+           if ((in_unit_info = G_get_projunits()) == NULL)
+-              G_fatal_error(_("Can't get projection units of current location"));
++              G_fatal_error("%s", _("Can't get projection units of current location"));
+           if (pj_get_kv(&iproj, in_proj_info, in_unit_info) < 0)
+-              G_fatal_error(_("Can't get projection key values of current location"));
++              G_fatal_error("%s", _("Can't get projection key values of current location"));
+           G_free_key_value(in_proj_info);
+           G_free_key_value(in_unit_info);
+@@ -260,7 +260,7 @@
+           oproj.meters = 1.;
+           sprintf(oproj.proj, "ll");
+           if ((oproj.pj = pj_latlong_from_proj(iproj.pj)) == NULL)
+-              G_fatal_error(_("Unable to update lat/long projection parameters"));
++              G_fatal_error("%s", _("Unable to update lat/long projection parameters"));
+           /* for DEBUG
+              pj_print_proj_params(&iproj,&oproj);
+@@ -278,7 +278,7 @@
+           latitude = window->north;
+           longitude = window->west;
+           if (pj_do_proj(&longitude, &latitude, &iproj, &oproj) < 0)
+-              G_fatal_error(_("Error in pj_do_proj (projection of input coordinate pair)"));
++              G_fatal_error("%s", _("Error in pj_do_proj (projection of input coordinate pair)"));
+           lo1 = longitude;
+           la1 = latitude;
+@@ -286,7 +286,7 @@
+           latitude = window->north;
+           longitude = window->east;
+           if (pj_do_proj(&longitude, &latitude, &iproj, &oproj) < 0)
+-              G_fatal_error(_("Error in pj_do_proj (projection of input coordinate pair)"));
++              G_fatal_error("%s", _("Error in pj_do_proj (projection of input coordinate pair)"));
+           lo2 = longitude;
+           la2 = latitude;
+@@ -294,7 +294,7 @@
+           latitude = window->south;
+           longitude = window->east;
+           if (pj_do_proj(&longitude, &latitude, &iproj, &oproj) < 0)
+-              G_fatal_error(_("Error in pj_do_proj (projection of input coordinate pair)"));
++              G_fatal_error("%s", _("Error in pj_do_proj (projection of input coordinate pair)"));
+           lo3 = longitude;
+           la3 = latitude;
+@@ -302,7 +302,7 @@
+           latitude = window->south;
+           longitude = window->west;
+           if (pj_do_proj(&longitude, &latitude, &iproj, &oproj) < 0)
+-              G_fatal_error(_("Error in pj_do_proj (projection of input coordinate pair)"));
++              G_fatal_error("%s", _("Error in pj_do_proj (projection of input coordinate pair)"));
+           lo4 = longitude;
+           la4 = latitude;
+@@ -407,9 +407,9 @@
+       else {                  /* in lat/long already */
+           if (window->proj != 0)
+-              G_message(_("You are already in Lat/Long. Use the -p flag instead."));
++              G_message("%s", _("You are already in Lat/Long. Use the -p flag instead."));
+           else
+-              G_message(_("You are in a simple XY location, projection to Lat/Lon "
++              G_message("%s", _("You are in a simple XY location, projection to Lat/Lon "
+                          "is not possible. Use the -p flag instead."));
+       }
+     }
+@@ -500,20 +500,20 @@
+           /* read current projection info */
+           if ((in_proj_info = G_get_projinfo()) == NULL)
+-              G_fatal_error(_("Can't get projection info of current location"));
++              G_fatal_error("%s", _("Can't get projection info of current location"));
+           if ((in_unit_info = G_get_projunits()) == NULL)
+-              G_fatal_error(_("Can't get projection units of current location"));
++              G_fatal_error("%s", _("Can't get projection units of current location"));
+           if (pj_get_kv(&iproj, in_proj_info, in_unit_info) < 0)
+-              G_fatal_error(_("Can't get projection key values of current location"));
++              G_fatal_error("%s", _("Can't get projection key values of current location"));
+           /*  output projection to lat/long w/ same ellipsoid as input */
+           oproj.zone = 0;
+           oproj.meters = 1.;
+           sprintf(oproj.proj, "ll");
+           if ((oproj.pj = pj_latlong_from_proj(iproj.pj)) == NULL)
+-              G_fatal_error(_("Unable to update lat/long projection parameters"));
++              G_fatal_error("%s", _("Unable to update lat/long projection parameters"));
+           /* for DEBUG
+              pj_print_proj_params(&iproj, &oproj);
+@@ -531,7 +531,7 @@
+           latitude = window->north;
+           longitude = window->west;
+           if (pj_do_proj(&longitude, &latitude, &iproj, &oproj) < 0)
+-              G_fatal_error(_("Error in pj_do_proj (projection of input coordinate pair)"));
++              G_fatal_error("%s", _("Error in pj_do_proj (projection of input coordinate pair)"));
+           lo1 = longitude;
+           la1 = latitude;
+@@ -539,7 +539,7 @@
+           latitude = window->north;
+           longitude = window->east;
+           if (pj_do_proj(&longitude, &latitude, &iproj, &oproj) < 0)
+-              G_fatal_error(_("Error in pj_do_proj (projection of input coordinate pair)"));
++              G_fatal_error("%s", _("Error in pj_do_proj (projection of input coordinate pair)"));
+           lo2 = longitude;
+           la2 = latitude;
+@@ -547,7 +547,7 @@
+           latitude = window->south;
+           longitude = window->east;
+           if (pj_do_proj(&longitude, &latitude, &iproj, &oproj) < 0)
+-              G_fatal_error(_("Error in pj_do_proj (projection of input coordinate pair)"));
++              G_fatal_error("%s", _("Error in pj_do_proj (projection of input coordinate pair)"));
+           lo3 = longitude;
+           la3 = latitude;
+@@ -555,7 +555,7 @@
+           latitude = window->south;
+           longitude = window->west;
+           if (pj_do_proj(&longitude, &latitude, &iproj, &oproj) < 0)
+-              G_fatal_error(_("Error in pj_do_proj (projection of input coordinate pair)"));
++              G_fatal_error("%s", _("Error in pj_do_proj (projection of input coordinate pair)"));
+           lo4 = longitude;
+           la4 = latitude;
+@@ -619,13 +619,13 @@
+           /* read current projection info */
+           if ((in_proj_info = G_get_projinfo()) == NULL)
+-              G_fatal_error(_("Can't get projection info of current location"));
++              G_fatal_error("%s", _("Can't get projection info of current location"));
+           if ((in_unit_info = G_get_projunits()) == NULL)
+-              G_fatal_error(_("Can't get projection units of current location"));
++              G_fatal_error("%s", _("Can't get projection units of current location"));
+           if (pj_get_kv(&iproj, in_proj_info, in_unit_info) < 0)
+-              G_fatal_error(_("Can't get projection key values of current location"));
++              G_fatal_error("%s", _("Can't get projection key values of current location"));
+           /*  output projection to lat/long  and wgs84 ellipsoid */
+           out_proj_info = G_create_key_value();
+@@ -634,7 +634,7 @@
+           G_set_key_value("proj", "ll", out_proj_info);
+           if (G_get_datumparams_from_projinfo(in_proj_info, buff, dum) < 0)
+-              G_fatal_error(_("WGS84 output not possible as this location does not contain "
++              G_fatal_error("%s", _("WGS84 output not possible as this location does not contain "
+                              "datum transformation parameters. Try running g.setproj."));
+           else
+               G_set_key_value("datum", "wgs84", out_proj_info);
+@@ -644,7 +644,7 @@
+           G_set_key_value("meters", "1.0", out_unit_info);
+           if (pj_get_kv(&oproj, out_proj_info, out_unit_info) < 0)
+-              G_fatal_error(_("Unable to update lat/long projection parameters"));
++              G_fatal_error("%s", _("Unable to update lat/long projection parameters"));
+           G_free_key_value(in_proj_info);
+           G_free_key_value(in_unit_info);
+@@ -673,7 +673,7 @@
+           latitude = window->north;
+           longitude = window->west;
+           if (pj_do_proj(&longitude, &latitude, &iproj, &oproj) < 0)
+-              G_fatal_error(_("Error in pj_do_proj (projection of input coordinate pair)"));
++              G_fatal_error("%s", _("Error in pj_do_proj (projection of input coordinate pair)"));
+           lo1 = longitude;
+           la1 = latitude;
+@@ -681,7 +681,7 @@
+           latitude = window->north;
+           longitude = window->east;
+           if (pj_do_proj(&longitude, &latitude, &iproj, &oproj) < 0)
+-              G_fatal_error(_("Error in pj_do_proj (projection of input coordinate pair)"));
++              G_fatal_error("%s", _("Error in pj_do_proj (projection of input coordinate pair)"));
+           lo2 = longitude;
+           la2 = latitude;
+@@ -689,7 +689,7 @@
+           latitude = window->south;
+           longitude = window->east;
+           if (pj_do_proj(&longitude, &latitude, &iproj, &oproj) < 0)
+-              G_fatal_error(_("Error in pj_do_proj (projection of input coordinate pair)"));
++              G_fatal_error("%s", _("Error in pj_do_proj (projection of input coordinate pair)"));
+           lo3 = longitude;
+           la3 = latitude;
+@@ -697,7 +697,7 @@
+           latitude = window->south;
+           longitude = window->west;
+           if (pj_do_proj(&longitude, &latitude, &iproj, &oproj) < 0)
+-              G_fatal_error(_("Error in pj_do_proj (projection of input coordinate pair)"));
++              G_fatal_error("%s", _("Error in pj_do_proj (projection of input coordinate pair)"));
+           lo4 = longitude;
+           la4 = latitude;
+@@ -780,7 +780,7 @@
+            */
+       }
+       else {
+-          G_warning(_("Lat/Long calculations are not possible from a simple XY system"));
++          G_warning("%s", _("Lat/Long calculations are not possible from a simple XY system"));
+       }
+     }
+--- grass-6.4.3/general/g.region/main.c.orig   2013-07-15 14:15:26.000000000 +0200
++++ grass-6.4.3/general/g.region/main.c        2014-06-03 21:45:35.177732629 +0200
+@@ -849,7 +849,7 @@
+     adjust_window(&window, row_flag, col_flag, 0);
+     if (set_flag) {
+       if (G_put_window(&window) < 0)
+-          G_fatal_error(_("Unable to update current region"));
++          G_fatal_error("%s", _("Unable to update current region"));
+     }
+     if (flag.savedefault->answer) {
+@@ -857,7 +857,7 @@
+           G__put_window(&window, "", "DEFAULT_WIND");
+       }
+       else {
+-          G_fatal_error(_("Unable to change default region. "
++          G_fatal_error("%s", _("Unable to change default region. "
+                           "The current mapset is not <PERMANENT>."));
+       }
+     }                         /* / flag.savedefault->answer */
+--- grass-6.4.3/general/g.setproj/get_stp.c.orig       2008-11-25 02:31:51.000000000 +0100
++++ grass-6.4.3/general/g.setproj/get_stp.c    2014-05-23 18:42:47.381103872 +0200
+@@ -40,7 +40,7 @@
+           fprintf(stderr, "\nInvalid Co-ordinate System Specification\n");
+     }
+     if (get_stp_code(code, string, buff) == 0)
+-      G_fatal_error(_("This should not happen see your system admin"));
++      G_fatal_error("%s", _("This should not happen see your system admin"));
+     return;
+ }
+@@ -56,7 +56,7 @@
+     fp = fopen(nad27, "r");
+     if (fp == NULL) {
+       sprintf(buff, "Can not open NAD27 file %s", nad27);
+-      G_fatal_error(buff);
++      G_fatal_error("%s", buff);
+     }
+     while (!gotit) {
+       if (fgets(buff, 200, fp) == NULL)
+@@ -96,7 +96,7 @@
+       fipsfile = fopen(FIPSfile, "r");
+       if (fipsfile == NULL) {
+-          G_fatal_error(_("Unable to open FIPS code file"));
++          G_fatal_error("%s", _("Unable to open FIPS code file"));
+       }
+       ask_fips(fipsfile, &SFIPS, &CFIPS, &special_case);
+       if (special_case == -1) {
+@@ -176,7 +176,7 @@
+     sf_keys = G_read_key_value_file(Tmp_file2, &in_stat);
+     if (in_stat != 0)
+-      G_fatal_error(_("Reading sf key_value temp file"));
++      G_fatal_error("%s", _("Reading sf key_value temp file"));
+     for (;;) {
+@@ -209,7 +209,7 @@
+           a = G_find_key_value(answer, sf_keys);
+           sprintf(buff, "You have chosen state %s, Correct", a);
+           if (a == NULL)
+-              G_warning(_("Invalid State FIPS code"));
++              G_warning("%s", _("Invalid State FIPS code"));
+           else if (G_yes(buff, 1))
+               break;
+       }
+@@ -299,7 +299,7 @@
+     cf_keys = G_read_key_value_file(Tmp_file2, &in_stat);
+     if (in_stat != 0)
+-      G_fatal_error(_("Reading cf key_value temp file"));
++      G_fatal_error("%s", _("Reading cf key_value temp file"));
+     for (;;) {
+       do {
+@@ -333,7 +333,7 @@
+           b = G_find_key_value(answer, cf_keys);
+           sprintf(buff, "You have chosen %s county, correct", b);
+           if (b == NULL)
+-              G_warning(_("Invalid County FIPS code"));
++              G_warning("%s", _("Invalid County FIPS code"));
+           else if (G_yes(buff, 1))
+               break;
+       }
+--- grass-6.4.3/general/g.setproj/main.c.orig  2011-07-16 11:52:06.000000000 +0200
++++ grass-6.4.3/general/g.setproj/main.c       2014-06-03 21:47:58.747729637 +0200
+@@ -84,7 +84,7 @@
+     if (strcmp(G_mapset(), "PERMANENT") != 0)
+-      G_fatal_error(_("You must be in the PERMANENT mapset to run g.setproj"));
++      G_fatal_error("%s", _("You must be in the PERMANENT mapset to run g.setproj"));
+       /***
+          * no longer necessary, table is a static struct 
+@@ -97,14 +97,14 @@
+     /* Check for ownership here */
+     stat = G__mapset_permissions(set_name);
+     if (stat == 0) {
+-      G_fatal_error(_("PERMANENT: permission denied"));
++      G_fatal_error("%s", _("PERMANENT: permission denied"));
+     }
+     G_get_default_window(&cellhd);
+     if (-1 == G_set_window(&cellhd))
+-      G_fatal_error(_("Current region cannot be set"));
++      G_fatal_error("%s", _("Current region cannot be set"));
+     if (G_get_set_window(&cellhd) == -1)
+-      G_fatal_error(_("Retrieving and setting region failed"));
++      G_fatal_error("%s", _("Retrieving and setting region failed"));
+     Out_proj = cellhd.proj;
+     old_zone = cellhd.zone;
+@@ -133,7 +133,7 @@
+       if (!G_yes
+           (_("Would you still like to change some of the parameters?"),
+            0)) {
+-          G_message(_("The projection information will not be updated"));
++          G_message("%s", _("The projection information will not be updated"));
+           leave(SP_NOCHANGE);
+       }
+     }
+@@ -154,7 +154,7 @@
+     case 0:                   /* No projection/units */
+       if (!exist) {
+           /* leap frog over code, and just make sure we remove the file */
+-          G_warning(_("XY-location cannot be projected"));
++          G_warning("%s", _("XY-location cannot be projected"));
+           goto write_file;
+           break;
+       }
+@@ -188,7 +188,7 @@
+           Out_proj = PROJECTION_SP;
+       break;
+     default:
+-      G_fatal_error(_("Unknown projection"));
++      G_fatal_error("%s", _("Unknown projection"));
+     }
+     cellhd.proj = Out_proj;
+@@ -217,11 +217,11 @@
+                    0))
+                   sph_check = ask_datum(datum, dat_ellps, dat_params);
+               else {
+-                  sprintf(datum, lbuf);
+-                  sprintf(dat_params, lbufa);
+-                  sprintf(dat_ellps, G_datum_ellipsoid(i));
++                  strcpy(datum, lbuf);
++                  strcpy(dat_params, lbufa);
++                  strcpy(dat_ellps, G_datum_ellipsoid(i));
+                   sph_check = 1;
+-                  G_message(_("The datum information has not been changed"));
++                  G_message("%s", _("The datum information has not been changed"));
+               }
+           }
+           else
+@@ -290,7 +290,7 @@
+                            0))
+                           sph_check = G_ask_ellipse_name(spheroid);
+                       else {
+-                          G_message(_("The ellipse information has not been changed"));
++                          G_message("%s", _("The ellipse information has not been changed"));
+                           sph_check = 1;
+                       }
+                   }           /* the val is legal */
+@@ -332,7 +332,7 @@
+     else if (sph_check != 2) {
+       G_strip(spheroid);
+       if (G_get_spheroid_by_name(spheroid, &aa, &e2, &f) == 0)
+-          G_fatal_error(_("Invalid input ellipsoid"));
++          G_fatal_error("%s", _("Invalid input ellipsoid"));
+     }
+   write_file:
+@@ -447,12 +447,12 @@
+                                 old_zone);
+                       if (!G_yes
+                           (_("Do you want to change the UTM zone?"), 0)) {
+-                          G_message(_("UTM zone information has not been updated"));
++                          G_message("%s", _("UTM zone information has not been updated"));
+                           zone = old_zone;
+                           break;
+                       }
+                       else {
+-                          G_message(_("But if you change zone, all the existing "
++                          G_message("%s", _("But if you change zone, all the existing "
+                                      "data will be interpreted by projection software. "
+                                      "GRASS will not automatically re-project or even "
+                                      "change the headers for existing maps."));
+@@ -567,7 +567,7 @@
+           break;
+       default:
+           if (G_strcasecmp(proj_out, "LL") != 0) {
+-              fprintf(stderr, _("Enter plural form of units [meters]: "));
++              fputs(_("Enter plural form of units [meters]: "), stderr);
+               G_gets(answer);
+               if (strlen(answer) == 0) {
+                   G_set_key_value("unit", "meter", in_unit_keys);
+@@ -599,7 +599,7 @@
+                       double unit_fact;
+                       while (1) {
+-                          fprintf(stderr, _("Enter singular for unit: "));
++                          fputs(_("Enter singular for unit: "), stderr);
+                           G_gets(answer1);
+                           G_strip(answer1);
+                           if (strlen(answer1) > 0)
+@@ -639,12 +639,12 @@
+     }                         /* if */
+     if (G__put_window(&cellhd, "", "DEFAULT_WIND") < 0)
+-      G_fatal_error(_("Unable to write to DEFAULT_WIND region file"));
+-    fprintf(stderr,
+-          _("\nProjection information has been recorded for this location\n\n"));
++      G_fatal_error("%s", _("Unable to write to DEFAULT_WIND region file"));
++    fputs(
++          _("\nProjection information has been recorded for this location\n\n"), stderr);
+     if ((old_zone != zone) | (old_proj != cellhd.proj)) {
+-      G_message(_("The geographic region information in WIND is now obsolete"));
+-      G_message(_("Run g.region -d to update it"));
++      G_message("%s", _("The geographic region information in WIND is now obsolete"));
++      G_message("%s", _("Run g.region -d to update it"));
+     }
+     leave(0);
+ }
+--- grass-6.4.3/general/g.transform/main.c.orig        2010-09-25 11:52:08.000000000 +0200
++++ grass-6.4.3/general/g.transform/main.c     2014-05-23 18:43:13.651103324 +0200
+@@ -196,13 +196,13 @@
+ static void analyze(void)
+ {
+     if (equation_stat == -1)
+-      G_warning(_("Poorly placed control points"));
++      G_warning("%s", _("Poorly placed control points"));
+     else if (equation_stat == -2)
+-      G_fatal_error(_("Insufficient memory"));
++      G_fatal_error("%s", _("Insufficient memory"));
+     else if (equation_stat < 0)
+-      G_fatal_error(_("Parameter error"));
++      G_fatal_error("%s", _("Parameter error"));
+     else if (equation_stat == 0)
+-      G_fatal_error(_("No active control points"));
++      G_fatal_error("%s", _("No active control points"));
+     else if (summary) {
+       printf("Number of active points: %d\n", count);
+       do_stats("Forward", &fwd);
+--- grass-6.4.3/general/manage/lib/do_remove.c.orig    2008-11-25 02:31:50.000000000 +0100
++++ grass-6.4.3/general/manage/lib/do_remove.c 2014-05-23 18:43:34.574436221 +0200
+@@ -42,7 +42,7 @@
+               removed = 1;
+           }
+           else {
+-              G_warning(_("couldn't be removed"));
++              G_warning("%s", _("couldn't be removed"));
+               result = 1;
+           }
+       }
+--- grass-6.4.3/general/manage/cmd/rename.c.orig       2009-02-21 11:45:19.000000000 +0100
++++ grass-6.4.3/general/manage/cmd/rename.c    2014-06-11 18:04:26.173602429 +0200
+@@ -96,7 +96,7 @@
+               char buf1[256], buf2[256], buf3[256], *str;
+               FILE *fp;
+-              G_message(_("Renaming reclass maps"));
++              G_message("%s", _("Renaming reclass maps"));
+               for (; *rmaps; rmaps++) {
+                   G_message(" %s", *rmaps);
+--- grass-6.4.3/imagery/i.ask/popup.c.orig     2008-11-25 02:31:38.000000000 +0100
++++ grass-6.4.3/imagery/i.ask/popup.c  2014-05-23 18:51:41.494426196 +0200
+@@ -171,7 +171,7 @@
+     page = 0;
+     page_offset = (long *)G_calloc(npages = 1, sizeof(long));
+     if (page_offset == NULL) {
+-      G_message(_("Out of memory"));
++      G_message("%s", _("Out of memory"));
+       return 1;
+     }
+     *page_offset = ftell(fd);
+--- grass-6.4.3/imagery/i.cluster/print5.c.orig        2008-11-25 02:31:38.000000000 +0100
++++ grass-6.4.3/imagery/i.cluster/print5.c     2014-05-23 18:52:10.044425503 +0200
+@@ -12,7 +12,7 @@
+     double q;
+     I_cluster_sum2(C);
+-    fprintf(fd, _("\nclass separability matrix\n\n"));
++    fputs(_("\nclass separability matrix\n\n"), fd);
+     for (first = 0; first < C->nclasses; first = last) {
+       last = first + 10;
+       if (last > C->nclasses)
+--- grass-6.4.3/imagery/i.cluster/print1.c.orig        2008-11-25 02:31:38.000000000 +0100
++++ grass-6.4.3/imagery/i.cluster/print1.c     2014-06-03 21:49:30.824394384 +0200
+@@ -11,11 +11,11 @@
+     fprintf(fd, "\n");
+     fprintf(fd, _("means and standard deviations for %d band%s\n\n"),
+           C->nbands, C->nbands == 1 ? "" : "s");
+-    fprintf(fd, _(" means  "));
++    fputs(_(" means  "), fd);
+     for (band = 0; band < C->nbands; band++)
+       fprintf(fd, " %g", C->band_sum[band] / C->npoints);
+     fprintf(fd, "\n");
+-    fprintf(fd, _(" stddev "));
++    fputs(_(" stddev "), fd);
+     for (band = 0; band < C->nbands; band++)
+       fprintf(fd, " %g",
+               I_stddev(C->band_sum[band], C->band_sum2[band], C->npoints));
+--- grass-6.4.3/imagery/i.cluster/print2.c.orig        2008-11-25 02:31:38.000000000 +0100
++++ grass-6.4.3/imagery/i.cluster/print2.c     2014-06-05 21:40:03.774137845 +0200
+@@ -15,17 +15,17 @@
+     int c;
+     int n;
+-    fprintf(fd, _("\nclass means/stddev for each band\n\n"));
++    fputs(_("\nclass means/stddev for each band\n\n"), fd);
+     for (c = 0; c < C->nclasses; c++) {
+       fprintf(fd, "\n");
+       fprintf(fd, _("class %d (%d)\n"), c + 1, n = C->count[c]);
+-      fprintf(fd, _("  means "));
++      fputs(_("  means "), fd);
+       if (n > 0)
+           for (band = 0; band < C->nbands; band++)
+               fprintf(fd, " %g", C->sum[band][c] / n);
+       fprintf(fd, "\n");
+-      fprintf(fd, _("  stddev"));
++      fputs(_("  stddev"), fd);
+       if (n > 1)
+           for (band = 0; band < C->nbands; band++)
+               fprintf(fd, " %g",
+--- grass-6.4.3/imagery/i.cluster/print4.c.orig        2008-11-25 02:31:38.000000000 +0100
++++ grass-6.4.3/imagery/i.cluster/print4.c     2014-06-07 22:21:27.963817708 +0200
+@@ -13,7 +13,7 @@
+     int band, cat;
+     char buf[40];
+-    fprintf(fd, _("class centroids (sum/count=mean)\n"));
++    fputs(_("class centroids (sum/count=mean)\n"), fd);
+     for (band = 0; band < C->nbands; band++) {
+       fprintf(fd, _("band %d"), band + 1);
+       for (cat = 0; cat < C->nclasses; cat++) {
+--- grass-6.4.3/imagery/i.cluster/main.c.orig  2012-09-01 11:52:28.000000000 +0200
++++ grass-6.4.3/imagery/i.cluster/main.c       2014-06-08 08:45:14.743037620 +0200
+@@ -251,7 +251,7 @@
+     }
+     fprintf(report, _("Result signature file: %s\n"), outsigfile);
+     fprintf(report, "\n");
+-    fprintf(report, _("Region\n"));
++    fputs(_("Region\n"), report);
+     fprintf(report, _("  North: %12.2f  East: %12.2f\n"), window.north,
+           window.east);
+     fprintf(report, _("  South: %12.2f  West: %12.2f\n"), window.south,
+@@ -262,7 +262,7 @@
+           nrows * ncols);
+     fprintf(report, _("Mask: %s\n"), G_mask_info());
+     fprintf(report, "\n");
+-    fprintf(report, _("Cluster parameters\n"));
++    fputs(_("Cluster parameters\n"), report);
+     fprintf(report, _(" Number of initial classes:    %d"), maxclass);
+     if (insigfile)
+       fprintf(report, _(" [from signature file %s]"), insigfile);
+@@ -282,7 +282,7 @@
+     I_cluster_begin(&C, ref.nfiles);
+     count = 0;
+-    G_message(_("Reading raster maps..."));
++    G_message("%s", _("Reading raster maps..."));
+     for (row = sample_rows - 1; row < nrows; row += sample_rows) {
+       G_percent(row, nrows, 2);
+       for (n = 0; n < ref.nfiles; n++)
+@@ -294,7 +294,7 @@
+           for (n = 0; n < ref.nfiles; n++)
+               x[n] = cell[n][col];
+           if (I_cluster_point(&C, x) < 0)
+-              G_fatal_error(_("Out of Memory. Please run again and choose a "
++              G_fatal_error("%s", _("Out of Memory. Please run again and choose a "
+                               "smaller sample size."));
+       }
+     }
+@@ -303,11 +303,11 @@
+     fprintf(report, _("Sample size: %d points\n"), C.npoints);
+     fprintf(report, "\n");
+     if (count < 2)
+-      G_fatal_error(_("Not enough sample points. Please run again and "
++      G_fatal_error("%s", _("Not enough sample points. Please run again and "
+                       "choose a larger sample size."));
+     if (C.npoints < 2)
+-      G_fatal_error(_("Not enough non-zero sample data points. Check "
++      G_fatal_error("%s", _("Not enough non-zero sample data points. Check "
+                       "your current region (and mask)."));
+     for (n = 0; n < ref.nfiles; n++) {
+@@ -320,7 +320,7 @@
+     I_cluster_exec(&C, maxclass, iters, conv, sep, mcs, checkpoint,
+                  &interrupted);
+-    fprintf(report, _("\n########## final results #############\n"));
++    fputs(_("\n########## final results #############\n"), report);
+     fprintf(report, _("%d classes (convergence=%.1f%%)\n"),
+           I_cluster_nclasses(&C, mcs), (double)C.percent_stable);
+     print_separability(report, &C);
+@@ -336,8 +336,8 @@
+                       "<%s>, subsgroup <%s>"), outsigfile, group, subgroup);
+     }
+-    fprintf(report,
+-          _("\n\n#################### CLASSES ####################\n"));
++    fputs(
++          _("\n\n#################### CLASSES ####################\n"), report);
+     fprintf(report, _("\n%d classes, %.2f%% points stable\n"),
+           I_cluster_nclasses(&C, 1), (double)C.percent_stable);
+     fprintf(report, _("\n######## CLUSTER END (%s) ########\n"), G_date());
+--- grass-6.4.3/imagery/i.cluster/open_files.c.orig    2013-07-09 21:05:44.000000000 +0200
++++ grass-6.4.3/imagery/i.cluster/open_files.c 2014-06-08 10:12:32.926261770 +0200
+@@ -35,7 +35,7 @@
+       }
+     }
+     if (missing)
+-      G_fatal_error(_("No raster maps found"));
++      G_fatal_error("%s", _("No raster maps found"));
+     if (ref.nfiles <= 1) {
+       if (ref.nfiles <= 0)
+@@ -43,7 +43,7 @@
+                     subgroup);
+       else
+           G_warning(_("Subgroup <%s> only has 1 raster map"), subgroup);
+-      G_fatal_error(_("Subgroup must have at least 2 raster maps"));
++      G_fatal_error("%s", _("Subgroup must have at least 2 raster maps"));
+     }
+     cell = (DCELL **) G_malloc(ref.nfiles * sizeof(DCELL *));
+--- grass-6.4.3/imagery/i.cluster/print3.c.orig        2008-11-25 02:31:38.000000000 +0100
++++ grass-6.4.3/imagery/i.cluster/print3.c     2014-06-08 10:52:51.519544694 +0200
+@@ -13,7 +13,7 @@
+     int band;
+     int c;
+-    fprintf(fd, _("\ninitial means for each band\n\n"));
++    fputs(_("\ninitial means for each band\n\n"), fd);
+     for (c = 0; c < C->nclasses; c++) {
+       fprintf(fd, _("class %-3d "), c + 1);
+--- grass-6.4.3/imagery/i.cluster/print6.c.orig        2008-11-25 02:31:38.000000000 +0100
++++ grass-6.4.3/imagery/i.cluster/print6.c     2014-06-08 11:47:22.572809848 +0200
+@@ -8,7 +8,7 @@
+ {
+     int cat;
+-    fprintf(fd, _("class distribution"));
++    fputs(_("class distribution"), fd);
+     for (cat = 0; cat < C->nclasses; cat++) {
+       fprintf(fd, "%s %10ld", cat % 5 ? "" : "\n", (long)C->count[cat]);
+     }
+--- grass-6.4.3/imagery/i.find/main.c.orig     2008-11-25 02:31:38.000000000 +0100
++++ grass-6.4.3/imagery/i.find/main.c  2014-05-23 18:52:26.597758425 +0200
+@@ -80,7 +80,7 @@
+       /* get this list into a temp file first */
+       fd = fopen(tempfile, "w");
+       if (fd == NULL)
+-          G_fatal_error(_("Unable to open temp file."));
++          G_fatal_error("%s", _("Unable to open temp file."));
+       remove(argv[n + 1]);
+       ok = find(fd, argv[n]);
+--- grass-6.4.3/imagery/i.gensig/means.c.orig  2008-12-20 11:45:22.000000000 +0100
++++ grass-6.4.3/imagery/i.gensig/means.c       2014-05-23 18:52:52.174424360 +0200
+@@ -21,7 +21,7 @@
+     ncols = G_window_cols();
+     class = (CELL *) G_calloc(ncols, sizeof(CELL));
+-    G_message(_("Calculating class means..."));
++    G_message("%s", _("Calculating class means..."));
+     for (row = 0; row < nrows; row++) {
+       G_percent(row, nrows, 2);
+--- grass-6.4.3/imagery/i.gensig/write_sig.c.orig      2008-12-20 11:45:22.000000000 +0100
++++ grass-6.4.3/imagery/i.gensig/write_sig.c   2014-06-03 21:49:59.794393783 +0200
+@@ -15,7 +15,7 @@
+       G_fatal_error(_("Unable to create signature file <%s>"),
+                     parms->sigfile);
+     
+-    G_verbose_message(_("Writing signatures..."));
++    G_verbose_message("%s", _("Writing signatures..."));
+     I_write_signatures(fd, S);
+     return 0;
+--- grass-6.4.3/imagery/i.gensig/get_train.c.orig      2008-12-20 11:45:22.000000000 +0100
++++ grass-6.4.3/imagery/i.gensig/get_train.c   2014-06-05 21:40:26.754137366 +0200
+@@ -25,7 +25,7 @@
+     /* determine the categories in the map */
+     I_init_signatures(S, files->nbands);
+     G_init_cell_stats(&cell_stats);
+-    G_message(_("Finding training classes..."));
++    G_message("%s", _("Finding training classes..."));
+     for (row = 0; row < nrows; row++) {
+       G_percent(row, nrows, 2);
+       if (G_get_c_raster_row(fd, cell, row) < 0)
+@@ -55,7 +55,7 @@
+     }
+     if (n == 0)
+-      G_fatal_error(_("Training map has no classes"));
++      G_fatal_error("%s", _("Training map has no classes"));
+     list = (CELL *) G_calloc(n, sizeof(CELL));
+     n = 0;
+@@ -70,7 +70,7 @@
+     files->training_cats = list;
+     if (files->ncats == 1)
+-      G_message(_("1 class found"));
++      G_message("%s", _("1 class found"));
+     else
+       G_message(_("%d classes found"), files->ncats);
+--- grass-6.4.3/imagery/i.gensig/covariance.c.orig     2008-12-20 11:45:22.000000000 +0100
++++ grass-6.4.3/imagery/i.gensig/covariance.c  2014-06-07 22:21:47.510483969 +0200
+@@ -23,7 +23,7 @@
+     ncols = G_window_cols();
+     class = (CELL *) G_calloc(ncols, sizeof(CELL));
+-    G_message(_("Calculating class covariance matrices..."));
++    G_message("%s", _("Calculating class covariance matrices..."));
+     for (row = 0; row < nrows; row++) {
+       G_percent(row, nrows, 2);
+--- grass-6.4.3/imagery/i.gensigset/write_sig.c.orig   2008-12-20 11:45:22.000000000 +0100
++++ grass-6.4.3/imagery/i.gensigset/write_sig.c        2014-05-23 18:53:09.091090915 +0200
+@@ -13,7 +13,7 @@
+       G_fatal_error(_("Unable to create signature file <%s>"),
+                     parms->sigfile);
+     } 
+-    G_verbose_message(_("Writing signatures..."));
++    G_verbose_message("%s", _("Writing signatures..."));
+     I_WriteSigSet(fd, S);
+     fclose(fd);
+--- grass-6.4.3/imagery/i.gensigset/get_train.c.orig   2008-12-20 11:45:22.000000000 +0100
++++ grass-6.4.3/imagery/i.gensigset/get_train.c        2014-06-03 21:50:20.854393343 +0200
+@@ -29,7 +29,7 @@
+     I_SetSigTitle(S, G_get_cats_title(&files->training_labels));
+     G_init_cell_stats(&cell_stats);
+-    G_message(_("Finding training classes..."));
++    G_message("%s", _("Finding training classes..."));
+     for (row = 0; row < nrows; row++) {
+       G_percent(row, nrows, 2);
+       if (G_get_c_raster_row(fd, cell, row) < 0)
+@@ -59,7 +59,7 @@
+     }
+     if (n == 0) {
+-      G_fatal_error(_("Training map has no classes"));
++      G_fatal_error("%s", _("Training map has no classes"));
+     }
+     list = (CELL *) G_calloc(n, sizeof(CELL));
+@@ -75,7 +75,7 @@
+     files->training_cats = list;
+     if (files->ncats == 1)
+-      G_message(_("1 class found"));
++      G_message("%s", _("1 class found"));
+     else
+       G_message(_("%d classes found"), files->ncats);
+     
+--- grass-6.4.3/imagery/i.gensigset/read_data.c.orig   2008-12-20 11:45:22.000000000 +0100
++++ grass-6.4.3/imagery/i.gensigset/read_data.c        2014-06-05 21:40:39.910803759 +0200
+@@ -16,7 +16,7 @@
+     ncols = G_window_cols();
+     class = (CELL *) G_calloc(ncols, sizeof(CELL));
+-    G_message(_("Reading raster maps..."));
++    G_message("%s", _("Reading raster maps..."));
+     for (row = 0; row < nrows; row++) {
+       G_percent(row, nrows, 2);
+--- grass-6.4.3/imagery/i.gensigset/subcluster.c.orig  2009-05-30 11:52:33.000000000 +0200
++++ grass-6.4.3/imagery/i.gensigset/subcluster.c       2014-06-07 22:22:00.023817040 +0200
+@@ -544,7 +544,7 @@
+           if (Sig->nsubclasses == 1) {
+               Sig->nsubclasses--;
+               singular = 2;
+-              G_warning(_("Unreliable clustering. "
++              G_warning("%s", _("Unreliable clustering. "
+                           "Try a smaller initial number of clusters"));
+           }
+           else {
+--- grass-6.4.3/imagery/i.group/main.c.orig    2014-05-23 18:53:52.727756744 +0200
++++ grass-6.4.3/imagery/i.group/main.c 2014-05-23 18:53:56.691089960 +0200
+@@ -99,7 +99,7 @@
+     }
+     if (k < 1 && !l->answer)  /* remove if input is requirement */
+-      G_fatal_error(_("No input raster map(s) specified"));
++      G_fatal_error("%s", _("No input raster map(s) specified"));
+     /* check if current mapset:  (imagery libs are very lacking in this dept)
+        - abort if not,
+@@ -107,7 +107,7 @@
+      */
+     if (G__name_is_fully_qualified(grp->answer, group, mapset)) {
+       if (strcmp(mapset, G_mapset()))
+-          G_fatal_error(_("Group must exist in the current mapset"));
++          G_fatal_error("%s", _("Group must exist in the current mapset"));
+     }
+     else {
+       strcpy(group, grp->answer);     /* FIXME for buffer overflow (have the parser check that?) */
+@@ -117,7 +117,7 @@
+       /* Remove files from Group */
+       if (I_find_group(group) == 0) {
+-          G_fatal_error(_("Specified group does not exist in current mapset"));
++          G_fatal_error("%s", _("Specified group does not exist in current mapset"));
+       }
+       if (sgrp->answer) {
+@@ -138,7 +138,7 @@
+           struct Ref ref;
+           if (I_find_group(group) == 0) {
+-              G_fatal_error(_("Specified group does not exist in current mapset"));
++              G_fatal_error("%s", _("Specified group does not exist in current mapset"));
+           }
+           if (sgrp->answer) {
+@@ -312,7 +312,7 @@
+     I_put_group_ref(group, &ref);
+     if (ref.nfiles == ref_tmp.nfiles) {
+-      G_warning(_("No raster map removed"));
++      G_warning("%s", _("No raster map removed"));
+     }
+     return 0;
+@@ -371,7 +371,7 @@
+     I_put_subgroup_ref(group, subgroup, &ref);
+     if (ref.nfiles == ref_tmp.nfiles) {
+-      G_warning(_("No raster map removed"));
++      G_warning("%s", _("No raster map removed"));
+     }
+     return 0;
+--- grass-6.4.3/imagery/i.his.rgb/openfiles.c.orig     2008-11-25 02:31:36.000000000 +0100
++++ grass-6.4.3/imagery/i.his.rgb/openfiles.c  2014-05-23 18:58:21.977750893 +0200
+@@ -20,11 +20,11 @@
+     /* allocate the cell row buffer */
+     if ((rowbuf[0] = G_allocate_cell_buf()) == NULL)
+-      G_fatal_error(_("Unable to allocate the input row buffer"));
++      G_fatal_error("%s", _("Unable to allocate the input row buffer"));
+     if ((rowbuf[1] = G_allocate_cell_buf()) == NULL)
+-      G_fatal_error(_("Unable to allocate the input row buffer"));
++      G_fatal_error("%s", _("Unable to allocate the input row buffer"));
+     if ((rowbuf[2] = G_allocate_cell_buf()) == NULL)
+-      G_fatal_error(_("Unable to allocate the input row buffer"));
++      G_fatal_error("%s", _("Unable to allocate the input row buffer"));
+     /* open input files (maps can be in different mapsets) */
+     if ((mapset = G_find_cell(h_name, "")) == NULL)
+--- grass-6.4.3/imagery/i.landsat.acca/algorithm.c.orig        2012-03-10 11:52:04.000000000 +0100
++++ grass-6.4.3/imagery/i.landsat.acca/algorithm.c     2014-05-23 18:59:09.807750187 +0200
+@@ -121,11 +121,11 @@
+     signa[KMEAN] = SCALE * signa[SUM_COLD] / ((double)count[COLD]);
+     signa[COVER] = ((double)count[COLD]) / ((double)count[TOTAL]);
+-    G_message(_("Preliminary scene analysis:"));
++    G_message("%s", _("Preliminary scene analysis:"));
+     G_message(_("* Desert index: %.2lf"), idesert);
+     G_message(_("* Snow cover: %.2lf %%"), 100. * value[SNOW]);
+     G_message(_("* Cloud cover: %.2lf %%"), 100. * signa[COVER]);
+-    G_message(_("* Temperature of clouds:"));
++    G_message("%s", _("* Temperature of clouds:"));
+     G_message(_("** Maximum: %.2lf K"), signa[KMAX]);
+     G_message(_("** Mean (%s cloud): %.2lf K"),
+           (review_warm ? "cold" : "all"), signa[KMEAN]);
+@@ -139,7 +139,7 @@
+        because then we have no desert condition (thanks to Matthias Eder, Germany) */
+     if (cloud_signature ||
+       (idesert > .5 && signa[COVER] > 0.004 && signa[KMEAN] < 295.)) {
+-      G_message(_("Histogram cloud signature:"));
++      G_message("%s", _("Histogram cloud signature:"));
+       value[MEAN] = quantile(0.5, hist_cold) + K_BASE;
+       value[DSTD] = sqrt(moment(2, hist_cold, 1));
+@@ -183,21 +183,21 @@
+           }
+       }
+-      G_message(_("Maximum temperature:"));
++      G_message("%s", _("Maximum temperature:"));
+       G_message(_("* Cold cloud: %.2lf K"), value[KUPPER]);
+       G_message(_("* Warm cloud: %.2lf K"), value[KLOWER]);
+     }
+     else {
+       if (signa[KMEAN] < 295.) {
+           /* Retained warm and cold clouds */
+-          G_message(_("Result: Scene with clouds"));
++          G_message("%s", _("Result: Scene with clouds"));
+           review_warm = 0;
+           value[KUPPER] = 0.;
+           value[KLOWER] = 0.;
+       }
+       else {
+           /* Retained cold clouds */
+-          G_message(_("Result: Scene cloud free"));
++          G_message("%s", _("Result: Scene cloud free"));
+           review_warm = 1;
+           value[KUPPER] = 0.;
+           value[KLOWER] = 0.;
+@@ -235,7 +235,7 @@
+     out->rast = G_allocate_raster_buf(CELL_TYPE);
+     /* ----- ----- */
+-    G_important_message(_("Processing first pass..."));
++    G_important_message("%s", _("Processing first pass..."));
+     stats[SUM_COLD] = 0.;
+     stats[SUM_WARM] = 0.;
+@@ -397,9 +397,9 @@
+       G_fatal_error(_("Unable to create raster map <%s>"), tmp.name);
+     if (upper == 0.)
+-      G_important_message(_("Removing ambiguous pixels..."));
++      G_important_message("%s", _("Removing ambiguous pixels..."));
+     else
+-      G_important_message(_("Pass two processing..."));
++      G_important_message("%s", _("Pass two processing..."));
+     nrows = G_window_rows();
+     ncols = G_window_cols();
+--- grass-6.4.3/imagery/i.landsat.acca/tools.c.orig    2012-03-10 11:52:04.000000000 +0100
++++ grass-6.4.3/imagery/i.landsat.acca/tools.c 2014-06-03 21:50:37.964392988 +0200
+@@ -139,7 +139,7 @@
+     if ((tmp.fd = G_open_raster_new(tmp.name, CELL_TYPE)) < 0)
+       G_fatal_error(_("Unable to create raster map <%s>"), tmp.name);
+-    G_important_message(_("Filling small holes in clouds..."));
++    G_important_message("%s", _("Filling small holes in clouds..."));
+     /* Se puede acelerar creandolos nulos y luego arast = brast
+        brast = crast y cargando crast solamente
+--- grass-6.4.3/imagery/i.landsat.toar/main.c.orig     2014-05-23 19:02:54.837745355 +0200
++++ grass-6.4.3/imagery/i.landsat.toar/main.c  2014-05-23 19:02:56.917745160 +0200
+@@ -238,7 +238,7 @@
+               lsat.sensor);
+       if (!lsat.sensor || lsat.number > 8 || lsat.number < 1)
+-          G_fatal_error(_("Failed to identify satellite"));
++          G_fatal_error("%s", _("Failed to identify satellite"));
+       G_debug(1, "Landsat-%d %s with data set in met file [%s]",
+               lsat.number, lsat.sensor, met);
+@@ -256,7 +256,7 @@
+       /* Need gain */
+       if (strcmp(sensorname, "tm7") == 0) {
+           if (bgain->answer == NULL || strlen(bgain->answer) != 9)
+-              G_fatal_error(_("Landsat-7 requires band gain with 9 (H/L) data"));
++              G_fatal_error("%s", _("Landsat-7 requires band gain with 9 (H/L) data"));
+           set_ETM(&lsat, bgain->answer);
+       }
+       /* Not need gain */
+@@ -449,7 +449,7 @@
+     * ------------ CALCULUS -----------------
+     *****************************************/
+-    G_message(_("Calculating..."));
++    G_message("%s", _("Calculating..."));
+     for (i = 0; i < lsat.bands; i++) {
+       sprintf(band_in, "%s%d", inputname,
+               (named->answer ? lsat.band[i].number : lsat.band[i].code));
+--- grass-6.4.3/imagery/i.landsat.toar/landsat_met.c.orig      2013-07-09 21:05:44.000000000 +0200
++++ grass-6.4.3/imagery/i.landsat.toar/landsat_met.c   2014-06-04 15:30:08.326401315 +0200
+@@ -351,14 +351,14 @@
+           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);
+--- grass-6.4.3/imagery/i.modis.qc/main.c.orig 2012-03-10 11:52:04.000000000 +0100
++++ grass-6.4.3/imagery/i.modis.qc/main.c      2014-05-23 19:15:40.021062756 +0200
+@@ -178,26 +178,26 @@
+     if ((!strcmp(qcflag, "cloud") && (strcmp(product, "mod09Q1"))) || 
+       (!strcmp(qcflag, "diff_orbit_from_500m") && (strcmp(product, "mod09Q1"))))
+-      G_fatal_error(_("This flag is only available for MOD09Q1 @ 250m products"));
++      G_fatal_error("%s", _("This flag is only available for MOD09Q1 @ 250m products"));
+     if (!strcmp(qcflag, "data_quality")) {
+       if (bandno < 1 || bandno > 7)
+-          G_fatal_error(_("Band number out of allowed range [1-7]"));
++          G_fatal_error("%s", _("Band number out of allowed range [1-7]"));
+       if (!strcmp(product, "mod09Q1") && bandno > 2)
+-          G_fatal_error(_("mod09Q1 product only has 2 bands"));
++          G_fatal_error("%s", _("mod09Q1 product only has 2 bands"));
+     }
+     
+     if ((!strcmp(qcflag, "mandatory_qa") && (strcmp(product, "mod11A1"))) ||
+         (!strcmp(qcflag, "data_quality_flag") && (strcmp(product, "mod11A1"))) ||
+         (!strcmp(qcflag, "emis_error") && (strcmp(product, "mod11A1"))) ||
+         (!strcmp(qcflag, "lst_error") && (strcmp(product, "mod11A1"))))
+-        G_fatal_error(_("This flag is only available for MOD11A1 @ 1Km products"));
++        G_fatal_error("%s", _("This flag is only available for MOD11A1 @ 1Km products"));
+     if ((!strcmp(qcflag, "mandatory_qa") && (strcmp(product, "mod11A2"))) || 
+       (!strcmp(qcflag, "data_quality_flag") && (strcmp(product, "mod11A2"))) ||
+       (!strcmp(qcflag, "emis_error") && (strcmp(product, "mod11A2"))) ||
+       (!strcmp(qcflag, "lst_error") && (strcmp(product, "mod11A2"))))
+-      G_fatal_error(_("This flag is only available for MOD11A2 @ 1Km products"));
++      G_fatal_error("%s", _("This flag is only available for MOD11A2 @ 1Km products"));
+     if ((!strcmp(qcflag, "aerosol_quantity") && (strcmp(product, "mod09A1s"))) || 
+       (!strcmp(qcflag, "brdf_correction_performed") && (strcmp(product, "mod09A1s"))) ||
+@@ -210,7 +210,7 @@
+       (!strcmp(qcflag, "land_water") && (strcmp(product, "mod09A1s"))) ||
+       (!strcmp(qcflag, "mod35_snow_ice") && (strcmp(product, "mod09A1s"))) ||
+       (!strcmp(qcflag, "pixel_adjacent_to_cloud") && (strcmp(product, "mod09A1s"))))
+-      G_fatal_error(_("This flag is only available for MOD09A1s @ 500m products"));
++      G_fatal_error("%s", _("This flag is only available for MOD09A1s @ 500m products"));
+     mapset = G_find_cell2(qcchan, "");
+     if (mapset == NULL) {
+@@ -351,7 +351,7 @@
+                     c = mod09A1sk(c);
+             }
+           else
+-                G_fatal_error(_("Unknown flag name, please check spelling"));
++                G_fatal_error("%s", _("Unknown flag name, please check spelling"));
+           outrast[col] = c;
+       }
+--- grass-6.4.3/imagery/i.rectify/readcell.c.orig      2011-06-04 11:52:10.000000000 +0200
++++ grass-6.4.3/imagery/i.rectify/readcell.c   2014-05-23 19:20:38.361056537 +0200
+@@ -52,13 +52,13 @@
+       filename = G_tempfile();
+       c->fd = open(filename, O_RDWR | O_CREAT | O_EXCL, 0600);
+       if (c->fd < 0)
+-          G_fatal_error(_("Unable to open temporary file"));
++          G_fatal_error("%s", _("Unable to open temporary file"));
+       remove(filename);
+     }
+     else
+       c->fd = -1;
+-    G_important_message(_("Allocating memory and reading input map..."));
++    G_important_message("%s", _("Allocating memory and reading input map..."));
+     G_percent(0, nrows, 5);
+     for (i = 0; i < c->nblocks; i++)
+@@ -84,7 +84,7 @@
+                   if (write
+                       (c->fd, &tmpbuf[(y * nx + x) * BDIM],
+                        BDIM * sizeof(DCELL)) < 0)
+-                      G_fatal_error(_("Error writing segment file"));
++                      G_fatal_error("%s", _("Error writing segment file"));
+               }
+               else
+                   memcpy(&c->blocks[BKIDX(c, HI(row), x)][LO(y)][0],
+@@ -111,7 +111,7 @@
+     off_t offset = (off_t) idx * sizeof(DCELL) << L2BSIZE;
+     if (c->fd < 0)
+-      G_fatal_error(_("Internal error: cache miss on fully-cached map"));
++      G_fatal_error("%s", _("Internal error: cache miss on fully-cached map"));
+     if (ref >= 0)
+       c->grid[ref] = NULL;
+@@ -120,10 +120,10 @@
+     c->refs[replace] = idx;
+     if (lseek(c->fd, offset, SEEK_SET) < 0)
+-      G_fatal_error(_("Error seeking on segment file"));
++      G_fatal_error("%s", _("Error seeking on segment file"));
+     if (read(c->fd, p, sizeof(block)) < 0)
+-      G_fatal_error(_("Error writing segment file"));
++      G_fatal_error("%s", _("Error writing segment file"));
+     return p;
+ }
+--- grass-6.4.3/imagery/i.rectify/target.c.orig        2008-11-25 02:31:37.000000000 +0100
++++ grass-6.4.3/imagery/i.rectify/target.c     2014-06-04 15:30:32.139734152 +0200
+@@ -34,6 +34,6 @@
+   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 */
+ }
+--- grass-6.4.3/imagery/i.rectify/cp.c.orig    2008-11-25 02:31:37.000000000 +0100
++++ grass-6.4.3/imagery/i.rectify/cp.c 2014-06-05 21:40:57.630803389 +0200
+@@ -40,7 +40,7 @@
+        */
+       return 1;
+     }
+-    G_fatal_error(msg);
++    G_fatal_error("%s", msg);
+     return 0; /* G_fatal_error() calls exit() */
+ }
+--- grass-6.4.3/imagery/i.rectify/main.c.orig  2011-05-21 11:52:10.000000000 +0200
++++ grass-6.4.3/imagery/i.rectify/main.c       2014-06-07 22:22:28.883816438 +0200
+@@ -266,11 +266,11 @@
+               G_fatal_error(_("Extension <%s> is illegal"), extension);
+               
+           if (G_find_cell(result, G_mapset())) {
+-              G_warning(_("The following raster map already exists in"));
++              G_warning("%s", _("The following raster map already exists in"));
+               G_warning(_("target LOCATION %s, MAPSET %s:"),
+                         G_location(), G_mapset());
+               G_warning("<%s>", result);
+-              G_fatal_error(_("Orthorectification cancelled."));
++              G_fatal_error("%s", _("Orthorectification cancelled."));
+           }
+       }
+       
+@@ -285,7 +285,7 @@
+       
+       if (tres->answer) {
+           if (!((res = atof(tres->answer)) > 0))
+-              G_warning(_("Target resolution must be > 0, ignored"));
++              G_warning("%s", _("Target resolution must be > 0, ignored"));
+       }
+       /* Calculate smallest region */
+       if (a->answer) {
+@@ -320,12 +320,12 @@
+     G_warning(_("Input raster map <%s> does not exist in group <%s>."),
+           file, grp);
+-    G_message(_("Try:"));
++    G_message("%s", _("Try:"));
+     for (n = 0; n < ref.nfiles; n++)
+       G_message("%s", ref.file[n].name);
+-    G_fatal_error(_("Exit!"));
++    G_fatal_error("%s", _("Exit!"));
+ }
+ static char *make_ipol_list(void)
+--- grass-6.4.3/imagery/i.rgb.his/openfiles.c.orig     2008-11-25 02:31:36.000000000 +0100
++++ grass-6.4.3/imagery/i.rgb.his/openfiles.c  2014-05-23 19:21:18.277722372 +0200
+@@ -34,11 +34,11 @@
+     /* allocate the cell row buffer */
+     if ((rowbuf[0] = G_allocate_cell_buf()) == NULL)
+-      G_fatal_error(_("Unable to allocate the input row buffer"));
++      G_fatal_error("%s", _("Unable to allocate the input row buffer"));
+     if ((rowbuf[1] = G_allocate_cell_buf()) == NULL)
+-      G_fatal_error(_("Unable to allocate the input row buffer"));
++      G_fatal_error("%s", _("Unable to allocate the input row buffer"));
+     if ((rowbuf[2] = G_allocate_cell_buf()) == NULL)
+-      G_fatal_error(_("Unable to allocate the input row buffer"));
++      G_fatal_error("%s", _("Unable to allocate the input row buffer"));
+     return;
+ }
+--- grass-6.4.3/imagery/i.smap/bouman/multialloc.c.orig        2008-12-20 11:45:22.000000000 +0100
++++ grass-6.4.3/imagery/i.smap/bouman/multialloc.c     2014-05-23 19:24:17.624385301 +0200
+@@ -112,7 +112,7 @@
+     char *pt;
+     if ((pt = multialloc(size, 2, ht, wd)) == NULL)
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+     return ((unsigned char **)pt);
+ }
+--- grass-6.4.3/imagery/i.smap/bouman/interp.c.orig    2008-12-20 11:45:22.000000000 +0100
++++ grass-6.4.3/imagery/i.smap/bouman/interp.c 2014-06-04 15:30:58.189733609 +0200
+@@ -35,7 +35,7 @@
+       /* Construct image log likelihood pyramid */
+       make_pyramid(ll_pym, region, M, alpha_dec, vlevel);
+       if (vlevel >= 2)
+-          G_message(_("pyramid constructed."));
++          G_message("%s", _("pyramid constructed."));
+       /* Perform sequential MAP segmentation using EM algorithm */
+       seq_MAP_routine(sf_pym, region, ll_pym, M, alpha_dec, vlevel);
+@@ -66,7 +66,7 @@
+     /* allocate memory */
+     if ((N = (double ***)multialloc(sizeof(double), 3, 2, 3, 2)) == NULL)
+-      G_fatal_error(_("Unable to allocate memory"));
++      G_fatal_error("%s", _("Unable to allocate memory"));
+     regionary = (struct Region *)G_malloc((D + 1) * sizeof(struct Region));
+     period = (int *)G_malloc(D * sizeof(int));
+@@ -234,7 +234,7 @@
+     alpha2 = alpha[2];
+     Constant = (1 - alpha0 - 2 * alpha1 - alpha2) / M;
+     if (Constant < 0)
+-      G_fatal_error(_("Invalid parameter values"));
++      G_fatal_error("%s", _("Invalid parameter values"));
+     /* precompute logs and zero static vector */
+     for (nn0 = 0; nn0 < 2; nn0++)
+--- grass-6.4.3/imagery/i.smap/bouman/segment.c.orig   2008-12-20 11:45:22.000000000 +0100
++++ grass-6.4.3/imagery/i.smap/bouman/segment.c        2014-06-05 21:41:11.497469767 +0200
+@@ -67,7 +67,7 @@
+     /* Check for too many classes */
+     if (nclasses > 256)
+-      G_fatal_error(_("Number of classes must be < 256"));
++      G_fatal_error("%s", _("Number of classes must be < 256"));
+     /* allocate alpha_dec parameters */
+     D = levels(block_size, block_size);
+--- grass-6.4.3/imagery/i.target/main.c.orig   2011-04-23 11:52:12.000000000 +0200
++++ grass-6.4.3/imagery/i.target/main.c        2014-05-23 19:24:42.021051459 +0200
+@@ -76,7 +76,7 @@
+      */
+     if (G__name_is_fully_qualified(group->answer, group_name, mapset_name)) {
+       if (strcmp(mapset_name, G_mapset()))
+-          G_fatal_error(_("Group must exist in the current mapset"));
++          G_fatal_error("%s", _("Group must exist in the current mapset"));
+     }
+     else {
+       strcpy(group_name, group->answer);      /* FIXME for buffer overflow (have the parser check that?) */
+@@ -97,7 +97,7 @@
+     /* error if -c is specified with other options, or options are incomplete */
+     if ((c->answer && (mapset->answer || loc->answer)) ||
+       (!c->answer && (!mapset->answer || !loc->answer)))
+-      G_fatal_error(_("Use either the Current Mapset and "
++      G_fatal_error("%s", _("Use either the Current Mapset and "
+                       "Location Flag (-c)\n OR\n manually enter the variables"));
+     if (c->answer) {
+--- grass-6.4.3/imagery/i.topo.corr/main.c.orig        2011-08-06 11:52:05.000000000 +0200
++++ grass-6.4.3/imagery/i.topo.corr/main.c     2014-05-23 19:25:21.327717306 +0200
+@@ -129,10 +129,10 @@
+       exit(EXIT_FAILURE);
+     if (ilum->answer && azim->answer == NULL)
+-      G_fatal_error(_("Solar azimuth is necessary to calculate illumination terrain model"));
++      G_fatal_error("%s", _("Solar azimuth is necessary to calculate illumination terrain model"));
+     if (!ilum->answer && input->answer == NULL)
+-      G_fatal_error(_("Reflectance maps are necessary to make topographic correction"));
++      G_fatal_error("%s", _("Reflectance maps are necessary to make topographic correction"));
+     zenith = atof(zeni->answer);
+@@ -164,7 +164,7 @@
+           eval_d_cosi(&out, &dem, zenith, azimuth);
+       }
+       else {
+-          G_fatal_error(_("Elevation raster map of unknown type"));
++          G_fatal_error("%s", _("Elevation raster map of unknown type"));
+       }
+       /* Close files, buffers, and write history */
+       G_free(dem.rast);
+@@ -198,7 +198,7 @@
+       full_open_old(&dem, base->answer);
+       if (dem.type == CELL_TYPE)
+-          G_fatal_error(_("Illumination model is of CELL type"));
++          G_fatal_error("%s", _("Illumination model is of CELL type"));
+       for (i = 0; input->answers[i] != NULL; i++) {
+           G_message("Band %s: ", input->answers[i]);
+--- grass-6.4.3/imagery/i.pca/support.c.orig   2012-09-01 11:52:28.000000000 +0200
++++ grass-6.4.3/imagery/i.pca/support.c        2014-05-23 19:25:51.514383344 +0200
+@@ -41,7 +41,7 @@
+     sprintf(hist.edhist[0], "Eigen values, (vectors), and [percent importance]:");
+     if(first_map)
+-      G_message(_("Eigen values, (vectors), and [percent importance]:"));
++      G_message("%s", _("Eigen values, (vectors), and [percent importance]:"));
+     for (i = 0; i < bands; i++)
+       eigval_total += eigval[i];
+@@ -63,7 +63,7 @@
+       sprintf(tmpa, "[%5.2f%%]", eigval[i] * 100/eigval_total);
+       strcat(tmpeigen, tmpa);
+-      sprintf(hist.edhist[i + 1], tmpeigen);
++      strcpy(hist.edhist[i + 1], tmpeigen);
+       /* write eigen values to stdout */
+       if (first_map)
+--- grass-6.4.3/imagery/i.pca/main.c.orig      2012-09-01 11:52:28.000000000 +0200
++++ grass-6.4.3/imagery/i.pca/main.c   2014-06-04 15:31:59.616398995 +0200
+@@ -104,7 +104,7 @@
+     for (bands = 0; opt_in->answers[bands] != NULL; bands++) ;
+     if (bands < 2)
+-      G_fatal_error(_("Sorry, at least 2 input bands must be provided"));
++      G_fatal_error("%s", _("Sorry, at least 2 input bands must be provided"));
+     /* default values */
+     scale = 1;
+@@ -143,7 +143,7 @@
+     }
+     if (!calc_mu_cov(inp_fd, covar, mu, stddev, bands))
+-      G_fatal_error(_("No non-null values"));
++      G_fatal_error("%s", _("No non-null values"));
+     eigmat[0] = memcpy(eigmat[0], covar[0], bands * bands);
+     G_debug(1, "Calculating eigenvalues and eigenvectors...");
+@@ -215,7 +215,7 @@
+           if (*scale_min == 0)
+               *scale = 0;
+           else {
+-              G_warning(_("Scale range length should be > 0. "
++              G_warning("%s", _("Scale range length should be > 0. "
+                           "Using default values: 0,255."));
+               *scale_min = 0;
+               *scale_max = 255;
+@@ -261,7 +261,7 @@
+     }
+     sum = mu;
+-    G_message(_("Computing covariance matrix..."));
++    G_message("%s", _("Computing covariance matrix..."));
+     for (row = 0; row < rows; row++) {
+       G_percent(row, rows, 2);
+@@ -378,7 +378,7 @@
+           new_range = (double)(scale_max - scale_min);
+       }
+       else {
+-          G_message(_("Calculating principal components..."));
++          G_message("%s", _("Calculating principal components..."));
+       }
+       for (row = 0; row < rows; row++) {
+--- grass-6.4.3/imagery/i.cca/transform.c.orig 2008-11-25 02:31:39.000000000 +0100
++++ grass-6.4.3/imagery/i.cca/transform.c      2014-05-23 19:26:22.467716032 +0200
+@@ -15,13 +15,13 @@
+     /* allocate row buffers for each band */
+     for (i = 1; i <= bands; i++)
+       if ((rowbufs[i] = G_allocate_cell_buf()) == NULL)
+-          G_fatal_error(_("Unable to allocate cell buffers."));
++          G_fatal_error("%s", _("Unable to allocate cell buffers."));
+     for (i = 0; i < rows; i++) {
+       /* get one row of data */
+       for (j = 1; j <= bands; j++)
+           if (G_get_map_row(datafds[j], rowbufs[j], i) < 0)
+-              G_fatal_error(_("Error reading cell map during transform."));
++              G_fatal_error("%s", _("Error reading cell map during transform."));
+       /* transform each cell in the row */
+       for (l = 0; l < cols; l++) {
+@@ -43,12 +43,12 @@
+       /* output the row of data */
+       for (j = 1; j <= bands; j++)
+           if (G_put_raster_row(outfds[j], rowbufs[j], CELL_TYPE) < 0)
+-              G_fatal_error(_("Error writing cell map during transform."));
++              G_fatal_error("%s", _("Error writing cell map during transform."));
+     }
+     for (i = 1; i <= bands; i++)
+       G_free(rowbufs[i]);
+-    G_message(_("Transform completed.\n"));
++    G_message("%s", _("Transform completed.\n"));
+     return 0;
+ }
+--- grass-6.4.3/imagery/i.cca/main.c.orig      2013-07-15 14:15:26.000000000 +0200
++++ grass-6.4.3/imagery/i.cca/main.c   2014-06-04 15:32:28.886398385 +0200
+@@ -119,25 +119,25 @@
+     /* check group, subgroup */
+     I_init_group_ref(&refs);
+     if (I_find_group(grp_opt->answer) <= 0)
+-      G_fatal_error(_("Unknown imagery group."));
++      G_fatal_error("%s", _("Unknown imagery group."));
+     if (I_get_subgroup_ref(grp_opt->answer, subgrp_opt->answer, &refs) <= 0)
+-      G_fatal_error(_("Unable to find subgroup reference information."));
++      G_fatal_error("%s", _("Unable to find subgroup reference information."));
+     /* open and input the signatures file */
+     if ((sigfp =
+        I_fopen_signature_file_old(grp_opt->answer, subgrp_opt->answer,
+                                   sig_opt->answer)) == NULL)
+-      G_fatal_error(_("Unable to open the signature file"));
++      G_fatal_error("%s", _("Unable to open the signature file"));
+     I_init_signatures(&sigs, refs.nfiles);
+     if (I_read_signatures(sigfp, &sigs) < 0)
+-      G_fatal_error(_("Error while reading the signatures file."));
++      G_fatal_error("%s", _("Error while reading the signatures file."));
+     fclose(sigfp);
+     nclass = sigs.nsigs;
+     if (nclass < 2)
+-      G_fatal_error(_("Need at least two signatures in signature file."));
++      G_fatal_error("%s", _("Need at least two signatures in signature file."));
+     /* check the number of input bands */
+     bands = refs.nfiles;
+--- grass-6.4.3/imagery/i.atcorr/GeomCond.cpp.orig     2011-10-01 11:52:04.000000000 +0200
++++ grass-6.4.3/imagery/i.atcorr/GeomCond.cpp  2014-05-23 19:26:48.481048823 +0200
+@@ -87,7 +87,7 @@
+     day_number(ia, nojour);
+     pos_fft (nojour, tu);
+     if (asol > 90.f)
+-      G_warning(_("The sun is not raised"));
++      G_warning("%s", _("The sun is not raised"));
+ }
+ void GeomCond::day_number(long int ia, long int& j)
+@@ -225,7 +225,7 @@
+     double sn, zt, xt, yt, teta, ylat, ylon;
+     if((1. / cosx2) > ((yk * yk) / (yk*yk - 1.)))
+     {
+-      G_warning(_("No possibility to compute lat. and long."));
++      G_warning("%s", _("No possibility to compute lat. and long."));
+       return;
+     }
+     else
+--- grass-6.4.3/imagery/i.atcorr/computations.cpp.orig 2008-11-25 02:31:36.000000000 +0100
++++ grass-6.4.3/imagery/i.atcorr/computations.cpp      2014-06-04 15:37:51.183058334 +0200
+@@ -174,7 +174,7 @@
+ {
+     if( ha >= 7 ) 
+     {
+-      G_warning(_("Check aerosol measurements or plane altitude"));
++      G_warning("%s", _("Check aerosol measurements or plane altitude"));
+       return 0;
+     }
+--- grass-6.4.3/imagery/i.atcorr/AerosolModel.cpp.orig 2008-11-25 02:31:36.000000000 +0100
++++ grass-6.4.3/imagery/i.atcorr/AerosolModel.cpp      2014-06-05 21:42:27.907468174 +0200
+@@ -956,7 +956,7 @@
+       filename = filename.substr(0, filename.find(" "));
+       break;
+     }
+-    default: G_warning(_("Unknown aerosol model!"));
++    default: G_warning("%s", _("Unknown aerosol model!"));
+     }
+     if(iaer >= 8 && iaer <= 11) 
+--- grass-6.4.3/imagery/i.atcorr/AtmosModel.cpp.orig   2008-11-25 02:31:36.000000000 +0100
++++ grass-6.4.3/imagery/i.atcorr/AtmosModel.cpp        2014-06-07 22:22:45.657149425 +0200
+@@ -366,7 +366,7 @@
+       us62();
+       break;
+     }
+-    default: G_warning(_("Unknown atmospheric model!"));
++    default: G_warning("%s", _("Unknown atmospheric model!"));
+     }
+ }
+--- grass-6.4.3/imagery/i.atcorr/main.cpp.orig 2011-06-11 11:52:07.000000000 +0200
++++ grass-6.4.3/imagery/i.atcorr/main.cpp      2014-06-08 08:47:02.113035380 +0200
+@@ -116,7 +116,7 @@
+                      G_fully_qualified_name(name, mapset));
+     if(G_set_window(&iimg_head) < 0) 
+-      G_fatal_error (_("Invalid graphics region coordinates"));
++      G_fatal_error ("%s", _("Invalid graphics region coordinates"));
+ }
+@@ -395,7 +395,7 @@
+             buf[col] = buf[col] * ((float)oscale.max - (float)oscale.min) + oscale.min;
+             if(~oflt && (buf[col] > (float)oscale.max))
+-              G_warning(_("The output data will overflow. Reflectance > 100%%"));
++              G_warning("%s", _("The output data will overflow. Reflectance > 100%%"));
+       }
+         /* write output */
+@@ -540,7 +540,7 @@
+         if(range.min==range.max)
+         {
+-            G_warning(_("Scale range length should be > 0; Using default values: [0,255]"));
++            G_warning("%s", _("Scale range length should be > 0; Using default values: [0,255]"));
+             range.min = 0;
+             range.max = 255;
+@@ -638,10 +638,10 @@
+     /* switch on optimization automatically if elevation and/or visibility map is given */
+     if (opts.optimize->answer)
+-      G_important_message(_("Optimization is switched on automatically, the -o flag has no effect"));
++      G_important_message("%s", _("Optimization is switched on automatically, the -o flag has no effect"));
+     /* process the input raster and produce our atmospheric corrected output raster. */
+-    G_message(_("Atmospheric correction..."));
++    G_message("%s", _("Atmospheric correction..."));
+     process_raster(iimg_fd, imask, iscale, ialt_fd, ivis_fd,
+                    oimg_fd, opts.oflt->answer, oscale);
+@@ -661,7 +661,7 @@
+     copy_colors(opts.iimg->answer, iimg_mapset, opts.oimg->answer);
+     G_set_window(&orig_window);
+-    G_message(_("Atmospheric correction complete."));
++    G_message("%s", _("Atmospheric correction complete."));
+     exit(EXIT_SUCCESS);
+ }
+--- grass-6.4.3/imagery/i.fft/save_fft.c.orig  2008-12-06 11:45:18.000000000 +0100
++++ grass-6.4.3/imagery/i.fft/save_fft.c       2014-05-23 19:30:57.884376958 +0200
+@@ -14,12 +14,12 @@
+     min = *minimum;
+     if ((fp = G_fopen_new_misc("cell_misc", "fftreal", Cellmap_real)) == NULL)
+-      G_fatal_error(_("Unable to open file in the 'cell_misc' directory"));
++      G_fatal_error("%s", _("Unable to open file in the 'cell_misc' directory"));
+     fwrite((char *)data[0], sizeof(double), (size_t) total, fp);
+     fclose(fp);
+     if ((fp = G_fopen_new_misc("cell_misc", "fftimag", Cellmap_imag)) == NULL)
+-      G_fatal_error(_("Unable to open file in the 'cell_misc' directory"));
++      G_fatal_error("%s", _("Unable to open file in the 'cell_misc' directory"));
+     fwrite((char *)data[1], sizeof(double), (size_t) total, fp);
+     fclose(fp);
+--- grass-6.4.3/imagery/i.fft/fftmain.c.orig   2013-07-15 14:15:26.000000000 +0200
++++ grass-6.4.3/imagery/i.fft/fftmain.c        2014-06-04 15:38:36.876390715 +0200
+@@ -112,7 +112,7 @@
+       exit(EXIT_FAILURE);
+     if ((maskfd = G_maskfd()) >= 0)
+-      G_warning(_("Raster MASK found, consider to remove "
++      G_warning("%s", _("Raster MASK found, consider to remove "
+                   "(see man-page). Will continue..."));
+@@ -126,7 +126,7 @@
+     sscanf(op4->answer, "%d", &Range);
+     if (Range <= 0)
+-      G_fatal_error(_("Range less than or equal to zero not allowed"));
++      G_fatal_error("%s", _("Range less than or equal to zero not allowed"));
+     G_get_set_window(&window);        /* get the current window for later */
+     put_orig_window(&window);
+@@ -167,7 +167,7 @@
+             Cellmap_orig);
+     for (i = 0; i < or; i++) {
+       if (G_get_map_row(inputfd, cell_row, i) < 0)
+-          G_fatal_error(_("Error while reading input raster map."));
++          G_fatal_error("%s", _("Error while reading input raster map."));
+       for (j = 0; j < oc; j++)
+           *(data[0] + (i * cols) + j) = (double)cell_row[j];
+       
+@@ -179,7 +179,7 @@
+     G_free(cell_row);
+     /* perform FFT */
+-    G_message(_("Starting FFT..."));
++    G_message("%s", _("Starting FFT..."));
+     fft(-1, data, totsize, cols, rows);
+     
+     /* set up a window for the transform cell map */
+@@ -198,7 +198,7 @@
+     cell_row2 = G_allocate_cell_buf();
+     /* rotate the data array for standard display */
+-    G_message(_("Rotating data..."));
++    G_message("%s", _("Rotating data..."));
+     for (i = 0; i < rows; i++) {
+       for (j = 0; j < cols / 2; j++) {
+           temp = *(data[0] + i * cols + j);
+@@ -222,13 +222,13 @@
+       }
+     }
+-    G_message(_("Writing transformed data..."));
++    G_message("%s", _("Writing transformed data..."));
+     /* write out the double arrays to cell_misc/file/FFTREAL and FFTIMAG */
+     max = 0.0;
+     min = 0.0;
+     save_fft(totsize, data, &max, &min);
+-    G_message(_("Writing viewable versions of transformed data..."));
++    G_message("%s", _("Writing viewable versions of transformed data..."));
+     /* Write out result to a new cell map */
+     /*
+        for (i=0; i<rows; i++) {
+@@ -271,7 +271,7 @@
+     for (i = 0; i < 2; i++)
+       G_free(data[i]);
+-    G_done_msg(_(" "));
++    G_done_msg("%s", _(" "));
+     exit(EXIT_SUCCESS);
+ }
+--- grass-6.4.3/imagery/i.ifft/orig_wind.c.orig        2008-12-06 11:45:18.000000000 +0100
++++ grass-6.4.3/imagery/i.ifft/orig_wind.c     2014-05-23 19:31:15.721043253 +0200
+@@ -24,7 +24,7 @@
+       hd->east != tmphd.east ||
+       hd->west != tmphd.west ||
+       hd->ew_res != tmphd.ew_res || hd->ns_res != tmphd.ns_res)
+-      G_fatal_error(_("The real and imaginary original windows did not match"));
++      G_fatal_error("%s", _("The real and imaginary original windows did not match"));
+     return 0;
+ }
+--- grass-6.4.3/imagery/i.ifft/ifftmain.c.orig 2013-07-15 14:15:26.000000000 +0200
++++ grass-6.4.3/imagery/i.ifft/ifftmain.c      2014-06-04 15:39:11.849723320 +0200
+@@ -98,7 +98,7 @@
+     if ((realfp =
+        G_fopen_old_misc("cell_misc", "fftreal", Cellmap_real,
+                         realmapset)) == NULL)
+-      G_fatal_error(_("Unable to open real-image in the 'cell_misc' directory. "
++      G_fatal_error("%s", _("Unable to open real-image in the 'cell_misc' directory. "
+                       "Raster map probably wasn't created by i.fft"));
+     if ((imagmapset = G_find_cell(Cellmap_imag, "")) == NULL)
+@@ -108,7 +108,7 @@
+     if ((imagfp =
+        G_fopen_old_misc("cell_misc", "fftimag", Cellmap_imag,
+                         imagmapset)) == NULL)
+-      G_fatal_error(_("Unable to open imaginary-image in the 'cell_misc' directory. "
++      G_fatal_error("%s", _("Unable to open imaginary-image in the 'cell_misc' directory. "
+                       "Raster map probably wasn't created by i.fft"));
+     /* check command line args for validity */
+@@ -141,14 +141,14 @@
+     data[1] = (double *)G_malloc((rows * cols) * sizeof(double));
+     /* Initialize real & complex components to zero */
+-    G_message(_("Reading raster maps..."));
++    G_message("%s", _("Reading raster maps..."));
+     {
+       fread((char *)data[0], sizeof(double), totsize, realfp);
+       fread((char *)data[1], sizeof(double), totsize, imagfp);
+     }
+     /* Read in cell map values */
+-    G_message(_("Masking raster maps..."));
++    G_message("%s", _("Masking raster maps..."));
+     maskfd = G_maskfd();
+     if (maskfd >= 0)
+       maskbuf = G_allocate_cell_buf();
+@@ -169,7 +169,7 @@
+       }
+     }
+-    G_message(_("Rotating data..."));
++    G_message("%s", _("Rotating data..."));
+     /* rotate the data array for standard display */
+     for (i = 0; i < rows; i++) {
+       double temp;
+@@ -208,7 +208,7 @@
+     }
+     /* perform inverse FFT */
+-    G_message(_("Starting Inverse FFT..."));
++    G_message("%s", _("Starting Inverse FFT..."));
+     fft(1, data, totsize, cols, rows);
+     /* set up a window for the transform cell map */
+@@ -222,7 +222,7 @@
+     cell_row = G_allocate_cell_buf();
+     /* Write out result to a new cell map */
+-    G_message(_("Writing data..."));
++    G_message("%s", _("Writing data..."));
+     for (i = 0; i < or; i++) {
+       for (j = 0; j < oc; j++) {
+           *(cell_row + j) = (CELL) (*(data[0] + i * cols + j) + 0.5);
+--- grass-6.4.3/imagery/i.zc/main.c.orig       2013-07-15 14:15:27.000000000 +0200
++++ grass-6.4.3/imagery/i.zc/main.c    2014-05-23 19:32:22.834375187 +0200
+@@ -120,17 +120,17 @@
+     sscanf(threshold->answer, "%1lf", &Thresh);
+     if (Thresh <= 0.0)
+-      G_fatal_error(_("Threshold less than or equal to zero not allowed"));
++      G_fatal_error("%s", _("Threshold less than or equal to zero not allowed"));
+     Thresh /= 100.0;
+     sscanf(width->answer, "%f", &Width);
+     if (Width <= 0.0)
+-      G_fatal_error(_("Width less than or equal to zero not allowed"));
++      G_fatal_error("%s", _("Width less than or equal to zero not allowed"));
+     sscanf(orientations->answer, "%d", &NumOrients);
+     if (NumOrients < 1)
+-      G_fatal_error(_("Fewer than 1 orientation classes not allowed"));
++      G_fatal_error("%s", _("Fewer than 1 orientation classes not allowed"));
+     /* get the current window for later */
+@@ -154,7 +154,7 @@
+     data[1] = (double *)G_malloc(totsize * sizeof(double));
+     /* Initialize real & complex components to zero */
+-    G_message(_("Initializing data..."));
++    G_message("%s", _("Initializing data..."));
+     for (i = 0; i < (totsize); i++) {
+       *(data[0] + i) = 0.0;
+       *(data[1] + i) = 0.0;
+@@ -164,10 +164,10 @@
+     cell_row = G_allocate_cell_buf();
+     /* Read in cell map values */
+-    G_message(_("Reading raster map..."));
++    G_message("%s", _("Reading raster map..."));
+     for (i = 0; i < or; i++) {
+       if (G_get_map_row(inputfd, cell_row, i) < 0)
+-          G_fatal_error(_("Error while reading input raster map."));
++          G_fatal_error("%s", _("Error while reading input raster map."));
+       for (j = 0; j < oc; j++)
+           *(data[0] + (i * size) + j) = (double)cell_row[j];
+@@ -185,7 +185,7 @@
+     G_math_findzc(data[0], size, data[1], Thresh, NumOrients);
+     /* open the output cell maps and allocate cell row buffers */
+-    G_message(_("Writing transformed data to file..."));
++    G_message("%s", _("Writing transformed data to file..."));
+     if ((zcfd = G_open_cell_new(OUTPUT_MAP)) < 0)
+       exit(EXIT_FAILURE);
+@@ -206,6 +206,6 @@
+     for (i = 0; i < 2; i++)
+       G_free(data[i]);
+-    G_done_msg(_("Transform successful"));
++    G_done_msg("%s", _("Transform successful"));
+     exit(EXIT_SUCCESS);
+ }
+--- grass-6.4.3/imagery/i.class/redisplay.c.orig       2008-11-25 02:31:37.000000000 +0100
++++ grass-6.4.3/imagery/i.class/redisplay.c    2014-05-23 19:32:36.464374903 +0200
+@@ -53,7 +53,7 @@
+       Outline_cellhd(VIEW_MAP1, &VIEW_MAP1_ZOOM->cell.head);
+     }
+     else
+-      G_warning(_("No zoom window is defined."));
++      G_warning("%s", _("No zoom window is defined."));
+     return (-1);
+ }
+--- grass-6.4.3/imagery/i.class/save_reg.c.orig        2008-11-25 02:31:37.000000000 +0100
++++ grass-6.4.3/imagery/i.class/save_reg.c     2014-06-04 15:39:31.133056251 +0200
+@@ -11,7 +11,7 @@
+     int i;
+     if (!Region.area.completed || Region.view == NULL || Region.npoints <= 0)
+-      G_warning(_("Region is not complete, can not save."));
++      G_warning("%s", _("Region is not complete, can not save."));
+     else {
+       for (i = 0; i < Region.npoints; i++) {
+           SPT[i].x = PT[i].x;
+--- grass-6.4.3/imagery/i.class/erase_reg.c.orig       2008-11-25 02:31:37.000000000 +0100
++++ grass-6.4.3/imagery/i.class/erase_reg.c    2014-06-05 21:42:41.940801215 +0200
+@@ -7,7 +7,7 @@
+ int erase_region(void)
+ {
+     if (!Region.area.define)
+-      G_warning(_("Can not erase an undefined region."));
++      G_warning("%s", _("Can not erase an undefined region."));
+     else {
+       while (del_point()) ;
+       return (0);
+--- grass-6.4.3/imagery/i.class/analyze_sig.c.orig     2008-11-25 02:31:37.000000000 +0100
++++ grass-6.4.3/imagery/i.class/analyze_sig.c  2014-06-07 22:22:57.607149174 +0200
+@@ -9,7 +9,7 @@
+     int nbands;
+     if (!Region.area.completed) {
+-      G_warning(_("Cannot analyze until region is completed."));
++      G_warning("%s", _("Cannot analyze until region is completed."));
+       return (0);
+     }
+--- grass-6.4.3/imagery/i.class/band_files.c.orig      2008-11-25 02:31:37.000000000 +0100
++++ grass-6.4.3/imagery/i.class/band_files.c   2014-06-08 08:56:17.139690478 +0200
+@@ -19,7 +19,7 @@
+       name = Refer.file[n].name;
+       mapset = Refer.file[n].mapset;
+       if ((Bandfd[n] = G_open_cell_old(name, mapset)) < 0)
+-          G_fatal_error(_("Unable to open band files."));
++          G_fatal_error("%s", _("Unable to open band files."));
+     }
+     return 0;
+--- grass-6.4.3/imagery/i.class/complete_reg.c.orig    2008-11-25 02:31:37.000000000 +0100
++++ grass-6.4.3/imagery/i.class/complete_reg.c 2014-06-08 10:13:11.716260961 +0200
+@@ -9,9 +9,9 @@
+ int complete_region(void)
+ {
+     if (Region.npoints < 3)
+-      G_warning(_("Too few points for region.  Must have at least 3 points."));
++      G_warning("%s", _("Too few points for region.  Must have at least 3 points."));
+     else if (Region.area.completed)
+-      G_warning(_("Area already completed."));
++      G_warning("%s", _("Area already completed."));
+     else {
+       add_point(Region.point[0].x, Region.point[0].y);
+       Region.area.completed = 1;
+--- grass-6.4.3/imagery/i.class/outline.c.orig 2008-11-25 02:31:37.000000000 +0100
++++ grass-6.4.3/imagery/i.class/outline.c      2014-06-08 10:53:11.052877620 +0200
+@@ -54,7 +54,7 @@
+           break;
+       }
+     if (first < 0) {
+-      G_warning(_("Absurd polygon."));
++      G_warning("%s", _("Absurd polygon."));
+       return (0);
+     }
+@@ -96,7 +96,7 @@
+     P = (POINT *) G_malloc(np * sizeof(POINT));
+     if (!P) {
+-      G_warning(_("Outlined area is too large."));
++      G_warning("%s", _("Outlined area is too large."));
+       return (0);
+     }
+--- grass-6.4.3/imagery/i.class/remove_mask.c.orig     2008-11-25 02:31:37.000000000 +0100
++++ grass-6.4.3/imagery/i.class/remove_mask.c  2014-06-08 11:47:36.196142897 +0200
+@@ -12,7 +12,7 @@
+     while (strcmp(elements[i], "") != 0)
+       if (G_remove(elements[i++], "MASK") < 0)
+-          G_fatal_error(_("Error while removing the old MASK cell map."));
++          G_fatal_error("%s", _("Error while removing the old MASK cell map."));
+     return 0;
+ }
+--- grass-6.4.3/imagery/i.class/readbands.c.orig       2008-11-25 02:31:37.000000000 +0100
++++ grass-6.4.3/imagery/i.class/readbands.c    2014-06-08 12:40:56.252742864 +0200
+@@ -9,7 +9,7 @@
+     for (i = 0; i < nbands; i++)
+       if (G_get_map_row_nomask(Bandfd[i], Bandbuf[i], cur) < 0)
+-          G_fatal_error(_("Error reading raster map in function readbands."));
++          G_fatal_error("%s", _("Error reading raster map in function readbands."));
+     return 0;
+ }
+--- grass-6.4.3/imagery/i.class/main.c.orig    2013-04-20 11:52:16.000000000 +0200
++++ grass-6.4.3/imagery/i.class/main.c 2014-06-08 15:07:39.749226040 +0200
+@@ -87,11 +87,11 @@
+     /* must have a graphics terminal selected */
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     /* check to see if a MASK is set */
+     if (G_maskfd() >= 0)
+-      G_fatal_error(_("You have a mask set. Unset mask and run again"));
++      G_fatal_error("%s", _("You have a mask set. Unset mask and run again"));
+     /* check if current mapset:  (imagery libs are very lacking in this dept)
+@@ -100,7 +100,7 @@
+      */
+     if (G__name_is_fully_qualified(img_grp->answer, group, grp_mapset)) {
+       if (strcmp(grp_mapset, G_mapset()))
+-          G_fatal_error(_("Group must exist in the current mapset"));
++          G_fatal_error("%s", _("Group must exist in the current mapset"));
+     }
+     else {
+       strcpy(group, img_grp->answer); /* FIXME for buffer overflow (have the parser check that?) */
+@@ -220,21 +220,21 @@
+     if (Refer.nfiles <= 0) {
+       G_warning(_("Subgroup [%s] does not have any files"), img_subgroup);
+-      G_fatal_error(_("The subgroup must have at least 2 files to run"));
++      G_fatal_error("%s", _("The subgroup must have at least 2 files to run"));
+     }
+     else if (Refer.nfiles == 1) {
+       G_warning(_("Subgroup [%s] only has 1 file"), img_subgroup);
+-      G_fatal_error(_("The subgroup must have at least 2 files to run"));
++      G_fatal_error("%s", _("The subgroup must have at least 2 files to run"));
+     }
+     if (G_get_cellhd(Refer.file[0].name, Refer.file[0].mapset, &Band_cellhd)
+       != 0)
+-      G_fatal_error(_("Unable to read cell header for first band file"));
++      G_fatal_error("%s", _("Unable to read cell header for first band file"));
+     /* allocate space for signature routines */
+     init_sig_routines((size_t) Refer.nfiles);
+-    G_message(_("\nRESULT SIGNATURE"));
++    G_message("%s", _("\nRESULT SIGNATURE"));
+     if (!
+       (outsig_fd =
+@@ -246,7 +246,7 @@
+     if (in_sig) {
+       FILE *insig_fd;
+-      G_message(_("\nSEED SIGNATURES"));
++      G_message("%s", _("\nSEED SIGNATURES"));
+       if (!
+           (insig_fd =
+--- grass-6.4.3/imagery/i.class/signature.c.orig       2008-11-25 02:31:37.000000000 +0100
++++ grass-6.4.3/imagery/i.class/signature.c    2014-06-08 16:11:05.829146708 +0200
+@@ -47,12 +47,12 @@
+       (Band_sum = (float *)G_calloc(nbands, sizeof(float))) == NULL ||
+       (Band_product = (float **)G_calloc(nbands, sizeof(float *))) == NULL
+       || (Band_histo = (int **)G_calloc(nbands, sizeof(int *))) == NULL)
+-      G_fatal_error(_("Unable to allocate space for signature statistics."));
++      G_fatal_error("%s", _("Unable to allocate space for signature statistics."));
+     for (i = 0; i < nbands; i++) {
+       if ((Band_product[i] =
+            (float *)G_calloc(nbands, sizeof(float))) == NULL ||
+           (Band_histo[i] = (int *)G_calloc(MAX_CATS, sizeof(int))) == NULL)
+-          G_fatal_error(_("Unable to allocate space for signature statistics."));
++          G_fatal_error("%s", _("Unable to allocate space for signature statistics."));
+     }
+     return 0;
+@@ -79,7 +79,7 @@
+     usable_signature = 0;
+     if (PN % 2) {
+-      G_warning(_("prepare_signature: outline has odd number of points."));
++      G_warning("%s", _("prepare_signature: outline has odd number of points."));
+       return (0);
+     }
+@@ -120,7 +120,7 @@
+       x1 = P[i].x - 1;
+       if (x0 > x1) {
+-          G_warning(_("signature: perimeter points out of order."));
++          G_warning("%s", _("signature: perimeter points out of order."));
+           return (0);
+       }
+@@ -129,7 +129,7 @@
+           for (b = 0; b < nbands; b++) {
+               n = Bandbuf[b][x];
+               if (n < 0 || n > MAX_CATS - 1) {
+-                  G_warning(_("prepare_signature: data error."));
++                  G_warning("%s", _("prepare_signature: data error."));
+                   return (0);
+               }
+               Band_sum[b] += n;       /* sum for means */
+@@ -231,7 +231,7 @@
+           Menu_msg("");
+           break;
+       default:
+-          G_warning(_("Unknown Menu selection in show_signature()."));
++          G_warning("%s", _("Unknown Menu selection in show_signature()."));
+       }
+     }
+@@ -273,9 +273,9 @@
+       open_band_files();
+       if ((fd = G_open_cell_new(MASK)) < 0)
+-          G_fatal_error(_("Unable to open the cell map MASK."));
++          G_fatal_error("%s", _("Unable to open the cell map MASK."));
+       if ((buffer = G_allocate_cell_buf()) == NULL)
+-          G_fatal_error(_("Unable to allocate the cell buffer in display_signature()."));
++          G_fatal_error("%s", _("Unable to allocate the cell buffer in display_signature()."));
+       nrows = G_window_rows();
+       ncols = G_window_cols();
+@@ -307,7 +307,7 @@
+     /* display new mask */
+     if (G_get_cellhd(MASK, G_mapset(), &cellhd) != 0)
+-      G_fatal_error(_("Did not find input cell map MASK."));
++      G_fatal_error("%s", _("Did not find input cell map MASK."));
+     G_adjust_window_to_box(&cellhd, &VIEW_MASK1->cell.head, VIEW_MASK1->nrows,
+                          VIEW_MASK1->ncols);
+     draw_cell(VIEW_MASK1, OVER_LAY);
+--- grass-6.4.3/imagery/i.class/restore_reg.c.orig     2008-11-25 02:31:37.000000000 +0100
++++ grass-6.4.3/imagery/i.class/restore_reg.c  2014-06-08 18:15:08.445658249 +0200
+@@ -12,7 +12,7 @@
+     if (!Region.area.saved || Region.saved_view == NULL ||
+       Region.saved_npoints <= 0)
+-      G_warning(_("No region is saved, can not restore."));
++      G_warning("%s", _("No region is saved, can not restore."));
+     else {
+       if (Region.area.define)
+           erase_region();
+--- grass-6.4.3/imagery/i.ortho.photo/libes/init_info.c.orig   2008-11-25 02:31:39.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/libes/init_info.c        2014-05-23 19:33:58.384373196 +0200
+@@ -94,23 +94,20 @@
+ int I_get_init_info(char *group, struct Ortho_Camera_Exp_Init *init_info)
+ {
+     FILE *fd;
+-    char msg[100];
+     int stat;
+     fd = I_fopen_group_init_old(group);
+     if (fd == NULL) {
+-      sprintf(msg, "unable to open camera initial file %s in %s",
++      G_warning("unable to open camera initial file %s in %s",
+               group, G_mapset());
+-      G_warning(msg);
+       return 0;
+     }
+     stat = I_read_init_info(fd, init_info);
+     fclose(fd);
+     if (stat < 0) {
+-      sprintf(msg, "bad format in camera initial file %s in %s",
++      G_warning("bad format in camera initial file %s in %s",
+               group, G_mapset());
+-      G_warning(msg);
+       return 0;
+     }
+     return 1;
+@@ -119,13 +116,11 @@
+ int I_put_init_info(char *group, struct Ortho_Camera_Exp_Init *init_info)
+ {
+     FILE *fd;
+-    char msg[100];
+     fd = I_fopen_group_init_new(group);
+     if (fd == NULL) {
+-      sprintf(msg, "unable to open camera initial file %s in %s",
++      G_warning("unable to open camera initial file %s in %s",
+               group, G_mapset());
+-      G_warning(msg);
+       return 0;
+     }
+--- grass-6.4.3/imagery/i.ortho.photo/libes/ref_points.c.orig  2008-11-25 02:31:39.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/libes/ref_points.c       2014-06-04 15:40:27.596388407 +0200
+@@ -88,16 +88,14 @@
+ int I_get_ref_points(char *groupname, struct Ortho_Photo_Points *cp)
+ {
+     FILE *fd;
+-    char msg[100];
+     int stat;
+     /*fprintf (stderr, "Try to f_open_group_file_old \n"); */
+     fd = I_fopen_group_file_old(groupname, REF_POINT_FILE);
+     if (fd == NULL) {
+-      sprintf(msg,
++      G_warning(
+               "unable to open reference point file for group [%s in %s]",
+               groupname, G_mapset());
+-      G_warning(msg);
+       return 0;
+     }
+@@ -105,10 +103,9 @@
+     stat = I_read_ref_points(fd, cp);
+     fclose(fd);
+     if (stat < 0) {
+-      sprintf(msg,
++      G_warning(
+               "bad format in reference point file for group [%s in %s]",
+               groupname, G_mapset());
+-      G_warning(msg);
+       return 0;
+     }
+     return 1;
+@@ -117,14 +114,12 @@
+ int I_put_ref_points(char *groupname, struct Ortho_Photo_Points *cp)
+ {
+     FILE *fd;
+-    char msg[100];
+     fd = I_fopen_group_file_new(groupname, REF_POINT_FILE);
+     if (fd == NULL) {
+-      sprintf(msg,
++      G_warning(
+               "unable to create reference point file for group [%s in %s]",
+               groupname, G_mapset());
+-      G_warning(msg);
+       return 0;
+     }
+--- grass-6.4.3/imagery/i.ortho.photo/libes/open_camera.c.orig 2008-11-25 02:31:39.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/libes/open_camera.c      2014-06-05 21:43:04.637467409 +0200
+@@ -46,11 +46,8 @@
+ static int camera_error(char *camera, char *file, char *msga, char *msgb)
+ {
+-    char buf[100];
+-
+-    sprintf(buf, "%sfile [%s] of group [%s in %s]%s",
++    G_warning("%sfile [%s] of group [%s in %s]%s",
+           msga, file, camera, G_mapset(), msgb);
+-    G_warning(buf);
+     return 0;
+ }
+--- grass-6.4.3/imagery/i.ortho.photo/libes/orthoref.c.orig    2010-12-25 11:52:09.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/libes/orthoref.c 2014-06-07 22:23:14.327148826 +0200
+@@ -496,7 +496,7 @@
+     G_debug(1, "XC: %.2f, YC: %.2f, ZC: %.2f", *XC, *YC, *ZC);
+     G_debug(1, "Omega %.2f, Phi %.2f, Kappa: %.2f", *Omega, *Phi, *Kappa);
+     if (*ZC < 0)
+-      G_warning(_("Potential BUG in ortholib: camera altitude < 0"));
++      G_warning("%s", _("Potential BUG in ortholib: camera altitude < 0"));
+     /*  Compute Orientation Matrix from Omega, Phi, Kappa */
+     sw = sin(*Omega);
+--- grass-6.4.3/imagery/i.ortho.photo/libes/conz_points.c.orig 2008-11-25 02:31:39.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/libes/conz_points.c      2014-06-08 08:57:59.459688345 +0200
+@@ -96,15 +96,13 @@
+ int I_get_con_points(char *group, struct Ortho_Control_Points *cp)
+ {
+     FILE *fd;
+-    char msg[100];
+     int stat;
+     fd = I_fopen_group_file_old(group, POINT_FILE);
+     if (fd == NULL) {
+-      sprintf(msg,
++      G_warning(
+               "unable to open control point (Z) file for group [%s in %s]",
+               group, G_mapset());
+-      G_warning(msg);
+       G_sleep(4);
+       return 0;
+     }
+@@ -112,9 +110,8 @@
+     stat = I_read_con_points(fd, cp);
+     fclose(fd);
+     if (stat < 0) {
+-      sprintf(msg, "bad format in control point file for group [%s in %s]",
++      G_warning("bad format in control point file for group [%s in %s]",
+               group, G_mapset());
+-      G_warning(msg);
+       G_sleep(4);
+       return 0;
+     }
+@@ -124,14 +121,12 @@
+ int I_put_con_points(char *group, struct Ortho_Control_Points *cp)
+ {
+     FILE *fd;
+-    char msg[100];
+     fd = I_fopen_group_file_new(group, POINT_FILE);
+     if (fd == NULL) {
+-      sprintf(msg,
++      G_warning(
+               "unable to create control point file for group [%s in %s]",
+               group, G_mapset());
+-      G_warning(msg);
+       G_sleep(4);
+       return 0;
+     }
+@@ -146,17 +141,15 @@
+                        double N12[3])
+ {
+     FILE *fd;
+-    char msg[100];
+     int i, stat, status;
+     double e1, e2, n1, n2, z1, z2, e0, n0;
+     fd = I_fopen_group_file_old(group, POINT_FILE);
+     if (fd == NULL) {
+-      sprintf(msg,
++      G_warning(
+               "unable to open control point (Z) file for group [%s in %s]",
+               group, G_mapset());
+-      G_warning(msg);
+       G_sleep(4);
+       return 0;
+     }
+@@ -164,9 +157,8 @@
+     stat = I_read_con_points(fd, con_cp);
+     fclose(fd);
+     if (stat < 0) {
+-      sprintf(msg, "bad format in control point file for group [%s in %s]",
++      G_warning("bad format in control point file for group [%s in %s]",
+               group, G_mapset());
+-      G_warning(msg);
+       G_sleep(4);
+       return 0;
+     }
+--- grass-6.4.3/imagery/i.ortho.photo/libes/m_mult.c.orig      2010-12-25 11:52:09.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/libes/m_mult.c   2014-06-08 10:13:58.396259990 +0200
+@@ -21,7 +21,7 @@
+     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);
++      fputs(message, stderr);
+       return error(message);
+     }
+--- grass-6.4.3/imagery/i.ortho.photo/libes/camera.c.orig      2010-09-25 11:52:08.000000000 +0200
++++ grass-6.4.3/imagery/i.ortho.photo/libes/camera.c   2014-06-08 10:53:47.546210193 +0200
+@@ -33,10 +33,9 @@
+     fd = I_fopen_group_camera_old(group);
+     G_suppress_warnings(0);
+     if (!fd) {
+-      sprintf(buf,
++      G_warning(
+               _("Unable to open camera file for group <%s> in mapset <%s>"),
+               group, G_mapset());
+-      G_warning(buf);
+       return 0;
+     }
+     G_getl2(buf, sizeof(buf), fd);
+--- grass-6.4.3/imagery/i.ortho.photo/libes/fopen_camera.c.orig        2008-11-25 02:31:39.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/libes/fopen_camera.c     2014-06-08 11:48:09.436142204 +0200
+@@ -54,11 +54,8 @@
+ static int error(char *camera, char *msga, char *msgb)
+ {
+-    char buf[100];
+-
+-    sprintf(buf, "%s camera file [%s] in [%s %s] %s",
++    G_warning("%s camera file [%s] in [%s %s] %s",
+           msga, camera, G_location(), G_mapset(), msgb);
+-    G_warning(buf);
+     return 0;
+ }
+--- grass-6.4.3/imagery/i.ortho.photo/menu/target.c.orig       2010-12-25 11:52:08.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/menu/target.c    2014-05-23 19:34:21.697706043 +0200
+@@ -34,5 +34,5 @@
+     sprintf(buf, "Mapset [%s] in target location [%s] - ", mapset, location);
+     strcat(buf, stat == 0 ? "permission denied\n" : "not found\n");
+   error:
+-    G_fatal_error(buf);
++    G_fatal_error("%s", buf);
+ }
+--- grass-6.4.3/imagery/i.ortho.photo/menu/i.photo.rectify.c.orig      2010-12-25 11:52:08.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/menu/i.photo.rectify.c   2014-06-04 15:43:06.806385088 +0200
+@@ -42,12 +42,12 @@
+     /* get group ref */
+     if (!I_get_group_ref(group.name, (struct Ref *)&group.group_ref)) {
+       fprintf(stderr, _("Could not read REF file for group [%s]"), group.name);
+-      fprintf(stderr, _("Orthorectification cancelled"));
++      fputs(_("Orthorectification cancelled"), stderr);
+       return 0;
+     }
+     if (group.group_ref.nfiles <= 0) {
+-      fprintf(stderr, _("No files in this group!"));
+-      fprintf(stderr, _("Orthorectification cancelled"));
++      fputs(_("No files in this group!"), stderr);
++      fputs(_("Orthorectification cancelled"), stderr);
+       return 0;
+     }
+     
+@@ -81,7 +81,7 @@
+           }
+       }
+       if (!got_one) {
+-          fprintf(stderr,_("\nNo images selected, orthorectification cancelled."));
++          fputs(_("\nNo images selected, orthorectification cancelled."), stderr);
+           G_sleep(3);
+           return 0;
+       }
+@@ -109,7 +109,7 @@
+           fprintf(stderr, _("Extension <%s> is illegal"), extension);
+           repeat = G_yes(_("\nChoose another extension? "), 1);
+           if (!repeat) {
+-              fprintf(stderr,_("Orthorectification cancelled."));
++              fputs(_("Orthorectification cancelled."), stderr);
+               G_sleep(3);
+               return 0;
+           }
+@@ -141,7 +141,7 @@
+               fprintf(stderr, _("Map name <%s> is illegal"), angle_name);
+               repeat = G_yes(_("\nChoose another name? "), 1);
+               if (!repeat) {
+-                  fprintf(stderr,_("Orthorectification cancelled."));
++                  fputs(_("Orthorectification cancelled."), stderr);
+                   G_sleep(3);
+                   return 0;
+               }
+@@ -221,12 +221,12 @@
+       G_clear_screen();
+       fprintf(stderr, "\n");
+-      fprintf(stderr, _("Please select one of the following interpolation methods\n"));
+-      fprintf(stderr, _(" 1. nearest neighbor\n"));
+-      fprintf(stderr, _(" 2. bilinear\n"));
+-      fprintf(stderr, _(" 3. bicubic\n"));
+-      fprintf(stderr, _(" 4. bilinear with fallback\n"));
+-      fprintf(stderr, _(" 5. bicubic with fallback\n"));
++      fputs(_("Please select one of the following interpolation methods\n"), stderr);
++      fputs(_(" 1. nearest neighbor\n"), stderr);
++      fputs(_(" 2. bilinear\n"), stderr);
++      fputs(_(" 3. bicubic\n"), stderr);
++      fputs(_(" 4. bilinear with fallback\n"), stderr);
++      fputs(_(" 5. bicubic with fallback\n"), stderr);
+       fprintf(stderr, "> ");
+       if (!G_gets(buf))
+           continue;
+@@ -288,7 +288,7 @@
+       char buf[100];
+       int seg_mb = max_mb + 0.5;
+-      fprintf(stderr, _("Enter amount of memory to use in MB, or\n"));
++      fputs(_("Enter amount of memory to use in MB, or\n"), stderr);
+       if (use_target_window)
+           fprintf(stderr, _("RETURN   use %d MB to keep all data in RAM\n"), seg_mb);
+       else {
+--- grass-6.4.3/imagery/i.ortho.photo/i.photo.2image/target.c.orig     2010-12-25 11:52:08.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/i.photo.2image/target.c  2014-05-23 19:34:47.097705514 +0200
+@@ -46,7 +46,7 @@
+   error:
+     strcat(buf, "Please run i.target for group ");
+     strcat(buf, group.name);
+-    G_fatal_error(buf);
++    G_fatal_error("%s", buf);
+     return -1;
+ }
+--- grass-6.4.3/imagery/i.ortho.photo/i.photo.2image/main.c.orig       2010-12-25 11:52:08.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/i.photo.2image/main.c    2014-06-04 15:43:31.986384563 +0200
+@@ -78,7 +78,7 @@
+     digit_points = G_tempfile();
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     /* get image group and image group referenc file */
+     strcpy(group.name, name);
+--- grass-6.4.3/imagery/i.ortho.photo/i.photo.2target/target.c.orig    2010-12-25 11:52:09.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/i.photo.2target/target.c 2014-05-23 19:35:09.304371718 +0200
+@@ -81,7 +81,7 @@
+     strcat (buf, "Please run i.target for block ");
+     strcat (buf, block.name);
+ ****/
+-    G_fatal_error(buf);
++    G_fatal_error("%s", buf);
+ }
+ int select_current_env(void)
+--- grass-6.4.3/imagery/i.ortho.photo/i.photo.2target/main.c.orig      2010-12-25 11:52:09.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/i.photo.2target/main.c   2014-06-04 15:43:48.223050891 +0200
+@@ -94,7 +94,7 @@
+     digit_points = G_tempfile();
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     /* get group ref */
+     strcpy(group.name, name);
+@@ -164,7 +164,7 @@
+     ********/
+     /* determine transformation equation */
+-    G_message(_("Computing equations ..."));
++    G_message("%s", _("Computing equations ..."));
+     if (group.control_points.count > 0)
+       Compute_ortho_equation();
+--- grass-6.4.3/imagery/i.ortho.photo/i.photo.camera/mod_cam_info.c.orig       2010-12-25 11:52:09.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/i.photo.camera/mod_cam_info.c    2014-05-23 19:37:07.567702586 +0200
+@@ -81,7 +81,7 @@
+           strcpy(next, "end");
+       else
+           sprintf(next, "%d", endfid);
+-      sprintf(next_line, next);
++      strcpy(next_line, next);
+       V_line(line, "                            Next:");
+       V_ques(next, 's', line, 34, 5);
+       V_line(line + 2,
+--- grass-6.4.3/imagery/i.ortho.photo/i.photo.elev/ask_elev.c.orig     2010-12-25 11:52:09.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/i.photo.elev/ask_elev.c  2014-05-23 19:37:42.271035196 +0200
+@@ -8,7 +8,6 @@
+ int ask_elev(char *group, char *location, char *mapset)
+ {
+-    char buf[100];
+     char t1[80];
+     char t2[80];
+@@ -35,10 +34,9 @@
+       }
+       else if ((mapset_elev = G_find_cell(elev_layer, "")) == NULL) {
+-          sprintf(buf,
++          G_warning(
+                   "\n\nraster-file %s not found - select another file\n",
+                   elev_layer);
+-          G_warning(buf);
+           *elev_layer = 0;
+           continue;
+       }
+--- grass-6.4.3/imagery/i.ortho.photo/i.photo.elev/main.c.orig 2010-12-25 11:52:09.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/i.photo.elev/main.c      2014-06-04 15:44:02.503050594 +0200
+@@ -131,7 +131,7 @@
+     strcat(buf, _("Please select a target for group"));
+     strcat(buf, group);
+     G_suppress_warnings(0);
+-    G_fatal_error(buf);
++    G_fatal_error("%s", buf);
+ }
+--- grass-6.4.3/imagery/i.ortho.photo/i.photo.rectify/exec.c.orig      2011-06-11 11:52:07.000000000 +0200
++++ grass-6.4.3/imagery/i.ortho.photo/i.photo.rectify/exec.c   2014-05-23 19:38:00.387701485 +0200
+@@ -40,7 +40,7 @@
+     elevfd = G_open_cell_old(elev_name, elev_mapset);
+     if (elevfd < 0) {
+-      G_fatal_error(_("Could not open elevation raster"));
++      G_fatal_error("%s", _("Could not open elevation raster"));
+       return 1;
+     }
+     ebuffer = readcell(elevfd, seg_mb_elev, 1);
+--- grass-6.4.3/imagery/i.ortho.photo/i.photo.rectify/target.c.orig    2011-06-11 11:52:07.000000000 +0200
++++ grass-6.4.3/imagery/i.ortho.photo/i.photo.rectify/target.c 2014-06-04 15:44:24.026383478 +0200
+@@ -31,5 +31,5 @@
+     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);
+ }
+--- grass-6.4.3/imagery/i.ortho.photo/i.photo.rectify/readcell.c.orig  2010-12-25 11:52:08.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/i.photo.rectify/readcell.c       2014-06-05 21:44:00.407466246 +0200
+@@ -59,7 +59,7 @@
+       filename = G_tempfile();
+       c->fd = open(filename, O_RDWR | O_CREAT | O_EXCL, 0600);
+       if (c->fd < 0)
+-          G_fatal_error(_("Unable to open temporary file"));
++          G_fatal_error("%s", _("Unable to open temporary file"));
+       remove(filename);
+     }
+     else
+@@ -67,7 +67,7 @@
+       
+     G_debug(1, "%d of %d blocks in memory", nblocks, nx * ny);
+-    G_important_message(_("Allocating memory and reading input map..."));
++    G_important_message("%s", _("Allocating memory and reading input map..."));
+     G_percent(0, nrows, 5);
+     for (i = 0; i < c->nblocks; i++)
+@@ -95,7 +95,7 @@
+                   if (write
+                       (c->fd, &tmpbuf[(y * nx + x) * BDIM],
+                        BDIM * sizeof(DCELL)) < 0)
+-                      G_fatal_error(_("Error writing segment file"));
++                      G_fatal_error("%s", _("Error writing segment file"));
+               }
+               else
+                   memcpy(&c->blocks[BKIDX(c, HI(row), x)][LO(y)][0],
+@@ -125,7 +125,7 @@
+     off_t offset = (off_t) idx * sizeof(DCELL) << L2BSIZE;
+     if (c->fd < 0)
+-      G_fatal_error(_("Internal error: cache miss on fully-cached map"));
++      G_fatal_error("%s", _("Internal error: cache miss on fully-cached map"));
+     if (ref >= 0)
+       c->grid[ref] = NULL;
+@@ -134,10 +134,10 @@
+     c->refs[replace] = idx;
+     if (lseek(c->fd, offset, SEEK_SET) < 0)
+-      G_fatal_error(_("Error seeking on segment file"));
++      G_fatal_error("%s", _("Error seeking on segment file"));
+     if (read(c->fd, p, sizeof(block)) < 0)
+-      G_fatal_error(_("Error reading segment file"));
++      G_fatal_error("%s", _("Error reading segment file"));
+     return p;
+ }
+--- grass-6.4.3/imagery/i.ortho.photo/i.photo.rectify/cp.c.orig        2010-12-25 11:52:08.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/i.photo.rectify/cp.c     2014-06-07 22:23:44.747148191 +0200
+@@ -13,7 +13,7 @@
+     sprintf(msg, _("Control Z Point file for group [%s] in [%s] \n \n"),
+           group.name, G_mapset());
+-    G_verbose_message(_("Computing equations..."));
++    G_verbose_message("%s", _("Computing equations..."));
+     Compute_ortho_equation();
+@@ -31,7 +31,7 @@
+     default:
+       return 1;
+     }
+-    G_fatal_error(msg);
++    G_fatal_error("%s", msg);
+ }
+ int get_ref_points(void)
+@@ -61,6 +61,6 @@
+     default:
+       return 1;
+     }
+-    G_fatal_error(msg);
++    G_fatal_error("%s", msg);
+     /* exit(1);   shouldn't get here */
+ }
+--- grass-6.4.3/imagery/i.ortho.photo/i.photo.rectify/main.c.orig      2011-06-11 11:52:07.000000000 +0200
++++ grass-6.4.3/imagery/i.ortho.photo/i.photo.rectify/main.c   2014-06-08 08:58:38.176354205 +0200
+@@ -278,20 +278,20 @@
+               G_fatal_error(_("Extension <%s> is illegal"), extension);
+               
+           if (G_find_cell(result, G_mapset())) {
+-              G_warning(_("The following raster map already exists in"));
++              G_warning("%s", _("The following raster map already exists in"));
+               G_warning(_("target LOCATION %s, MAPSET %s:"),
+                         G_location(), G_mapset());
+               G_warning("<%s>", result);
+-              G_fatal_error(_("Orthorectification cancelled."));
++              G_fatal_error("%s", _("Orthorectification cancelled."));
+           }
+       }
+       if (angle->answer) {
+           if (G_find_cell(angle->answer, G_mapset())) {
+-              G_warning(_("The following raster map already exists in"));
++              G_warning("%s", _("The following raster map already exists in"));
+               G_warning(_("target LOCATION %s, MAPSET %s:"),
+                         G_location(), G_mapset());
+               G_warning("<%s>", angle->answer);
+-              G_fatal_error(_("Orthorectification cancelled."));
++              G_fatal_error("%s", _("Orthorectification cancelled."));
+           }
+       }
+       
+@@ -306,7 +306,7 @@
+       
+       if (tres->answer) {
+           if (!((res = atof(tres->answer)) > 0))
+-              G_warning(_("Target resolution must be > 0, ignored"));
++              G_warning("%s", _("Target resolution must be > 0, ignored"));
+       }
+       /* get reference window from imagery group */
+       get_ref_window(&cellhd);
+@@ -382,12 +382,12 @@
+     G_warning(_("Input raster map <%s> does not exist in group <%s>."),
+           file, grp);
+-    G_message(_("Try:"));
++    G_message("%s", _("Try:"));
+     for (n = 0; n < group.group_ref.nfiles; n++)
+       G_message("%s@%s", group.group_ref.file[n].name, group.group_ref.file[n].mapset);
+-    G_fatal_error(_("Exit!"));
++    G_fatal_error("%s", _("Exit!"));
+ }
+ static char *make_ipol_list(void)
+--- grass-6.4.3/imagery/i.ortho.photo/i.photo.rectify/angle.c.orig     2010-12-25 11:52:08.000000000 +0100
++++ grass-6.4.3/imagery/i.ortho.photo/i.photo.rectify/angle.c  2014-06-08 10:14:23.686259462 +0200
+@@ -33,7 +33,7 @@
+     struct History hist;
+     char *type;
+-    G_message(_("Calculating camera angle to local surface..."));
++    G_message("%s", _("Calculating camera angle to local surface..."));
+     
+     select_target_env();
+     
+@@ -48,7 +48,7 @@
+     
+     elevfd = G_open_cell_old(elev_name, elev_mapset);
+     if (elevfd < 0) {
+-      G_fatal_error(_("Could not open elevation raster"));
++      G_fatal_error("%s", _("Could not open elevation raster"));
+       return 1;
+     }
+--- grass-6.4.3/imagery/i.points/target.c.orig 2008-11-25 02:31:38.000000000 +0100
++++ grass-6.4.3/imagery/i.points/target.c      2014-05-23 19:38:17.614367793 +0200
+@@ -40,7 +40,7 @@
+   error:
+     strcat(buf, "Please run i.target for group ");
+     strcat(buf, group.name);
+-    G_fatal_error(buf);
++    G_fatal_error("%s", buf);
+ }
+ int select_current_env(void)
+--- grass-6.4.3/imagery/i.points/main.c.orig   2013-04-20 11:52:16.000000000 +0200
++++ grass-6.4.3/imagery/i.points/main.c        2014-06-04 15:44:41.886383106 +0200
+@@ -120,7 +120,7 @@
+     digit_results = G_tempfile();
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected"));
++      G_fatal_error("%s", _("No graphics device selected"));
+     /* parse group name */
+--- grass-6.4.3/imagery/i.vpoints/analyze.c.orig       2008-11-25 02:31:37.000000000 +0100
++++ grass-6.4.3/imagery/i.vpoints/analyze.c    2014-05-23 19:38:49.131033802 +0200
+@@ -116,11 +116,9 @@
+ int delete_control_point(int n)
+ {
+     int i;
+-    char msg[80];
+     if ((n < 0) | (n > group.points.count - 1)) {
+-      sprintf(msg, "%d is an invalid control point index value.", n);
+-      G_warning(msg);
++      G_warning("%d is an invalid control point index value.", n);
+       return 1;
+     }
+     for (i = n; i < group.points.count - 1; i++) {
+--- grass-6.4.3/imagery/i.vpoints/plot.c.orig  2008-11-25 02:31:37.000000000 +0100
++++ grass-6.4.3/imagery/i.vpoints/plot.c       2014-06-04 15:44:58.573049425 +0200
+@@ -58,7 +58,7 @@
+           Symb = S_read(SYM_NAME);
+           if (Symb == NULL) {
+-              G_warning(_("Cannot read symbol, cannot display points"));
++              G_warning("%s", _("Cannot read symbol, cannot display points"));
+               return (-1);
+           }
+           else
+@@ -140,7 +140,7 @@
+           Symb = S_read(SYM_NAME);
+           if (Symb == NULL) {
+-              G_warning(_("Cannot read symbol, cannot display points"));
++              G_warning("%s", _("Cannot read symbol, cannot display points"));
+               return (-1);
+           }
+           else
+--- grass-6.4.3/imagery/i.vpoints/target.c.orig        2008-11-25 02:31:37.000000000 +0100
++++ grass-6.4.3/imagery/i.vpoints/target.c     2014-06-05 21:44:22.520799119 +0200
+@@ -41,7 +41,7 @@
+   error:
+     strcat(buf, "Please run i.target for group ");
+     strcat(buf, group.name);
+-    G_fatal_error(buf);
++    G_fatal_error("%s", buf);
+     return -1;
+ }
+--- grass-6.4.3/misc/m.cogo/main.c.orig        2011-04-23 11:52:12.000000000 +0200
++++ grass-6.4.3/misc/m.cogo/main.c     2014-05-23 19:39:11.501033336 +0200
+@@ -302,10 +302,10 @@
+     if (coords->answer) {
+       record.x = strtod(coords->answers[0], &ss);
+       if (ss == coords->answers[0])
+-          G_fatal_error(_("Converting starting coordinate pair"));
++          G_fatal_error("%s", _("Converting starting coordinate pair"));
+       record.y = strtod(coords->answers[1], &ss);
+       if (ss == coords->answers[1])
+-          G_fatal_error(_("Converting starting coordinate pair"));
++          G_fatal_error("%s", _("Converting starting coordinate pair"));
+     }
+     else {
+       record.x = record.y = 0.0;
+--- grass-6.4.3/misc/m.nviz.image/main.c.orig  2012-07-14 11:52:05.000000000 +0200
++++ grass-6.4.3/misc/m.nviz.image/main.c       2014-05-23 19:39:27.731032998 +0200
+@@ -226,7 +226,7 @@
+       ret = write_img(output_name, FORMAT_TIF);
+     if (!ret)
+-      G_fatal_error(_("Unsupported output format"));
++      G_fatal_error("%s", _("Unsupported output format"));
+     G_done_msg(_("File <%s> created."), output_name);
+--- grass-6.4.3/misc/m.nviz.image/vector.c.orig        2012-02-25 11:52:11.000000000 +0100
++++ grass-6.4.3/misc/m.nviz.image/vector.c     2014-06-04 15:45:18.449715677 +0200
+@@ -176,7 +176,7 @@
+       else if (strcmp(marker_str, "histogram") == 0)
+           marker = ST_HISTOGRAM;
+       else
+-          G_fatal_error(_("Unknown icon marker"));
++          G_fatal_error("%s", _("Unknown icon marker"));
+       
+       GP_set_sitemode(site_list[i], ST_ATT_NONE,
+                       color, width, size, marker);
+--- grass-6.4.3/ps/ps.map/do_plt.c.orig        2011-05-21 11:52:09.000000000 +0200
++++ grass-6.4.3/ps/ps.map/do_plt.c     2014-05-23 19:39:46.204365946 +0200
+@@ -38,7 +38,7 @@
+       return 1;
+     }
+-    G_message(_("Reading point/line file ..."));
++    G_message("%s", _("Reading point/line file ..."));
+     while (fgets(buf, sizeof buf, fp))
+       switch (*buf) {
+@@ -144,7 +144,7 @@
+               sprintf(sname, "POINTSYMBOL%d", snum);
+               Symb = S_read(symb);
+               if (Symb == NULL)
+-                  G_warning(_("Cannot read symbol, using default icon"));
++                  G_warning("%s", _("Cannot read symbol, using default icon"));
+               symbol_save(Symb, &pcolor, &pfcolor, sname);
+               symbol_draw(sname, x, y, size, rotate, width);
+--- grass-6.4.3/ps/ps.map/ps_vpoints.c.orig    2008-11-25 02:31:21.000000000 +0100
++++ grass-6.4.3/ps/ps.map/ps_vpoints.c 2014-06-04 15:51:16.746374876 +0200
+@@ -68,7 +68,7 @@
+       }
+       G_debug(3, "%d items selected for vector %d", ret, vec);
+       if (ret == -1)
+-          G_fatal_error(_("Cannot load data from table"));
++          G_fatal_error("%s", _("Cannot load data from table"));
+     }
+     /* allocate memory for coordinates */
+@@ -84,7 +84,7 @@
+       sprintf(sname, "SITESYMBOL%d", vec);
+       Symb = S_read(vector.layer[vec].symbol);
+       if (Symb == NULL) {
+-          G_warning(_("Cannot read symbol, using default icon"));
++          G_warning("%s", _("Cannot read symbol, using default icon"));
+       }
+       symbol_save(Symb, &(vector.layer[vec].color),
+                   &(vector.layer[vec].fcolor), sname);
+@@ -124,7 +124,7 @@
+     for (line = 1; line <= nlines; line++) {
+       if (0 > (ret = Vect_read_line(P_map, Points, Cats, line))) {
+           if (ret == -1)
+-              G_warning(_("Read error in vector map"));
++              G_warning("%s", _("Read error in vector map"));
+           break;
+       }
+       if (!(ret & GV_POINTS))
+--- grass-6.4.3/ps/ps.map/ps_vareas.c.orig     2009-05-30 11:52:31.000000000 +0200
++++ grass-6.4.3/ps/ps.map/ps_vareas.c  2014-06-05 21:44:51.710798510 +0200
+@@ -63,7 +63,7 @@
+     /* plot areas */
+     if (0 > (ret = Vect_get_area_points(P_map, area, Points))) {
+       if (ret == -1)
+-          G_warning(_("Read error in vector map"));
++          G_warning("%s", _("Read error in vector map"));
+       return 0;
+     }
+     construct_path(Points, shift, WHOLE_PATH);
+@@ -74,7 +74,7 @@
+       island = Vect_get_area_isle(P_map, area, j);
+       if (0 > (ret = Vect_get_isle_points(P_map, island, Points))) {
+           if (ret == -1)
+-              G_warning(_("Read error in vector map"));
++              G_warning("%s", _("Read error in vector map"));
+           return -1;
+       }
+       construct_path(Points, shift, WHOLE_PATH);
+@@ -160,7 +160,7 @@
+       }
+       G_debug(3, "%d items selected for vector %d", ret, vec);
+       if (ret == -1)
+-          G_fatal_error(_("Cannot load data from table"));
++          G_fatal_error("%s", _("Cannot load data from table"));
+     }
+     /* load attributes if rgbcol used */
+--- grass-6.4.3/ps/ps.map/do_geogrid.c.orig    2013-02-23 11:52:07.000000000 +0100
++++ grass-6.4.3/ps/ps.map/do_geogrid.c 2014-06-07 22:25:10.457146405 +0200
+@@ -84,12 +84,12 @@
+           e1 = west + (ll * ((east - west) / SEGS));
+           e2 = e1 + ((east - west) / SEGS);
+           if (pj_do_proj(&e1, &n1, &info_in, &info_out) < 0)
+-              G_fatal_error(_("Error in pj_do_proj"));
++              G_fatal_error("%s", _("Error in pj_do_proj"));
+           check_coords(e1, n1, &lon, &lat, 1);
+           e1 = lon;
+           n1 = lat;
+           if (pj_do_proj(&e2, &n2, &info_in, &info_out) < 0)
+-              G_fatal_error(_("Error in pj_do_proj"));
++              G_fatal_error("%s", _("Error in pj_do_proj"));
+           check_coords(e2, n2, &lon, &lat, 1);
+           e2 = lon;
+           n2 = lat;
+@@ -113,12 +113,12 @@
+           n1 = south + (ll * ((north - south) / SEGS));
+           n2 = n1 + ((north - south) / SEGS);
+           if (pj_do_proj(&e1, &n1, &info_in, &info_out) < 0)
+-              G_fatal_error(_("Error in pj_do_proj"));
++              G_fatal_error("%s", _("Error in pj_do_proj"));
+           check_coords(e1, n1, &lon, &lat, 2);
+           e1 = lon;
+           n1 = lat;
+           if (pj_do_proj(&e2, &n2, &info_in, &info_out) < 0)
+-              G_fatal_error(_("Error in pj_do_proj"));
++              G_fatal_error("%s", _("Error in pj_do_proj"));
+           check_coords(e2, n2, &lon, &lat, 2);
+           e2 = lon;
+           n2 = lat;
+@@ -188,7 +188,7 @@
+       e1 = east;              /* draw at east boundary */
+       n1 = g;
+       if (pj_do_proj(&e1, &n1, &info_in, &info_out) < 0)
+-          G_fatal_error(_("Error in pj_do_proj"));
++          G_fatal_error("%s", _("Error in pj_do_proj"));
+       check_coords(e1, n1, &lon, &lat, 1);
+       e1 = lon;
+       n1 = lat;
+@@ -227,7 +227,7 @@
+       e1 = g;
+       n1 = south;             /* draw at south edge */
+       if (pj_do_proj(&e1, &n1, &info_in, &info_out) < 0)
+-          G_fatal_error(_("Error in pj_do_proj"));
++          G_fatal_error("%s", _("Error in pj_do_proj"));
+       check_coords(e1, n1, &lon, &lat, 2);
+       e1 = lon;
+       n1 = lat;
+@@ -269,13 +269,13 @@
+     out_proj_keys = G_get_projinfo();
+     out_unit_keys = G_get_projunits();
+     if (pj_get_kv(info_out, out_proj_keys, out_unit_keys) < 0)
+-      G_fatal_error(_("Can't get projection key values of current location"));
++      G_fatal_error("%s", _("Can't get projection key values of current location"));
+     G_free_key_value(out_proj_keys);
+     G_free_key_value(out_unit_keys);
+     /* In Info */
+     if (GPJ_get_equivalent_latlong(info_in, info_out) < 0)
+-      G_fatal_error(_("Unable to set up lat/long projection parameters"));
++      G_fatal_error("%s", _("Unable to set up lat/long projection parameters"));
+     return;
+@@ -303,7 +303,7 @@
+       e1 = ew;
+       n1 = PS.w.north;
+       if (pj_do_proj(&e1, &n1, &info_out, &info_in) < 0)
+-          G_fatal_error(_("Error in pj_do_proj"));
++          G_fatal_error("%s", _("Error in pj_do_proj"));
+       if (!first) {
+           north = n1;
+           first = 1;
+@@ -319,7 +319,7 @@
+       e1 = ew;
+       s1 = PS.w.south;
+       if (pj_do_proj(&e1, &s1, &info_out, &info_in) < 0)
+-          G_fatal_error(_("Error in pj_do_proj"));
++          G_fatal_error("%s", _("Error in pj_do_proj"));
+       if (!first) {
+           south = s1;
+           first = 1;
+@@ -336,7 +336,7 @@
+       e1 = PS.w.east;
+       n1 = ns;
+       if (pj_do_proj(&e1, &n1, &info_out, &info_in) < 0)
+-          G_fatal_error(_("Error in pj_do_proj"));
++          G_fatal_error("%s", _("Error in pj_do_proj"));
+       if (!first) {
+           east = e1;
+           first = 1;
+@@ -353,7 +353,7 @@
+       w1 = PS.w.west;
+       n1 = ns;
+       if (pj_do_proj(&w1, &n1, &info_out, &info_in) < 0)
+-          G_fatal_error(_("Error in pj_do_proj"));
++          G_fatal_error("%s", _("Error in pj_do_proj"));
+       if (!first) {
+           west = w1;
+           first = 1;
+@@ -409,17 +409,17 @@
+     if (proj) {
+       /* convert original coords to ll */
+       if (pj_do_proj(&e, &n, &info_out, &info_in) < 0)
+-          G_fatal_error(_("Error in pj_do_proj"));
++          G_fatal_error("%s", _("Error in pj_do_proj"));
+       if (par == 1) {
+           /* lines of latitude -- const. northing */
+           /* convert correct UTM to ll */
+           if (pj_do_proj(&x, &y, &info_out, &info_in) < 0)
+-              G_fatal_error(_("Error in pj_do_proj"));
++              G_fatal_error("%s", _("Error in pj_do_proj"));
+           /* convert new ll back to coords */
+           if (pj_do_proj(&x, &n, &info_in, &info_out) < 0)
+-              G_fatal_error(_("Error in pj_do_proj"));
++              G_fatal_error("%s", _("Error in pj_do_proj"));
+           *lat = n;
+           *lon = x;
+       }
+@@ -427,11 +427,11 @@
+           /* lines of longitude -- const. easting */
+           /* convert correct UTM to ll */
+           if (pj_do_proj(&x, &y, &info_out, &info_in) < 0)
+-              G_fatal_error(_("Error in pj_do_proj"));
++              G_fatal_error("%s", _("Error in pj_do_proj"));
+           /* convert new ll back to coords */
+           if (pj_do_proj(&e, &y, &info_in, &info_out) < 0)
+-              G_fatal_error(_("Error in pj_do_proj"));
++              G_fatal_error("%s", _("Error in pj_do_proj"));
+           *lat = y;
+           *lon = e;
+       }
+--- grass-6.4.3/ps/ps.map/error.c.orig 2008-11-25 02:31:21.000000000 +0100
++++ grass-6.4.3/ps/ps.map/error.c      2014-06-08 08:59:54.866352606 +0200
+@@ -17,7 +17,7 @@
+     if (isatty(0))
+       fprintf(stderr, "%s\n", msg);
+     else
+-      G_fatal_error(msg);
++      G_fatal_error("%s", msg);
+     reject();
+     return 0;
+--- grass-6.4.3/ps/ps.map/do_labels.c.orig     2011-10-01 11:52:04.000000000 +0200
++++ grass-6.4.3/ps/ps.map/do_labels.c  2014-06-08 10:14:48.236258950 +0200
+@@ -65,7 +65,7 @@
+           G_warning(_("Can't open temporary label file <%s>"),
+                     labels.other);
+       else {
+-          G_message(_("Reading text file ..."));
++          G_message("%s", _("Reading text file ..."));
+           do_label(fd, font_override);
+           fclose(fd);
+@@ -158,7 +158,7 @@
+           /* set font size if given in map units and not given by fontsize */
+           if (fontsize && size > 0)
+-              G_warning(_("Text labels: 'fontsize' given so ignoring 'size'"));
++              G_warning("%s", _("Text labels: 'fontsize' given so ignoring 'size'"));
+           if (!fontsize)
+               fontsize = size * PS.ns_to_y;
+--- grass-6.4.3/ps/ps.map/r_group.c.orig       2008-11-25 02:31:21.000000000 +0100
++++ grass-6.4.3/ps/ps.map/r_group.c    2014-06-08 10:54:03.066209868 +0200
+@@ -28,7 +28,7 @@
+     /* get group info */
+     I_init_group_ref(&grp.ref);
+     if (I_get_group_ref(grp.group_name, &grp.ref) == 0)
+-      G_fatal_error(_("Can't get group information"));
++      G_fatal_error("%s", _("Can't get group information"));
+     /* get file names for R, G, & B */
+     I_init_ref_color_nums(&grp.ref);
+--- grass-6.4.3/ps/ps.map/ps_fclrtbl.c.orig    2013-02-23 11:52:07.000000000 +0100
++++ grass-6.4.3/ps/ps.map/ps_fclrtbl.c 2014-06-08 11:49:49.286140123 +0200
+@@ -48,7 +48,7 @@
+     /* Get color range */
+     if (G_read_fp_range(ct.name, ct.mapset, &range) == -1) {
+-      G_warning(_("Range information not available (run r.support)"));
++      G_warning("%s", _("Range information not available (run r.support)"));
+       return 1;
+     }
+@@ -61,12 +61,12 @@
+     }
+     if (dmin == dmax) {               /* if step==0 all sorts of infinite loops and DIV by 0 errors follow */
+-      G_warning(_("A floating point colortable must contain a range of values"));
++      G_warning("%s", _("A floating point colortable must contain a range of values"));
+       return 1;
+     }
+     if (G_read_colors(ct.name, ct.mapset, &colors) == -1)
+-      G_warning(_("Unable to read colors for colorbar"));
++      G_warning("%s", _("Unable to read colors for colorbar"));
+     do_color = (PS.grey == 0 && PS.level == 2);
+@@ -89,23 +89,23 @@
+     /* reset position to get at least something in BBox */
+     if (ct.y < PS.top_marg) { /* higher than top margin */
+-      G_warning(_("Colorbar y location beyond page margins. Adjusting."));
++      G_warning("%s", _("Colorbar y location beyond page margins. Adjusting."));
+       ct.y = PS.top_marg + 0.1;
+     }
+     else if (ct.y > PS.page_height - PS.bot_marg) {
+       /* lower than bottom margin - simply move one inch up from bottom margin */
+-      G_warning(_("Colorbar y location beyond page margins. Adjusting."));
++      G_warning("%s", _("Colorbar y location beyond page margins. Adjusting."));
+       ct.y = PS.page_height - PS.bot_marg - 1;
+     }
+     t = 72.0 * (PS.page_height - ct.y);
+     if (ct.x < PS.left_marg) {
+-      G_warning(_("Colorbar x location beyond page margins. Adjusting."));
++      G_warning("%s", _("Colorbar x location beyond page margins. Adjusting."));
+       ct.x = PS.left_marg + 0.1;
+     }
+     else if (ct.x > PS.page_width - PS.right_marg) {
+       /* move 1 inch to the left from right marg */
+-      G_warning(_("Colorbar x location beyond page margins. Adjusting."));
++      G_warning("%s", _("Colorbar x location beyond page margins. Adjusting."));
+       ct.x = PS.page_width - PS.right_marg - 1;
+     }
+     l = 72.0 * ct.x;
+--- grass-6.4.3/ps/ps.map/do_masking.c.orig    2008-11-25 02:31:21.000000000 +0100
++++ grass-6.4.3/ps/ps.map/do_masking.c 2014-06-08 12:41:11.619409210 +0200
+@@ -20,7 +20,7 @@
+     /* open the temporary mask file */
+     if ((ps_mask_fp = fopen(ps_mask_file, "r")) == NULL)
+-      G_fatal_error(_("Can't open temporary PostScript mask file."));
++      G_fatal_error("%s", _("Can't open temporary PostScript mask file."));
+     /* adjust columns to multiple of 8 */
+--- grass-6.4.3/ps/ps.map/scale.c.orig 2008-11-25 02:31:21.000000000 +0100
++++ grass-6.4.3/ps/ps.map/scale.c      2014-06-08 15:07:56.069225699 +0200
+@@ -134,5 +134,5 @@
+ static int OOPS(void)
+ {
+-    G_fatal_error(_("PSmap: do_scale(): shouldn't happen"));
++    G_fatal_error("%s", _("PSmap: do_scale(): shouldn't happen"));
+ }
+--- grass-6.4.3/ps/ps.map/main.c.orig  2013-04-27 11:52:12.000000000 +0200
++++ grass-6.4.3/ps/ps.map/main.c       2014-06-08 16:11:52.792479062 +0200
+@@ -285,7 +285,7 @@
+     /* set current window */
+     G_get_set_window(&PS.w);
+     if (G_set_window(&PS.w) == -1)
+-      G_fatal_error(_("Current region cannot be set."));
++      G_fatal_error("%s", _("Current region cannot be set."));
+     while (1) {
+       char *key;
+@@ -294,7 +294,7 @@
+       if (!input(1, buf, help)) {
+           if (!iflag) {
+               if (G_getl2(buf, 12, inputfd))
+-                  G_warning(_("Data exists after final 'end' instruction!"));
++                  G_warning("%s", _("Data exists after final 'end' instruction!"));
+               break;
+           }
+           iflag = 0;
+@@ -327,14 +327,14 @@
+           if (sscanf(data, "%d", &verbose) != 1)
+               verbose = G_verbose_std();
+-          G_warning(_("GRASS environment variable GRASS_VERBOSE "
++          G_warning("%s", _("GRASS environment variable GRASS_VERBOSE "
+                       "is overwritten by VERBOSE mapping instruction. "
+                       "This mapping instruction is superseded and "
+                       "will be removed in future versions of GRASS. "
+                       "Please use --verbose instead."));
+           if (!G_set_verbose(verbose))
+-              G_warning(_("Cannot set GRASS_VERBOSE variable."));
++              G_warning("%s", _("Cannot set GRASS_VERBOSE variable."));
+           continue;
+       }
+--- grass-6.4.3/ps/ps.map/ps_clrtbl.c.orig     2011-05-28 11:52:04.000000000 +0200
++++ grass-6.4.3/ps/ps.map/ps_clrtbl.c  2014-06-08 18:15:40.922324236 +0200
+@@ -41,7 +41,7 @@
+     }
+     if (G_read_colors(ct.name, ct.mapset, &colors) == -1)
+-      G_warning(_("Unable to read colors for colorbar"));
++      G_warning("%s", _("Unable to read colors for colorbar"));
+     rast_type = G_raster_map_type(ct.name, ct.mapset);
+@@ -51,7 +51,7 @@
+     num_cats = G_number_of_raster_cats(&PS.cats);
+     G_debug(3, "clrtbl: %d categories", num_cats);
+     if (!num_cats) {
+-      G_warning(_("Your cats/ file is invalid. A cats/ file with categories "
++      G_warning("%s", _("Your cats/ file is invalid. A cats/ file with categories "
+                   "and labels is required for 'colortable' when using "
+                   "categorical legends; see the r.category help page. "
+                   "Colortable creation has been skipped."));
+@@ -66,13 +66,13 @@
+     dy = 1.5 * fontsize;
+     if (ct.y < PS.top_marg) {
+-      G_warning(_("Colorbar y location beyond page margins. Adjusting."));
++      G_warning("%s", _("Colorbar y location beyond page margins. Adjusting."));
+       ct.y = PS.top_marg;
+     }
+     t = 72.0 * (PS.page_height - ct.y);
+     if (ct.x < PS.left_marg) {
+-      G_warning(_("Colorbar x location beyond page margins. Adjusting."));
++      G_warning("%s", _("Colorbar x location beyond page margins. Adjusting."));
+       ct.x = PS.left_marg + 0.1;
+     }
+     l = 72.0 * ct.x + 0.5;
+--- grass-6.4.3/ps/ps.map/catval.c.orig        2008-11-25 02:31:21.000000000 +0100
++++ grass-6.4.3/ps/ps.map/catval.c     2014-06-08 19:06:36.405593884 +0200
+@@ -46,7 +46,7 @@
+     Fi = Vect_get_field(map, vector.layer[vec].field);
+     if (Fi == NULL) {
+-      G_fatal_error(_("Unable to get layer info for vector map"));
++      G_fatal_error("%s", _("Unable to get layer info for vector map"));
+     }
+     driver = db_start_driver_open_database(Fi->driver, Fi->database);
+@@ -61,10 +61,10 @@
+     ctype = cvarr_rgb->ctype;
+     if (ctype != DB_C_TYPE_STRING)
+-      G_fatal_error(_("Column type not supported (must be string)"));
++      G_fatal_error("%s", _("Column type not supported (must be string)"));
+     if (nrec < 0)
+-      G_fatal_error(_("Unable to select data from table"));
++      G_fatal_error("%s", _("Unable to select data from table"));
+     G_debug(2, "\nRGB column: %d records selected from table", nrec);
+@@ -108,7 +108,7 @@
+     Fi = Vect_get_field(map, vector.layer[vec].field);
+     if (Fi == NULL) {
+-      G_fatal_error(_("Unable to get layer info for vector map"));
++      G_fatal_error("%s", _("Unable to get layer info for vector map"));
+     }
+     driver = db_start_driver_open_database(Fi->driver, Fi->database);
+@@ -126,10 +126,10 @@
+     ctype = cvarr_size->ctype;
+     if (ctype != DB_C_TYPE_INT && ctype != DB_C_TYPE_DOUBLE)
+-      G_fatal_error(_("Size column type must be numeric"));
++      G_fatal_error("%s", _("Size column type must be numeric"));
+     if (nrec < 0)
+-      G_fatal_error(_("Unable to select data from table"));
++      G_fatal_error("%s", _("Unable to select data from table"));
+     G_debug(2, "\nSize column: %d records selected from table", nrec);
+     db_close_database_shutdown_driver(driver);
+@@ -174,7 +174,7 @@
+     Fi = Vect_get_field(map, vector.layer[vec].field);
+     if (Fi == NULL) {
+-      G_fatal_error(_("Unable to get layer info for vector map"));
++      G_fatal_error("%s", _("Unable to get layer info for vector map"));
+     }
+     driver = db_start_driver_open_database(Fi->driver, Fi->database);
+@@ -193,10 +193,10 @@
+     ctype = cvarr_rot->ctype;
+     if (ctype != DB_C_TYPE_INT && ctype != DB_C_TYPE_DOUBLE)
+-      G_fatal_error(_("Rotation column type must be numeric"));
++      G_fatal_error("%s", _("Rotation column type must be numeric"));
+     if (nrec < 0)
+-      G_fatal_error(_("Unable to select data from table"));
++      G_fatal_error("%s", _("Unable to select data from table"));
+     G_debug(2, "\nRotate column: %d records selected from table", nrec);
+--- grass-6.4.3/ps/ps.map/ps_raster.c.orig     2008-11-25 02:31:21.000000000 +0100
++++ grass-6.4.3/ps/ps.map/ps_raster.c  2014-06-08 19:38:41.618887090 +0200
+@@ -40,7 +40,7 @@
+     /* if masked, open a file to hold the PostScript mask data */
+     if (maskfd >= 0 && PS.mask_needed) {
+       if ((ps_mask_fp = fopen(ps_mask_file, "w")) == NULL)
+-          G_fatal_error(_("Can't create temporary PostScript mask file."));
++          G_fatal_error("%s", _("Can't create temporary PostScript mask file."));
+       /* get no data rgb values for mask */
+       G_get_null_value_color(&r, &g, &b, &PS.colors);
+--- grass-6.4.3/ps/ps.map/ps_vlines.c.orig     2008-11-25 02:31:21.000000000 +0100
++++ grass-6.4.3/ps/ps.map/ps_vlines.c  2014-06-08 20:23:39.068830867 +0200
+@@ -52,7 +52,7 @@
+       }
+       G_debug(3, "%d items selected for vector %d", ret, vec);
+       if (ret == -1)
+-          G_fatal_error(_("Cannot load data from table"));
++          G_fatal_error("%s", _("Cannot load data from table"));
+     }
+     /* allocate memory for coordinates */
+@@ -80,7 +80,7 @@
+       if (0 > (ret = Vect_read_line(P_map, Points, Cats, line))) {
+           if (ret == -1)
+-              G_warning(_("Read error in vector map"));
++              G_warning("%s", _("Read error in vector map"));
+           break;
+       }
+       if (!(ret & GV_LINES))
+--- grass-6.4.3/raster/r.basins.fill/main.c.orig       2010-09-25 11:52:06.000000000 +0200
++++ grass-6.4.3/raster/r.basins.fill/main.c    2014-05-23 19:40:12.077698740 +0200
+@@ -128,7 +128,7 @@
+               }
+           }
+       }
+-      G_message(_("Forward sweep complete"));
++      G_message("%s", _("Forward sweep complete"));
+       for (row = nrows - 3; row > 1; --row) {
+           for (col = ncols - 3; col > 1; --col) {
+@@ -145,7 +145,7 @@
+               }
+           }
+       }
+-      G_message(_("Reverse sweep complete"));
++      G_message("%s", _("Reverse sweep complete"));
+     }
+     /* write out partitioned watershed map */
+--- grass-6.4.3/raster/r.bilinear/main.c.orig  2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/raster/r.bilinear/main.c       2014-05-23 19:48:14.227688691 +0200
+@@ -64,7 +64,7 @@
+     if (G_parser(argc, argv))
+       exit(EXIT_FAILURE);
+-    G_warning(_("This module is deprecated. Please use 'r.resamp.interp' instead."));
++    G_warning("%s", _("This module is deprecated. Please use 'r.resamp.interp' instead."));
+     o_east = o_north = 0.0;
+--- grass-6.4.3/raster/r.buffer/main.c.orig    2013-07-15 14:15:28.000000000 +0200
++++ grass-6.4.3/raster/r.buffer/main.c 2014-05-23 19:48:33.171021629 +0200
+@@ -107,7 +107,7 @@
+     /* please, remove before GRASS 7 released */
+     if (q_flag->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+@@ -146,7 +146,7 @@
+     /* parse distances */
+     if (!(count = parse_distances(zone_list, to_meters)))
+-      G_fatal_error(_("Parse distances error"));
++      G_fatal_error("%s", _("Parse distances error"));
+     /* need to keep track of distance zones - in memory.
+--- grass-6.4.3/raster/r.buffer/execute.c.orig 2008-11-25 02:30:50.000000000 +0100
++++ grass-6.4.3/raster/r.buffer/execute.c      2014-06-04 15:51:33.473041194 +0200
+@@ -31,7 +31,7 @@
+     /* find the first 1 in each row, and process that row */
+-    G_message(_("Finding buffer zones..."));
++    G_message("%s", _("Finding buffer zones..."));
+     nrows = 0;
+     for (row = minrow; row <= maxrow; row++) {
+--- grass-6.4.3/raster/r.carve/main.c.orig     2011-04-23 11:52:10.000000000 +0200
++++ grass-6.4.3/raster/r.carve/main.c  2014-05-23 19:49:11.164354171 +0200
+@@ -123,7 +123,7 @@
+     /* please, remove before GRASS 7 released */
+     if (q_flag->answer) {
+       G_putenv("GRASS_VERBOSE", "0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+@@ -228,7 +228,7 @@
+       *wrap_ncols =
+           (360.0 - (window->east - window->west)) / window->ew_res + 1.1;
+ #else
+-      G_fatal_error(_("lat/lon projection not supported at this time."));
++      G_fatal_error("%s", _("lat/lon projection not supported at this time."));
+ #endif
+     }
+     else {
+--- grass-6.4.3/raster/r.carve/lobf.c.orig     2008-11-25 02:30:38.000000000 +0100
++++ grass-6.4.3/raster/r.carve/lobf.c  2014-06-04 15:51:54.289707427 +0200
+@@ -71,7 +71,7 @@
+       /* check for divide by zero */
+       if (0 ==
+           (denom = DET2_2(pg->sum_x_sq, pg->sum_x, pg->sum_x, pg->npts))) {
+-          G_warning(_("trying to divide by zero...no unique solution for "
++          G_warning("%s", _("trying to divide by zero...no unique solution for "
+                      "system...skipping..."));
+           pg->slope = pg->yinter = 0.0;
+       }
+--- grass-6.4.3/raster/r.carve/enforce_ds.c.orig       2008-11-25 02:30:38.000000000 +0100
++++ grass-6.4.3/raster/r.carve/enforce_ds.c    2014-06-05 21:45:08.930798152 +0200
+@@ -78,7 +78,7 @@
+     /* first read whole elevation file into buf */
+     read_raster(rbuf, infd, parm->raster_type);
+-    G_message(_("Processing lines... "));
++    G_message("%s", _("Processing lines... "));
+     nlines = Vect_get_num_lines(Map);
+     for (line = 1; line <= nlines; line++)
+@@ -170,7 +170,7 @@
+     }
+     if (do_warn) {
+-      G_warning(_("Vect runs out of region and re-enters - "
++      G_warning("%s", _("Vect runs out of region and re-enters - "
+                   "this case is not yet implemented."));
+       retval = 1;
+     }
+--- grass-6.4.3/raster/r.carve/raster.c.orig   2008-11-25 02:30:38.000000000 +0100
++++ grass-6.4.3/raster/r.carve/raster.c        2014-06-07 22:25:27.537146052 +0200
+@@ -9,7 +9,7 @@
+     int rows = G_window_rows();
+     int i;
+-    G_message(_("Reading raster map..."));
++    G_message("%s", _("Reading raster map..."));
+     for (i = 0; i < rows; i++) {
+       G_percent(i + 1, rows, 10);
+@@ -29,7 +29,7 @@
+     int rows = G_window_rows();
+     int i;
+-    G_message(_("Writing raster map..."));
++    G_message("%s", _("Writing raster map..."));
+     for (i = 0; i < rows; i++) {
+       G_percent(i, rows, 10);
+--- grass-6.4.3/raster/r.cats/main.c.orig      2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/raster/r.cats/main.c   2014-05-23 19:49:30.404353770 +0200
+@@ -265,7 +265,7 @@
+     }
+     else {
+       if (map_type != CELL_TYPE)
+-          G_warning(_("The map is floating point! Ignoring cats list, using vals list"));
++          G_warning("%s", _("The map is floating point! Ignoring cats list, using vals list"));
+       else {                  /* integer map */
+           for (i = 0; parm.cats->answers[i]; i++)
+@@ -282,7 +282,7 @@
+       }
+     }
+     if (parm.vals->answer == NULL)
+-      G_fatal_error(_("vals argument is required for floating point map!"));
++      G_fatal_error("%s", _("vals argument is required for floating point map!"));
+     for (i = 0; parm.vals->answers[i]; i++)
+       if (!scan_vals(parm.vals->answers[i], &dx)) {
+           G_usage();
+--- grass-6.4.3/raster/r.circle/dist.c.orig    2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/raster/r.circle/dist.c 2014-05-23 19:49:56.624353223 +0200
+@@ -105,7 +105,7 @@
+       fmax = HUGE_VAL;
+     if (fmin > fmax)
+-      G_fatal_error(_("Please specify a radius in which min < max"));
++      G_fatal_error("%s", _("Please specify a radius in which min < max"));
+     if (mult->answer)
+       if (1 != sscanf(mult->answer, "%lf", &fmult))
+@@ -113,7 +113,7 @@
+     /* nonsense test */
+     if (flag->answer && (!min->answer && !max->answer))
+-      G_fatal_error(_("Please specify min and/or max radius when "
++      G_fatal_error("%s", _("Please specify min and/or max radius when "
+                       "using the binary flag"));
+     if (flag->answer)
+--- grass-6.4.3/raster/r.clump/main.c.orig     2013-07-15 14:15:28.000000000 +0200
++++ grass-6.4.3/raster/r.clump/main.c  2014-05-23 19:50:18.564352766 +0200
+@@ -74,7 +74,7 @@
+     /* please, remove before GRASS 7 released */
+     if (q_flag->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+--- grass-6.4.3/raster/r.coin/print_coin.c.orig        2008-11-25 02:30:37.000000000 +0100
++++ grass-6.4.3/raster/r.coin/print_coin.c     2014-05-23 19:50:37.797685698 +0200
+@@ -41,7 +41,7 @@
+     int col0, row0;
+     if (tofile) {
+-      fprintf(stderr, _("Preparing report ..."));
++      fputs(_("Preparing report ..."), stderr);
+       fflush(stderr);
+       dumpfile = fopen(dumpname, "w");
+     }
+--- grass-6.4.3/raster/r.coin/inter.c.orig     2008-11-25 02:30:37.000000000 +0100
++++ grass-6.4.3/raster/r.coin/inter.c  2014-06-04 15:53:42.916371829 +0200
+@@ -31,8 +31,8 @@
+     setbuf(stderr, NULL);
+     G_clear_screen();
+-    G_message(_("GIS Coincidence Tabulation Facility\n"));
+-    G_message(_("This utility will allow you to compare the "
++    G_message("%s", _("GIS Coincidence Tabulation Facility\n"));
++    G_message("%s", _("This utility will allow you to compare the "
+               "coincidence of two map layers\n"));
+     mapset1 = G_ask_cell_old("Enter Name of Map Layer 1", map1name);
+@@ -49,18 +49,18 @@
+     while (1) {
+       G_clear_screen();
+-      G_message(_("The report can be made in one of 8 units."));
+-      G_message(_("Please choose a unit by entering one of the "
++      G_message("%s", _("The report can be made in one of 8 units."));
++      G_message("%s", _("Please choose a unit by entering one of the "
+                   "following letter codes:"));
+-      G_message(_("     'c': cells"));
+-      G_message(_("     'p': percent cover of region"));
++      G_message("%s", _("     'c': cells"));
++      G_message("%s", _("     'p': percent cover of region"));
+       G_message(_("     'x': percent of '%s' category (column)"), map1name);
+       G_message(_("     'y': percent of '%s' category (row)"), map2name);
+-      G_message(_("     'a': acres"));
+-      G_message(_("     'h': hectares"));
+-      G_message(_("     'k': square kilometers"));
+-      G_message(_("     'm': square miles\n"));
+-      G_message(_("     'Q': quit"));
++      G_message("%s", _("     'a': acres"));
++      G_message("%s", _("     'h': hectares"));
++      G_message("%s", _("     'k': square kilometers"));
++      G_message("%s", _("     'm': square miles\n"));
++      G_message("%s", _("     'Q': quit"));
+       fprintf(stderr, "> ");
+       *ans = 0;
+@@ -91,8 +91,8 @@
+       G_system(command);
+       while (1) {
+-          fprintf(stderr,
+-                  _("Do you wish to save this report in a file? (y/n) [n] "));
++          fputs(
++                  _("Do you wish to save this report in a file? (y/n) [n] "), stderr);
+           *ans = 0;
+           if (!G_gets(ans))
+               continue;
+@@ -100,7 +100,7 @@
+           if (ans[0] != 'y' && ans[0] != 'Y')
+               break;
+-          fprintf(stderr, _("Enter the file name or path\n> "));
++          fputs(_("Enter the file name or path\n> "), stderr);
+           if (!G_gets(line))
+               continue;
+           if (sscanf(line, "%s", outname) != 1)
+@@ -113,8 +113,8 @@
+       while (1) {
+           *ans = 0;
+-          fprintf(stderr,
+-                  _("Do you wish to print this report (requires Unix lpr command)? (y/n) [n] "));
++          fputs(
++                  _("Do you wish to print this report (requires Unix lpr command)? (y/n) [n] "), stderr);
+           if (!G_gets(ans))
+               continue;
+           G_strip(ans);
+@@ -122,8 +122,8 @@
+               break;
+         ask132:
+-          fprintf(stderr,
+-                  _("Do you wish it printed in 80 or 132 columns?\n> "));
++          fputs(
++                  _("Do you wish it printed in 80 or 132 columns?\n> "), stderr);
+           *ans = 0;
+           if (!G_gets(ans))
+               continue;
+@@ -139,8 +139,8 @@
+       }
+       do {
+-          fprintf(stderr, _("Do you wish to run this report with a "
+-                            "different unit of measure? (y/n) [y] "));
++          fputs(_("Do you wish to run this report with a "
++                            "different unit of measure? (y/n) [y] "), stderr);
+           *ans = 0;
+       }
+       while (!G_gets(ans));
+--- grass-6.4.3/raster/r.coin/make_coin.c.orig 2008-11-25 02:30:37.000000000 +0100
++++ grass-6.4.3/raster/r.coin/make_coin.c      2014-06-05 21:45:32.040797670 +0200
+@@ -51,11 +51,11 @@
+     strcat(buf, "\"");
+     statfd = fopen(statname, "w");
+     if (statfd == NULL)
+-      G_fatal_error(_("Unable to create any tempfiles"));
++      G_fatal_error("%s", _("Unable to create any tempfiles"));
+     fd = popen(buf, "r");
+     if (fd == NULL)
+-      G_fatal_error(_("Unable to run r.stats"));
++      G_fatal_error("%s", _("Unable to run r.stats"));
+     /* need to find the number of cats in each file */
+     count = 0;
+@@ -64,7 +64,7 @@
+                  &stats.cat1, &stats.cat2, &stats.area, &stats.count) != 4)
+       {
+           pclose(fd);
+-          G_fatal_error(_("Unexpected output from r.stats"));
++          G_fatal_error("%s", _("Unexpected output from r.stats"));
+       }
+       fwrite(&stats, sizeof(stats), 1, statfd);
+       count++;
+@@ -75,7 +75,7 @@
+     statfd = fopen(statname, "r");
+     if (statfd == NULL)
+-      G_fatal_error(_("Unable to open tempfile"));
++      G_fatal_error("%s", _("Unable to open tempfile"));
+     /* build a sorted list of cats in both maps */
+     catlist1 = (long *)G_calloc(count * 2, sizeof(long));
+--- grass-6.4.3/raster/r.colors/rules.c.orig   2014-05-23 19:51:53.841017447 +0200
++++ grass-6.4.3/raster/r.colors/rules.c        2014-05-23 19:51:56.767684052 +0200
+@@ -38,8 +38,8 @@
+     DCELL rulemin, rulemax;
+     if (isatty(fileno(fp))) {
+-      fprintf(stderr,
+-              _("Enter rules, \"end\" when done, \"help\" if you need it.\n"));
++      fputs(
++              _("Enter rules, \"end\" when done, \"help\" if you need it.\n"), stderr);
+       if (is_fp) {
+           char minstr[64], maxstr[64];
+@@ -103,14 +103,14 @@
+           return 0;
+       if (strncmp(buf, "help", 4) == 0) {
+-          fprintf(stderr, _("Enter a rule in one of these formats:\n"));
+-          fprintf(stderr, _(" val color\n"));
+-          fprintf(stderr, _(" n%% color\n"));
+-          fprintf(stderr, _(" nv color\n"));
+-          fprintf(stderr, _(" default color\n"));
+-          fprintf(stderr, _("color can be one of:\n"));
++          fputs(_("Enter a rule in one of these formats:\n"), stderr);
++          fputs(_(" val color\n"), stderr);
++          fputs(_(" n% color\n"), stderr);
++          fputs(_(" nv color\n"), stderr);
++          fputs(_(" default color\n"), stderr);
++          fputs(_("color can be one of:\n"), stderr);
+           show_colors(stderr);
+-          fprintf(stderr, _("or an R:G:B triplet, e.g.: 0:127:255\n"));
++          fputs(_("or an R:G:B triplet, e.g.: 0:127:255\n"), stderr);
+           continue;
+       }
+--- grass-6.4.3/raster/r.colors/main.c.orig    2010-11-06 10:52:07.000000000 +0100
++++ grass-6.4.3/raster/r.colors/main.c 2014-06-04 15:55:15.279703237 +0200
+@@ -255,7 +255,7 @@
+     /* please, remove before GRASS 7 released */
+     if (flag.q->answer) {
+       G_putenv("GRASS_VERBOSE", "0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+@@ -275,19 +275,19 @@
+     rules = opt.rules->answer;
+     if (!name)
+-      G_fatal_error(_("No raster map specified"));
++      G_fatal_error("%s", _("No raster map specified"));
+     if (!cmap && !style && !rules && !interactive && !remove)
+-      G_fatal_error(_("One of \"-i\" or \"-r\" or options \"color\", \"rast\" or \"rules\" must be specified!"));
++      G_fatal_error("%s", _("One of \"-i\" or \"-r\" or options \"color\", \"rast\" or \"rules\" must be specified!"));
+     if (interactive && (style || rules || cmap))
+-      G_fatal_error(_("Interactive mode is incompatible with \"color\", \"rules\", and \"raster\" options"));
++      G_fatal_error("%s", _("Interactive mode is incompatible with \"color\", \"rules\", and \"raster\" options"));
+     if ((style && (cmap || rules)) || (cmap && rules)) {
+       if ((style && rules && !cmap) && strcmp(style, "rules") == 0)
+           style = NULL;
+       else
+-          G_fatal_error(
++          G_fatal_error("%s",
+               _("\"color\", \"rules\", and \"raster\" options are mutually exclusive"));
+     }
+@@ -299,7 +299,7 @@
+     }
+     if (flag.g->answer && flag.a->answer)
+-      G_fatal_error(_("-g and -a flags are mutually exclusive"));
++      G_fatal_error("%s", _("-g and -a flags are mutually exclusive"));
+     mapset = G_find_cell2(name, "");
+     if (mapset == NULL)
+@@ -321,7 +321,7 @@
+        G_free_colors(&colors); */
+     if (have_colors > 0 && !overwrite) {
+-      G_warning(_("Color table exists. Exiting."));
++      G_warning("%s", _("Color table exists. Exiting."));
+       exit(EXIT_FAILURE);
+     }
+@@ -341,19 +341,19 @@
+        */
+       if (strcmp(style, "random") == 0) {
+           if (fp)
+-              G_fatal_error(_("Color table 'random' is not supported for floating point raster map"));
++              G_fatal_error("%s", _("Color table 'random' is not supported for floating point raster map"));
+           G_make_random_colors(&colors, (CELL) min, (CELL) max);
+       }
+       else if (strcmp(style, "grey.eq") == 0) {
+           if (fp)
+-              G_fatal_error(_("Color table 'grey.eq' is not supported for floating point raster map"));
++              G_fatal_error("%s", _("Color table 'grey.eq' is not supported for floating point raster map"));
+           if (!have_stats)
+               have_stats = get_stats(name, mapset, &statf);
+           G_make_histogram_eq_colors(&colors, &statf);
+       }
+       else if (strcmp(style, "grey.log") == 0) {
+           if (fp)
+-              G_fatal_error(_("Color table 'grey.log' is not supported for floating point raster map"));
++              G_fatal_error("%s", _("Color table 'grey.log' is not supported for floating point raster map"));
+           if (!have_stats)
+               have_stats = get_stats(name, mapset, &statf);
+           G_make_histogram_log_colors(&colors, &statf, (CELL) min,
+--- grass-6.4.3/raster/r.colors/stats.c.orig   2009-04-25 11:52:31.000000000 +0200
++++ grass-6.4.3/raster/r.colors/stats.c        2014-06-05 21:45:50.200797291 +0200
+@@ -76,7 +76,7 @@
+     if (statf->geometric) {
+       if (min * max < 0)
+-          G_fatal_error(_("Unable to use logarithmic scaling if range includes zero"));
++          G_fatal_error("%s", _("Unable to use logarithmic scaling if range includes zero"));
+       if (min < 0) {
+           statf->flip = 1;
+--- grass-6.4.3/raster/r.colors.out/main.c.orig        2010-11-06 10:52:07.000000000 +0100
++++ grass-6.4.3/raster/r.colors.out/main.c     2014-05-23 19:52:35.654349908 +0200
+@@ -88,7 +88,7 @@
+       G_fatal_error(_("Raster map <%s> not found"), name);
+     if (G_read_colors(name, "", &colors) < 0)
+-      G_fatal_error(_("Unable to read color table for raster map <%s>"));
++      G_fatal_error(_("Unable to read color table for raster map <%s>"), name);
+     G_read_fp_range(name, "", &range);
+     G_get_fp_range_min_max(&range, &min, &max);
+--- grass-6.4.3/raster/r.composite/main.c.orig 2008-12-20 11:45:21.000000000 +0100
++++ grass-6.4.3/raster/r.composite/main.c      2014-05-23 19:53:51.141015002 +0200
+@@ -294,7 +294,7 @@
+     G_init_colors(colors);
+-    G_message(_("Creating color table for output raster map..."));
++    G_message("%s", _("Creating color table for output raster map..."));
+     for (b = 0; b < nb; b++) {
+       G_percent(b, nb, 5);
+--- grass-6.4.3/raster/r.compress/main.c.orig  2012-08-18 11:52:05.000000000 +0200
++++ grass-6.4.3/raster/r.compress/main.c       2014-05-23 19:54:07.227681333 +0200
+@@ -87,7 +87,7 @@
+     /* please, remove before GRASS 7 released */
+     if (q_flag->answer) {
+       G_putenv("GRASS_VERBOSE", "0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+--- grass-6.4.3/raster/r.contour/cont.c.orig   2008-12-13 11:45:17.000000000 +0100
++++ grass-6.4.3/raster/r.contour/cont.c        2014-05-23 19:54:28.951014214 +0200
+@@ -259,7 +259,7 @@
+       current->edge = 1;
+       break;
+     default:
+-      G_fatal_error(_("Illegal edge number"));
++      G_fatal_error("%s", _("Illegal edge number"));
+     }
+ }
+@@ -367,7 +367,7 @@
+       x = curr->c;
+       break;
+     default:
+-      G_fatal_error(_("Edge number out of range"));
++      G_fatal_error("%s", _("Edge number out of range"));
+     }
+     /* convert r/c values to x/y values */
+--- grass-6.4.3/raster/r.contour/main.c.orig   2008-12-13 11:45:17.000000000 +0100
++++ grass-6.4.3/raster/r.contour/main.c        2014-06-04 15:57:04.739700956 +0200
+@@ -144,12 +144,12 @@
+     /* please, remove before GRASS 7 released */
+     if (q_flag->answer || n_flag->answer) {
+       G_putenv("GRASS_VERBOSE", "0");
+-      G_warning(_("The '-q' and '-n' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' and '-n' flag is superseded and will be removed "
+                  "in future. Please use '--quiet' instead."));
+     }
+     if (!levels->answers && !step->answer) {
+-      G_fatal_error(_("Neither \"levels\" nor \"step\" parameter specified."));
++      G_fatal_error("%s", _("Neither \"levels\" nor \"step\" parameter specified."));
+     }
+     name = map->answer;
+@@ -241,7 +241,7 @@
+     z_array = (DCELL **) G_malloc(nrow * sizeof(DCELL *));
+-    G_message(_("Reading data..."));
++    G_message("%s", _("Reading data..."));
+     for (i = 0; i < nrow; i++) {
+       z_array[i] = (DCELL *) G_malloc(ncol * sizeof(DCELL));
+@@ -269,7 +269,7 @@
+     if (!G_is_d_null_value(&zmin) && !G_is_d_null_value(&zmax))
+       G_verbose_message(_("Range of data: min=%f, max=%f"), zmin, zmax);
+     else
+-      G_verbose_message(_("Range of data: empty"));
++      G_verbose_message("%s", _("Range of data: empty"));
+     nlevels = 0;
+     if (levels->answers) {
+@@ -296,11 +296,11 @@
+       dstep = atof(step->answer);
+       /* fix if step < 1, Roger Bivand 1/2001: */
+       dmax = (max->answer) ? atof(max->answer) : dstep == 0 ?
+-          G_fatal_error(_("This step value is not allowed")) : zmax -
++          G_fatal_error("%s", _("This step value is not allowed")) : zmax -
+           fmod(zmax, dstep);
+       dmin =
+           (min->answer) ? atof(min->answer) : dstep ==
+-          0 ? G_fatal_error(_("This step value is not allowed")) :
++          0 ? G_fatal_error("%s", _("This step value is not allowed")) :
+           fmod(zmin, dstep) ? zmin - fmod(zmin, dstep) + dstep : zmin;
+       while (dmin < zmin) {
+@@ -353,7 +353,7 @@
+     double *currRow;
+     double currVal;
+-    G_message(_("Displacing data..."));
++    G_message("%s", _("Displacing data..."));
+     for (i = 0; i < nrow; i++) {
+       currRow = z[i];
+--- grass-6.4.3/raster/r.cost/main.c.orig      2013-07-15 14:15:28.000000000 +0200
++++ grass-6.4.3/raster/r.cost/main.c   2014-05-23 20:15:20.487654794 +0200
+@@ -235,7 +235,7 @@
+     /* please, remove before GRASS 7 released */
+     if (v_flag->answer) {
+       G_putenv("GRASS_VERBOSE", "2");
+-      G_warning(_("The '-v' flag is superseded and will be removed "
++      G_warning("%s", _("The '-v' flag is superseded and will be removed "
+                   "in future. Please use '--verbose' instead."));
+     }
+@@ -253,7 +253,7 @@
+     /*  Get database window parameters      */
+     if (G_get_window(&window) < 0)
+-      G_fatal_error(_("Unable to read current window parameters"));
++      G_fatal_error("%s", _("Unable to read current window parameters"));
+     /*  Find north-south, east_west and diagonal factors */
+@@ -287,12 +287,12 @@
+           count++;
+       if (count != 1)
+-          G_fatal_error(_("Must specify exactly one of start_points, start_rast or coordinate"));
++          G_fatal_error("%s", _("Must specify exactly one of start_points, start_rast or coordinate"));
+     }
+     if (opt3->answers)
+       if (!process_answers(opt3->answers, &head_start_pt, &pres_start_pt))
+-          G_fatal_error(_("No start points"));
++          G_fatal_error("%s", _("No start points"));
+     if (opt4->answers)
+       have_stop_points =
+@@ -321,7 +321,7 @@
+     if (!G_is_d_null_value(&null_cost)) {
+       if (null_cost < 0.0) {
+-          G_warning(_("Assigning negative cost to null cell. Null cells excluded."));
++          G_warning("%s", _("Assigning negative cost to null cell. Null cells excluded."));
+           G_set_d_null_value(&null_cost, 1);
+       }
+     }
+@@ -399,7 +399,7 @@
+     /*   Create segmented format files for cost layer and output layer  */
+-    G_verbose_message(_("Creating some temporary files..."));
++    G_verbose_message("%s", _("Creating some temporary files..."));
+     in_fd = creat(in_file, 0666);
+     segment_format(in_fd, nrows, ncols, srows, scols, sizeof(double));
+@@ -514,7 +514,7 @@
+     /* Initialize output map with NULL VALUES */
+     /*   Initialize segmented output file  */
+-    G_message(_("Initializing output..."));
++    G_message("%s", _("Initializing output..."));
+     {
+       double *fbuff;
+@@ -537,7 +537,7 @@
+     }
+     if (dir == 1) {
+-      G_message(_("Initializing directional output "));
++      G_message("%s", _("Initializing directional output "));
+       {
+           double *fbuff;
+           int i;
+@@ -578,7 +578,7 @@
+       fp = G_fopen_sites_old(opt7->answer, search_mapset);
+       if (G_site_describe(fp, &dims, &cat, &strs, &dbls))
+-          G_fatal_error(_("Failed to guess site file format"));
++          G_fatal_error("%s", _("Failed to guess site file format"));
+       site = G_site_new_struct(cat, dims, strs, dbls);
+       for (; (G_site_get(fp, site) != EOF);) {
+@@ -611,7 +611,7 @@
+       G_sites_close(fp);
+       if (!got_one)
+-          G_fatal_error(_("No start points"));
++          G_fatal_error("%s", _("No start points"));
+ #endif
+     }
+@@ -628,7 +628,7 @@
+       fp = G_fopen_sites_old(opt8->answer, search_mapset);
+       if (G_site_describe(fp, &dims, &cat, &strs, &dbls))
+-          G_fatal_error(_("Failed to guess site file format\n"));
++          G_fatal_error("%s", _("Failed to guess site file format\n"));
+       site = G_site_new_struct(cat, dims, strs, dbls);
+       for (; (G_site_get(fp, site) != EOF);) {
+@@ -682,7 +682,7 @@
+       cell2 = G_allocate_raster_buf(data_type2);
+       if (!cell2)
+-          G_fatal_error(_("Unable to allocate memory"));
++          G_fatal_error("%s", _("Unable to allocate memory"));
+       G_message(_("Reading raster map <%s>..."), opt9->answer);
+       for (row = 0; row < nrows; row++) {
+@@ -717,7 +717,7 @@
+       G_free(cell2);
+       if (!got_one)
+-          G_fatal_error(_("No start points"));
++          G_fatal_error("%s", _("No start points"));
+     }
+@@ -732,7 +732,7 @@
+           value = &zero;
+           if (top_start_pt->row < 0 || top_start_pt->row >= nrows
+               || top_start_pt->col < 0 || top_start_pt->col >= ncols)
+-              G_fatal_error(_("Specified starting location outside database window"));
++              G_fatal_error("%s", _("Specified starting location outside database window"));
+           new_cell = insert(zero, top_start_pt->row, top_start_pt->col);
+           segment_put(&out_seg, value, top_start_pt->row,
+                       top_start_pt->col);
+@@ -748,7 +748,7 @@
+      *   3) Free the memory allocated to the present cell.
+      */
+-    G_message(_("Finding cost path..."));
++    G_message("%s", _("Finding cost path..."));
+     n_processed = 0;
+     total_cells = nrows * ncols;
+     at_percent = 0;
+@@ -998,11 +998,11 @@
+       pres_cell = get_lowest();
+       if (pres_cell == NULL) {
+-          G_message(_("No data"));
++          G_message("%s", _("No data"));
+           goto OUT;
+       }
+       if (ct == pres_cell)
+-          G_warning(_("Error, ct == pres_cell"));
++          G_warning("%s", _("Error, ct == pres_cell"));
+     }
+   OUT:
+     /*  Open cumulative cost layer for writing   */
+--- grass-6.4.3/raster/r.cost/btree.c.orig     2009-01-17 11:45:20.000000000 +0100
++++ grass-6.4.3/raster/r.cost/btree.c  2014-06-04 15:57:33.356367026 +0200
+@@ -182,7 +182,7 @@
+ int delete(struct cost *delete_cell)
+ {
+     if (delete_cell == NULL) {
+-      G_warning(_("Illegal delete request"));
++      G_warning("%s", _("Illegal delete request"));
+       return 0;
+     }
+@@ -400,7 +400,7 @@
+ int check_all(char *str)
+ {
+     if (start_cell->above != NULL) {
+-      G_fatal_error(_("Bad start cell"));
++      G_fatal_error("%s", _("Bad start cell"));
+     }
+     check(str, start_cell);
+--- grass-6.4.3/raster/r.covar/main.c.orig     2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/raster/r.covar/main.c  2014-05-23 20:15:40.057654386 +0200
+@@ -72,7 +72,7 @@
+     /* please, remove before GRASS 7 released */
+     if (q_flag->answer) {
+       G_putenv("GRASS_VERBOSE", "0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+@@ -126,7 +126,7 @@
+     }
+     G_percent(row, nrows, 2);
+     if (count <= 1.1)
+-      G_fatal_error(_("No non-null values"));
++      G_fatal_error("%s", _("No non-null values"));
+     ii = jj = 1.0;
+     for (i = 0; i < nfiles; i++) {
+--- grass-6.4.3/raster/r.cross/main.c.orig     2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/raster/r.cross/main.c  2014-05-23 20:15:56.500987377 +0200
+@@ -104,7 +104,7 @@
+     if (q_flag->answer) {
+       G_putenv("GRASS_VERBOSE", "0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+@@ -137,7 +137,7 @@
+     }
+     if (nfiles <= 1)
+-      G_fatal_error(_("Must specify 2 or more input maps"));
++      G_fatal_error("%s", _("Must specify 2 or more input maps"));
+     output = parm.output->answer;
+     outfd = G_open_cell_new(output);
+--- grass-6.4.3/raster/r.describe/main.c.orig  2011-04-23 11:52:10.000000000 +0200
++++ grass-6.4.3/raster/r.describe/main.c       2014-05-23 20:16:16.174320300 +0200
+@@ -112,7 +112,7 @@
+     /* please, remove before GRASS 7 released */
+     if (q_flag->answer) {
+       G_putenv("GRASS_VERBOSE", "0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+--- grass-6.4.3/raster/r.describe/describe.c.orig      2008-11-25 02:30:36.000000000 +0100
++++ grass-6.4.3/raster/r.describe/describe.c   2014-06-04 15:58:09.589699604 +0200
+@@ -41,12 +41,9 @@
+       get_row = G_get_c_raster_row;
+     }
+     else {
+-      char msg[100];
+-
+       if (G_get_cellhd(name, mapset, &window) < 0) {
+-          sprintf(msg, "can't get cell header for [%s] in [%s]", name,
++          G_fatal_error("can't get cell header for [%s] in [%s]", name,
+                   mapset);
+-          G_fatal_error(msg);
+       }
+       G_set_window(&window);
+       get_row = G_get_c_raster_row_nomask;
+--- grass-6.4.3/raster/r.distance/report.c.orig        2010-09-25 11:52:06.000000000 +0200
++++ grass-6.4.3/raster/r.distance/report.c     2014-05-23 20:16:47.194319654 +0200
+@@ -38,7 +38,7 @@
+     map2 = &parms->map2;
+     fs = parms->fs;
+-    G_message(_("Processing..."));
++    G_message("%s", _("Processing..."));
+     for (i1 = 0; i1 < map1->edges.ncats; i1++) {
+       list1 = &map1->edges.catlist[i1];
+--- grass-6.4.3/raster/r.distance/parse.c.orig 2012-09-22 11:52:11.000000000 +0200
++++ grass-6.4.3/raster/r.distance/parse.c      2014-06-04 15:58:29.609699187 +0200
+@@ -69,7 +69,7 @@
+     /* please, remove before GRASS 7 released */
+     if (q_flag->answer) {
+       G_putenv("GRASS_VERBOSE", "0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+--- grass-6.4.3/raster/r.drain/main.c.orig     2013-01-05 11:52:05.000000000 +0100
++++ grass-6.4.3/raster/r.drain/main.c  2014-05-23 20:18:03.320984734 +0200
+@@ -171,16 +171,16 @@
+     if (flag4->answer) {
+       costmode = 1;
+-      G_message(_
++      G_message("%s", _
+                 ("Directional drain selected... checking for direction raster"));
+     }
+     else {
+-      G_message(_("Surface/Hydrology drain selected"));
++      G_message("%s", _("Surface/Hydrology drain selected"));
+     }
+     if (costmode == 1) {
+       if (!opt3->answer) {
+-          G_fatal_error(_
++          G_fatal_error("%s", _
+                         ("Direction raster not specified, if direction flag is on, a direction raster must be given"));
+       }
+       strcpy(dir_name, opt3->answer);
+@@ -201,7 +201,7 @@
+     }
+     if (opt4->answer) {
+-      G_message(_("Outputting a vector path"));
++      G_message("%s", _("Outputting a vector path"));
+       if (G_legal_filename(opt4->answer) < 0)
+           G_fatal_error(_("<%s> is an illegal file name"), opt4->answer);
+       /*G_ask_vector_new("",vect); */
+@@ -224,7 +224,7 @@
+     set_func_pointers(in_type);
+     if ((flag1->answer + flag2->answer + flag3->answer) > 1)
+-      G_fatal_error(_("Specify just one of the -c, -a and -n flags"));
++      G_fatal_error("%s", _("Specify just one of the -c, -a and -n flags"));
+     mode = 0;
+     if (flag1->answer)
+@@ -247,7 +247,7 @@
+     m = (struct metrics *)G_malloc(nrows * sizeof(struct metrics));
+     if (m == NULL)
+-      G_fatal_error(_("Metrics allocation"));
++      G_fatal_error("%s", _("Metrics allocation"));
+     npoints = 0;
+     if (coordopt->answer) {
+       for (i = 0; coordopt->answers[i] != NULL; i += 2) {
+@@ -266,7 +266,7 @@
+           points_col[npoints] = start_col;
+           npoints++;
+           if (npoints >= MAX_POINTS)
+-              G_fatal_error(_("Too many start points"));
++              G_fatal_error("%s", _("Too many start points"));
+           have_points = 1;
+       }
+     }
+@@ -287,7 +287,7 @@
+           fp = G_fopen_sites_old(vpointopt->answers[i], search_mapset);
+           if (0 != G_site_describe(fp, &dims, &cat, &strs, &dbls))
+-              G_fatal_error(_("Failed to guess site file format"));
++              G_fatal_error("%s", _("Failed to guess site file format"));
+           site = G_site_new_struct(cat, dims, strs, dbls);
+@@ -307,7 +307,7 @@
+               points_col[npoints] = start_col;
+               npoints++;
+               if (npoints >= MAX_POINTS)
+-                  G_fatal_error(_("Too many start points"));
++                  G_fatal_error("%s", _("Too many start points"));
+               have_points = 1;
+           }
+@@ -319,7 +319,7 @@
+       }
+     }
+     if (have_points == 0)
+-      G_fatal_error(_("No start/stop point(s) specified"));
++      G_fatal_error("%s", _("No start/stop point(s) specified"));
+     /* determine the drainage paths */
+@@ -394,7 +394,7 @@
+     /* only necessary for non-dir drain */
+     if (costmode == 0) {
+-      G_verbose_message(_("Calculating flow directions..."));
++      G_verbose_message("%s", _("Calculating flow directions..."));
+       /* fill one-cell pits and take a first stab at flow directions */
+       filldir(fe, fd, nrows, &bnd, m);
+--- grass-6.4.3/raster/r.external/main.c.orig  2012-07-07 11:52:03.000000000 +0200
++++ grass-6.4.3/raster/r.external/main.c       2014-05-23 20:19:20.650983122 +0200
+@@ -51,7 +51,7 @@
+     /* -------------------------------------------------------------------- */
+     int iDr;
+-    fprintf(stdout, _("Supported Formats:\n"));
++    fputs(_("Supported Formats:\n"), stdout);
+     for (iDr = 0; iDr < GDALGetDriverCount(); iDr++) {
+       GDALDriverH hDriver = GDALGetDriver(iDr);
+       const char *pszRWFlag;
+@@ -80,7 +80,7 @@
+     /* Projection only required for checking so convert non-interactively */
+     if (GPJ_wkt_to_grass(cellhd, &proj_info,
+                        &proj_units, GDALGetProjectionRef(hDS), 0) < 0)
+-      G_warning(_("Unable to convert input raster map projection information to "
++      G_warning("%s", _("Unable to convert input raster map projection information to "
+                   "GRASS format for checking"));
+     else {
+       /* -------------------------------------------------------------------- */
+@@ -96,7 +96,7 @@
+       if (override) {
+           cellhd->proj = loc_wind.proj;
+           cellhd->zone = loc_wind.zone;
+-          G_warning(_("Over-riding projection check"));
++          G_warning("%s", _("Over-riding projection check"));
+       }
+       else if (loc_wind.proj != cellhd->proj ||
+                (projcomp_error = G_compare_projections(
+@@ -174,10 +174,10 @@
+           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 "
++          G_message("%s", _("Projection of input dataset and current location "
+                       "appear to match"));
+       }
+     }
+@@ -199,7 +199,7 @@
+     if (GDALGetGeoTransform(hDS, adfGeoTransform) == CE_None &&
+       adfGeoTransform[5] < 0.0) {
+       if (adfGeoTransform[2] != 0.0 || adfGeoTransform[4] != 0.0)
+-          G_fatal_error(_("Input raster map is rotated - cannot import. "
++          G_fatal_error("%s", _("Input raster map is rotated - cannot import. "
+                           "You may use 'gdalwarp' to transform the map to North-up."));
+       cellhd->north = adfGeoTransform[3];
+@@ -261,10 +261,10 @@
+     if (strcmp(G_mapset(), "PERMANENT") == 0) {
+       G__put_window(&cur_wind, "", "DEFAULT_WIND");
+-      G_message(_("Default region for this location updated")); 
++      G_message("%s", _("Default region for this location updated")); 
+     }
+     G_put_window(&cur_wind);
+-    G_message(_("Region for the current mapset updated"));
++    G_message("%s", _("Region for the current mapset updated"));
+ }
+ static void query_band(GDALRasterBandH hBand, const char *output, int exact_range,
+@@ -307,7 +307,7 @@
+       break;
+     default:
+-      G_fatal_error(_("Complex types not supported"));
++      G_fatal_error("%s", _("Complex types not supported"));
+       break;
+     }
+@@ -447,7 +447,7 @@
+     G_quant_round(&quant);
+     if (G_write_quant(output, G_mapset(), &quant) < 0)
+-      G_warning(_("Unable to write quant file"));
++      G_warning("%s", _("Unable to write quant file"));
+ }
+ static void create_map(const char *input, int band, const char *output,
+@@ -592,13 +592,13 @@
+       title = NULL;
+     if (!input && !source)
+-      G_fatal_error(_("Name for input source not specified"));
++      G_fatal_error("%s", _("Name for input source not specified"));
+     if (input && source)
+-      G_fatal_error(_("input= and source= are mutually exclusive"));
++      G_fatal_error("%s", _("input= and source= are mutually exclusive"));
+     if (!output)
+-      G_fatal_error(_("Name for output raster map not specified"));
++      G_fatal_error("%s", _("Name for output raster map not specified"));
+     if (input && !G_is_absolute_path(input)) {
+       char path[GPATH_MAX];
+@@ -620,14 +620,14 @@
+     check_projection(&cellhd, hDS, flag_o->answer);
+     if (G_set_window(&cellhd) < 0)
+-        G_fatal_error(_("Unable to set window"));
++        G_fatal_error("%s", _("Unable to set window"));
+     if (parm.band->answer)
+       min_band = max_band = atoi(parm.band->answer);
+     else
+       min_band = 1, max_band = GDALGetRasterCount(hDS);
+-    G_verbose_message(_("Proceeding with import..."));
++    G_verbose_message("%s", _("Proceeding with import..."));
+     if (max_band > min_band) {
+       if (I_find_group(output) == 1)
+--- grass-6.4.3/raster/r.fill.dir/main.c.orig  2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/raster/r.fill.dir/main.c       2014-05-23 20:19:51.664315809 +0200
+@@ -209,7 +209,7 @@
+     fd = open(tempfile2, O_RDWR | O_CREAT, 0666);     /* dirn */
+     fm = open(tempfile3, O_RDWR | O_CREAT, 0666);     /* problems */
+-    G_message(_("Reading map..."));
++    G_message("%s", _("Reading map..."));
+     for (i = 0; i < nrows; i++) {
+       get_row(map_id, in_buf, i);
+       write(fe, in_buf, bnd.sz);
+@@ -217,11 +217,11 @@
+     G_close_cell(map_id);
+     /* fill single-cell holes and take a first stab at flow directions */
+-    G_message(_("Filling sinks..."));
++    G_message("%s", _("Filling sinks..."));
+     filldir(fe, fd, nrows, &bnd);
+     /* determine flow directions for ambiguous cases */
+-    G_message(_("Determining flow directions for ambiguous cases..."));
++    G_message("%s", _("Determining flow directions for ambiguous cases..."));
+     resolve(fd, nrows, &bndC);
+     /* mark and count the sinks in each internally drained basin */
+@@ -234,7 +234,7 @@
+       ppupdate(fe, fm, nrows, nbasins, &bnd, &bndC);
+       /* repeat the first three steps to get the final directions */
+-      G_message(_("Repeat to get the final directions..."));
++      G_message("%s", _("Repeat to get the final directions..."));
+       filldir(fe, fd, nrows, &bnd);
+       resolve(fd, nrows, &bndC);
+       nbasins = dopolys(fd, fm, nrows, ncols);
+--- grass-6.4.3/raster/r.flow/mem.h.orig       2008-11-25 02:30:43.000000000 +0100
++++ grass-6.4.3/raster/r.flow/mem.h    2014-05-23 20:24:56.324309459 +0200
+@@ -37,7 +37,7 @@
+                  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...
+@@ -56,7 +56,7 @@
+       (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)) : \
++         G_fatal_error("%s", string)) : \
+         v) : \
+       (parm.mem ? \
+          aspect_fly(el.buf[row - 1] + col, \
+@@ -68,7 +68,7 @@
+     (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)) : \
++         G_fatal_error("%s", string)) : \
+        v) : \
+       l.buf[row][col])
+@@ -77,6 +77,6 @@
+       (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)) : \
++         G_fatal_error("%s", string)) : \
+        0) : \
+       (l.buf[row][col] = w))
+--- grass-6.4.3/raster/r.flow/calc.c.orig      2011-08-20 11:52:10.000000000 +0200
++++ grass-6.4.3/raster/r.flow/calc.c   2014-05-23 20:25:41.707641846 +0200
+@@ -300,7 +300,7 @@
+     struct line_cats *cats = Vect_new_cats_struct();
+     int loopstep = (!parm.dsout && !parm.lgout && parm.flout) ? parm.skip : 1;
+-    G_message(_("Calculating maps ..."));
++    G_message("%s", _("Calculating maps ..."));
+     fls.px = (double *)G_calloc(parm.bound, sizeof(double));
+     fls.py = (double *)G_calloc(parm.bound, sizeof(double));
+@@ -405,7 +405,7 @@
+     G_gisinit(argv[0]);
+     if (G_get_set_window(&region) == -1)
+-      G_fatal_error(_("Unable to get current region"));
++      G_fatal_error("%s", _("Unable to get current region"));
+     module = G_define_module();
+     module->keywords = _("raster, hydrology");
+@@ -530,7 +530,7 @@
+     parm.mem = fmem->answer;
+     if (!pflout->answer && !plgout->answer && !pdsout->answer)
+-      G_fatal_error(_("You must select one or more output maps (flout, lgout, dsout)"));
++      G_fatal_error("%s", _("You must select one or more output maps (flout, lgout, dsout)"));
+     if (parm.seg)
+       parm.mem = '\0';
+@@ -546,7 +546,7 @@
+     ds.row_offset = ds.col_offset = 0;
+     if ((G_projection() == PROJECTION_LL))    /* added MN 2005 */
+-      G_fatal_error(_("lat/long projection not supported by "
++      G_fatal_error("%s", _("lat/long projection not supported by "
+                       "r.flow. Please use 'r.watershed' for calculating "
+                       "flow accumulation."));
+--- grass-6.4.3/raster/r.flow/io.c.orig        2011-08-20 11:52:10.000000000 +0200
++++ grass-6.4.3/raster/r.flow/io.c     2014-06-04 16:00:16.203030299 +0200
+@@ -82,11 +82,11 @@
+     int fd, row, col;
+     struct Cell_head hd;
+-    G_message(_("Reading input files: elevation"));
++    G_message("%s", _("Reading input files: elevation"));
+     fd = open_existing_cell_file(parm.elevin, &hd);
+     if (!compare_regions(&region, &hd))
+-      G_fatal_error(_("Elevation file's resolution differs from current region resolution"));
++      G_fatal_error("%s", _("Elevation file's resolution differs from current region resolution"));
+     for (row = 0; row < region.rows; row++) {
+       G_get_d_raster_row(fd, el.buf[row], row);
+@@ -98,10 +98,10 @@
+     G_close_cell(fd);
+     if (parm.aspin) {
+-      G_message(_("Reading input files: aspect"));
++      G_message("%s", _("Reading input files: aspect"));
+       fd = open_existing_cell_file(parm.aspin, &hd);
+       if (!compare_regions(&region, &hd))
+-          G_fatal_error(_("Resolution of aspect file differs from "
++          G_fatal_error("%s", _("Resolution of aspect file differs from "
+                           "current region resolution"));
+       for (row = 0; row < region.rows; row++) {
+@@ -115,7 +115,7 @@
+     }
+     if (parm.barin) {
+-      G_message(_("Reading input files: barrier"));
++      G_message("%s", _("Reading input files: barrier"));
+       barc = G_allocate_d_raster_buf();
+       fd = open_existing_cell_file(parm.barin, &hd);
+@@ -200,9 +200,9 @@
+     struct Colors colors;
+     if (G_set_window(&region) < 0)
+-      G_fatal_error(_("Cannot reset current region"));
++      G_fatal_error("%s", _("Cannot reset current region"));
+-    G_message(_("Writing density file"));
++    G_message("%s", _("Writing density file"));
+     dsfd = G_open_raster_new(parm.dsout, DCELL_TYPE);
+     if (dsfd < 0)
+       G_fatal_error(_("Unable to create raster map <%s>"), parm.dsout);
+--- grass-6.4.3/raster/r.flow/precomp.c.orig   2011-08-20 11:52:10.000000000 +0200
++++ grass-6.4.3/raster/r.flow/precomp.c        2014-06-05 21:46:21.940796630 +0200
+@@ -44,26 +44,26 @@
+ void precompute(void)
+ {
+-    G_message(_("Precomputing: e/w distances"));
++    G_message("%s", _("Precomputing: e/w distances"));
+     precompute_ew_dists();
+-    G_message(_("Precomputing: quantization tolerances"));
++    G_message("%s", _("Precomputing: quantization tolerances"));
+     precompute_epsilons();
+     if (parm.up) {
+-      G_message(_("Precomputing: inverted elevations"));
++      G_message("%s", _("Precomputing: inverted elevations"));
+       upslope_correction();
+     }
+     if (!parm.aspin) {
+-      G_message(_("Precomputing: interpolated border elevations"));
++      G_message("%s", _("Precomputing: interpolated border elevations"));
+       interpolate_border();
+     }
+     if (!parm.mem) {
+       if (parm.aspin) {
+-          G_message(_("Precomputing: re-oriented aspects"));
++          G_message("%s", _("Precomputing: re-oriented aspects"));
+           reflect_and_sentinel();
+       }
+       else {
+-          G_message(_("Precomputing: aspects"));
++          G_message("%s", _("Precomputing: aspects"));
+           precompute_aspects();
+       }
+     }
+--- grass-6.4.3/raster/r.grow.distance/main.c.orig     2012-09-08 11:52:08.000000000 +0200
++++ grass-6.4.3/raster/r.grow.distance/main.c  2014-05-23 20:26:16.394307790 +0200
+@@ -181,7 +181,7 @@
+     val_name = opt.val->answer;
+     if (!dist_name && !val_name)
+-      G_fatal_error(_("At least one of distance= and value= must be given"));
++      G_fatal_error("%s", _("At least one of distance= and value= must be given"));
+     G_get_window(&window);
+@@ -196,7 +196,7 @@
+     else if (strcmp(opt.met->answer, "geodesic") == 0) {
+       double a, e2;
+       if (window.proj != PROJECTION_LL)
+-          G_fatal_error(_("metric=geodesic is only valid for lat/lon"));
++          G_fatal_error("%s", _("metric=geodesic is only valid for lat/lon"));
+       distance = NULL;
+       G_get_ellipsoid_parameters(&a, &e2);
+       G_begin_geodesic_distance(a, e2);
+--- grass-6.4.3/raster/r.gwflow/main.c.orig    2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/raster/r.gwflow/main.c 2014-05-23 20:27:03.010973485 +0200
+@@ -213,7 +213,7 @@
+     }
+     else {
+       G_fatal_error
+-          (_("Please provide river_head, river_leak and river_bed maps"));
++          ("%s", _("Please provide river_head, river_leak and river_bed maps"));
+     }
+     /*Check the drainage parameters */
+@@ -225,7 +225,7 @@
+       with_drain = 1;
+     }
+     else {
+-      G_fatal_error(_("Please provide drain_head and drain_leak maps"));
++      G_fatal_error("%s", _("Please provide drain_head and drain_leak maps"));
+     }
+     /*Set the maximum iterations */
+@@ -237,11 +237,11 @@
+     solver = param.solver->answer;
+     if (strcmp(solver, N_SOLVER_DIRECT_LU) == 0 && param.sparse->answer)
+-      G_fatal_error(_("The direct LU solver do not work with sparse matrices"));
++      G_fatal_error("%s", _("The direct LU solver do not work with sparse matrices"));
+     if (strcmp(solver, N_SOLVER_DIRECT_GAUSS) == 0 && param.sparse->answer)
+-      G_fatal_error(_("The direct Gauss solver do not work with sparse matrices"));
++      G_fatal_error("%s", _("The direct Gauss solver do not work with sparse matrices"));
+     if (strcmp(solver, N_SOLVER_DIRECT_CHOLESKY) == 0 && param.sparse->answer)
+-      G_fatal_error(_("The direct cholesky solver do not work with sparse matrices"));
++      G_fatal_error("%s", _("The direct cholesky solver do not work with sparse matrices"));
+     /*get the current region */
+     G_get_set_window(&region);
+@@ -347,7 +347,7 @@
+     if (data->gwtype == N_GW_UNCONFINED) {
+       /* allocate memory and copy the result into a new temporal vector */
+       if (!(tmp_vect = (double *)calloc(les->rows, sizeof(double))))
+-          G_fatal_error(_("Out of memory"));
++          G_fatal_error("%s", _("Out of memory"));
+       /*copy data */
+       for (i = 0; i < les->rows; i++)
+@@ -526,7 +526,7 @@
+       N_solver_gauss(les);
+     if (les == NULL)
+-      G_fatal_error(_("Unable to create and solve the linear equation system"));
++      G_fatal_error("%s", _("Unable to create and solve the linear equation system"));
+     return les;
+ }
+--- grass-6.4.3/raster/r.horizon/main.c.orig   2011-08-20 11:52:09.000000000 +0200
++++ grass-6.4.3/raster/r.horizon/main.c        2014-05-23 20:30:48.087635461 +0200
+@@ -358,13 +358,13 @@
+     if (isMode(WHOLE_RASTER)) {
+       if ((parm.direction->answer == NULL) && (parm.step->answer == NULL)) {
+           G_fatal_error
+-              (_("You didn't specify a direction value or step size. Aborting."));
++              ("%s", _("You didn't specify a direction value or step size. Aborting."));
+       }
+       if (parm.horizon->answer == NULL) {
+           G_fatal_error
+-              (_("You didn't specify a horizon raster name. Aborting."));
++              ("%s", _("You didn't specify a horizon raster name. Aborting."));
+       }
+       horizon = parm.horizon->answer;
+@@ -375,7 +375,7 @@
+       if (parm.step->answer == NULL) {
+           G_fatal_error
+-              (_("You didn't specify an angle step size. Aborting."));
++              ("%s", _("You didn't specify an angle step size. Aborting."));
+       }
+       sscanf(parm.step->answer, "%lf", &step);
+@@ -389,26 +389,26 @@
+     if (parm.bufferzone->answer != NULL) {
+       if (sscanf(parm.bufferzone->answer, "%lf", &bufferZone) != 1) {
+-          G_fatal_error(_("Could not read bufferzone size. Aborting."));
++          G_fatal_error("%s", _("Could not read bufferzone size. Aborting."));
+       }
+     }
+     if (parm.e_buff->answer != NULL) {
+       if (sscanf(parm.e_buff->answer, "%lf", &ebufferZone) != 1) {
+-          G_fatal_error(_("Could not read east bufferzone size. Aborting."));
++          G_fatal_error("%s", _("Could not read east bufferzone size. Aborting."));
+       }
+     }
+     if (parm.w_buff->answer != NULL) {
+       if (sscanf(parm.w_buff->answer, "%lf", &wbufferZone) != 1) {
+-          G_fatal_error(_("Could not read west bufferzone size. Aborting."));
++          G_fatal_error("%s", _("Could not read west bufferzone size. Aborting."));
+       }
+     }
+     if (parm.s_buff->answer != NULL) {
+       if (sscanf(parm.s_buff->answer, "%lf", &sbufferZone) != 1) {
+           G_fatal_error
+-              (_("Could not read south bufferzone size. Aborting."));
++              ("%s", _("Could not read south bufferzone size. Aborting."));
+       }
+     }
+@@ -417,13 +417,13 @@
+     if (parm.n_buff->answer != NULL) {
+       if (sscanf(parm.n_buff->answer, "%lf", &nbufferZone) != 1) {
+           G_fatal_error
+-              (_("Could not read north bufferzone size. Aborting."));
++              ("%s", _("Could not read north bufferzone size. Aborting."));
+       }
+     }
+     if (parm.maxdistance->answer != NULL) {
+       if (sscanf(parm.maxdistance->answer, "%lf", &fixedMaxLength) != 1) {
+-          G_fatal_error(_("Could not read maximum distance. Aborting."));
++          G_fatal_error("%s", _("Could not read maximum distance. Aborting."));
+       }
+     }
+@@ -476,14 +476,14 @@
+     if ((in_proj_info = G_get_projinfo()) == NULL)
+       G_fatal_error
+-          (_("Can't get projection info of current location: please set latitude via 'lat' or 'latin' option!"));
++          ("%s", _("Can't get projection info of current location: please set latitude via 'lat' or 'latin' option!"));
+     if ((in_unit_info = G_get_projunits()) == NULL)
+-      G_fatal_error(_("Can't get projection units of current location"));
++      G_fatal_error("%s", _("Can't get projection units of current location"));
+     if (pj_get_kv(&iproj, in_proj_info, in_unit_info) < 0)
+       G_fatal_error
+-          (_("Can't get projection key values of current location"));
++          ("%s", _("Can't get projection key values of current location"));
+     G_free_key_value(in_proj_info);
+     G_free_key_value(in_unit_info);
+@@ -493,7 +493,7 @@
+     oproj.meters = 1.;
+     sprintf(oproj.proj, "ll");
+     if ((oproj.pj = pj_latlong_from_proj(iproj.pj)) == NULL)
+-      G_fatal_error(_("Unable to set up lat/long projection parameters"));
++      G_fatal_error("%s", _("Unable to set up lat/long projection parameters"));
+ /**********end of parser - ******************************/
+@@ -812,7 +812,7 @@
+           latitude = yp;
+           if (pj_do_proj(&longitude, &latitude, &iproj, &oproj) < 0) {
+-              G_fatal_error(_("Error in pj_do_proj"));
++              G_fatal_error("%s", _("Error in pj_do_proj"));
+           }
+       }
+       else {                  /* ll projection */
+@@ -830,7 +830,7 @@
+       longitude = (longitude + delt_lon) * rad2deg;
+       if (pj_do_proj(&longitude, &latitude, &oproj, &iproj) < 0) {
+-          G_fatal_error(_("Error in pj_do_proj"));
++          G_fatal_error("%s", _("Error in pj_do_proj"));
+       }
+       delt_east = longitude - xp;
+--- grass-6.4.3/raster/r.his/main.c.orig       2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/raster/r.his/main.c    2014-05-23 20:31:15.954301547 +0200
+@@ -240,15 +240,15 @@
+       if (G_get_raster_row_colors
+           (hue_file, atrow, &hue_colors, hue_r, hue_g, hue_b, hue_n) < 0)
+-          G_fatal_error(_("Error reading 'hue' map"));
++          G_fatal_error("%s", _("Error reading 'hue' map"));
+       if (int_used &&
+           (G_get_raster_row_colors
+            (int_file, atrow, &int_colors, int_r, dummy, dummy, int_n) < 0))
+-          G_fatal_error(_("Error reading 'intensity' map"));
++          G_fatal_error("%s", _("Error reading 'intensity' map"));
+       if (sat_used &&
+           (G_get_raster_row_colors
+            (sat_file, atrow, &sat_colors, sat_r, dummy, dummy, sat_n) < 0))
+-          G_fatal_error(_("Error reading 'saturation' map"));
++          G_fatal_error("%s", _("Error reading 'saturation' map"));
+       for (atcol = 0; atcol < window.cols; atcol++) {
+           if (nulldraw->answer) {
+--- grass-6.4.3/raster/r.in.arc/gethead.c.orig 2008-11-25 02:30:50.000000000 +0100
++++ grass-6.4.3/raster/r.in.arc/gethead.c      2014-05-23 20:31:39.840967716 +0200
+@@ -85,8 +85,8 @@
+           continue;
+       }
+-      G_warning(_("Illegal line in header"));
+-      G_warning(buf);
++      G_warning("%s", _("Illegal line in header"));
++      G_warning("%s", buf);
+       missing(s, "yllcorner");
+       missing(w, "xllcorner");
+@@ -98,7 +98,7 @@
+     }
+     if (err = G_adjust_Cell_head(cellhd, 1, 1)) {
+-      G_warning(err);
++      G_warning("%s", err);
+       return 0;
+     }
+--- grass-6.4.3/raster/r.in.arc/main.c.orig    2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/raster/r.in.arc/main.c 2014-06-04 16:00:40.449696460 +0200
+@@ -124,12 +124,12 @@
+       G_fatal_error(_("Unable to open input file <%s>"), input);
+     if (!gethead(fd, &cellhd, &missingval))
+-      G_fatal_error(_("Can't get cell header"));
++      G_fatal_error("%s", _("Can't get cell header"));
+     nrows = cellhd.rows;
+     ncols = cellhd.cols;
+     if (G_set_window(&cellhd) < 0)
+-      G_fatal_error(_("Can't set window"));
++      G_fatal_error("%s", _("Can't set window"));
+     if (nrows != G_window_rows())
+       G_fatal_error(_("OOPS: rows changed from %d to %d"), nrows,
+@@ -225,7 +225,7 @@
+           return (0);
+       }
+       if (!fwrite(buf, 1, size, to)) {
+-          G_warning(_("Failed to copy file"));
++          G_warning("%s", _("Failed to copy file"));
+           return (-1);
+       }
+       written = 1;
+--- grass-6.4.3/raster/r.in.ascii/gethead.c.orig       2008-11-25 02:30:38.000000000 +0100
++++ grass-6.4.3/raster/r.in.ascii/gethead.c    2014-05-23 20:32:45.684299677 +0200
+@@ -31,31 +31,31 @@
+     /* read and check the flag on the first line */
+     fgets(grd_flag, sizeof(grd_flag), fd);
+     if (strncmp(gs_ascii_flag, grd_flag, strlen(gs_ascii_flag))) {
+-      G_warning(_("input file is not a Surfer ascii grid file"));
++      G_warning("%s", _("input file is not a Surfer ascii grid file"));
+       return 0;
+     }
+     /* read the row and column dimensions */
+     if (fscanf(fd, "%d %d \n", &nc, &nr) != 2) {
+-      G_warning(_("error reading the column and row dimension from the Surfer grid file"));
++      G_warning("%s", _("error reading the column and row dimension from the Surfer grid file"));
+       return 0;
+     }
+     /* read the range of x values */
+     if (fscanf(fd, "%f %f \n", &xmin, &xmax) != 2) {
+-      G_warning(_("error reading the X range from the Surfer grid file"));
++      G_warning("%s", _("error reading the X range from the Surfer grid file"));
+       return 0;
+     }
+     /* read the range of y values */
+     if (fscanf(fd, "%f %f \n", &ymin, &ymax) != 2) {
+-      G_warning(_("error reading the Y range from the Surfer grid file"));
++      G_warning("%s", _("error reading the Y range from the Surfer grid file"));
+       return 0;
+     }
+     /* read the range of z values (not used) */
+     if (fscanf(fd, "%f %f \n", &zmin, &zmax) != 2) {
+-      G_warning(_("error reading the Z range from the Surfer grid file"));
++      G_warning("%s", _("error reading the Z range from the Surfer grid file"));
+       return 0;
+     }
+@@ -102,7 +102,7 @@
+     while (1) {
+       /* rsb fix */
+       if (fgetpos(fd, &p) != 0)
+-          G_fatal_error(_("error getting file position"));
++          G_fatal_error("%s", _("error getting file position"));
+       if (!G_getl2(buf, sizeof(buf), fd))
+           break;
+@@ -161,24 +161,24 @@
+               else if (!strncmp(value, DOUBLE, strlen(DOUBLE)))
+                   *d_type = DCELL_TYPE;
+               else {
+-                  G_warning(_("illegal type field: using type int"));
++                  G_warning("%s", _("illegal type field: using type int"));
+                   *d_type = CELL_TYPE;
+               }
+           }
+           else
+-              G_warning(_("ignoring type filed in header, type is set on command line"));
++              G_warning("%s", _("ignoring type filed in header, type is set on command line"));
+           continue;
+       }
+       if (strcmp(label, "multiplier") == 0) {
+           if (G_is_d_null_value(mult)) {      /* if mult not set on commant line */
+               if (sscanf(value, "%lf", mult) != 1) {
+-                  G_warning(_("illegal multiplier field: using 1.0"));
++                  G_warning("%s", _("illegal multiplier field: using 1.0"));
+                   *mult = 1.0;
+               }
+           }
+           else
+-              G_warning(_("ignoring multiplier filed in header, multiplier is set on command line"));
++              G_warning("%s", _("ignoring multiplier filed in header, multiplier is set on command line"));
+           continue;
+       }
+@@ -186,7 +186,7 @@
+           if (!(*nval))       /* if null val string not set on command line */
+               *nval = G_store(value);
+           else
+-              G_warning(_("ignoring null filed in header, null string is set on command line"));
++              G_warning("%s", _("ignoring null filed in header, null string is set on command line"));
+           continue;
+       }
+@@ -215,13 +215,13 @@
+       else if (ret == 1)
+           *d_type = CELL_TYPE;
+       else {
+-          G_warning(_("error in ascii data format"));
++          G_warning("%s", _("error in ascii data format"));
+           return 0;
+       }
+     }
+     if ((err = G_adjust_Cell_head(cellhd, 1, 1))) {
+-      G_warning(err);
++      G_warning("%s", err);
+       return 0;
+     }
+--- grass-6.4.3/raster/r.in.ascii/main.c.orig  2013-07-15 14:15:28.000000000 +0200
++++ grass-6.4.3/raster/r.in.ascii/main.c       2014-06-04 16:01:08.603029206 +0200
+@@ -155,7 +155,7 @@
+           G_fatal_error(_("Unable to open temporary file <%s>"), Tmp_file);
+       unlink(Tmp_file);
+       if (0 > file_cpy(stdin, Tmp_fd))
+-          G_fatal_error(_("Unable to read input from stdin"));
++          G_fatal_error("%s", _("Unable to read input from stdin"));
+       fd = Tmp_fd;
+     }
+     else
+@@ -182,12 +182,12 @@
+       sz = gethead(fd, &cellhd, &data_type, &mult, &null_val_str);
+     if (!sz)
+-      G_fatal_error(_("Can't get cell header"));
++      G_fatal_error("%s", _("Can't get cell header"));
+     nrows = cellhd.rows;
+     ncols = cellhd.cols;
+     if (G_set_window(&cellhd) < 0)
+-      G_fatal_error(_("Can't set window"));
++      G_fatal_error("%s", _("Can't set window"));
+     if (nrows != G_window_rows())
+       G_fatal_error(_("OOPS: rows changed from %d to %d"), nrows,
+@@ -282,7 +282,7 @@
+           return (0);
+       }
+       if (!fwrite(buf, 1, size, to)) {
+-          G_warning(_("Unable to write to file"));
++          G_warning("%s", _("Unable to write to file"));
+           return (-1);
+       }
+       written = 1;
+--- grass-6.4.3/raster/r.in.bin/main.c.orig    2011-04-16 11:52:08.000000000 +0200
++++ grass-6.4.3/raster/r.in.bin/main.c 2014-05-23 20:40:06.554290487 +0200
+@@ -46,7 +46,7 @@
+ static void read_int(FILE *fp, int swap_flag, int *x)
+ {
+     if (fread(x, 4, 1, fp) != 1)
+-      G_fatal_error(_("Error reading data"));
++      G_fatal_error("%s", _("Error reading data"));
+     if (swap_flag)
+       swap_4(x);
+@@ -55,7 +55,7 @@
+ static void read_double(FILE *fp, int swap_flag, double *x)
+ {
+     if (fread(x, 8, 1, fp) != 1)
+-      G_fatal_error(_("Error reading data"));
++      G_fatal_error("%s", _("Error reading data"));
+     if (swap_flag)
+       swap_8(x);
+@@ -363,7 +363,7 @@
+     if (flag.swap->answer) {
+       if (strcmp(parm.order->answer, "native") != 0)
+-          G_fatal_error(_("order= and -b are mutually exclusive"));
++          G_fatal_error("%s", _("order= and -b are mutually exclusive"));
+       order = G_is_little_endian() ? 0 : 1;
+     }
+@@ -378,7 +378,7 @@
+       bytes = atoi(parm.bytes->answer);
+     if (flag.float_in->answer && flag.double_in->answer)
+-      G_fatal_error(_("-f and -d are mutually exclusive"));
++      G_fatal_error("%s", _("-f and -d are mutually exclusive"));
+     if (flag.float_in->answer) {
+       if (bytes && bytes < 4)
+@@ -397,15 +397,15 @@
+     }
+     if (!is_fp && !bytes)
+-      G_fatal_error(_("bytes= required for integer data"));
++      G_fatal_error("%s", _("bytes= required for integer data"));
+ #ifndef HAVE_LONG_LONG_INT
+     if (!is_fp && bytes > 4)
+-      G_fatal_error(_("Integer input doesn't support size=8 in this build"));
++      G_fatal_error("%s", _("Integer input doesn't support size=8 in this build"));
+ #endif
+     if (bytes != 1 && bytes != 2 && bytes != 4 && bytes != 8)
+-      G_fatal_error(_("bytes= must be 1, 2, 4 or 8"));
++      G_fatal_error("%s", _("bytes= must be 1, 2, 4 or 8"));
+     if (parm.null->answer)
+       null_val = atof(parm.null->answer);
+@@ -418,12 +418,12 @@
+       int num_bounds;
+       if (!parm.rows->answer || !parm.cols->answer)
+-          G_fatal_error(_("Either -h or rows= and cols= must be given"));
++          G_fatal_error("%s", _("Either -h or rows= and cols= must be given"));
+       num_bounds = !!parm.north->answer + !!parm.south->answer +
+           !!parm.east->answer + !!parm.west->answer;
+       if (num_bounds != 0 && num_bounds != 4)
+-          G_fatal_error(_("Either all or none of north=, south=, east= and west= must be given"));
++          G_fatal_error("%s", _("Either all or none of north=, south=, east= and west= must be given"));
+       cellhd.rows = atoi(parm.rows->answer);
+       cellhd.cols = atoi(parm.cols->answer);
+@@ -486,7 +486,7 @@
+     if (file_size != expected) {
+       G_warning(_("File Size %"PRI_OFF_T" ... Total Bytes %"PRI_OFF_T),
+                 file_size, expected);
+-      G_fatal_error(_("Bytes do not match file size"));
++      G_fatal_error("%s", _("Bytes do not match file size"));
+     }
+     in_buf = G_malloc(ncols * bytes);
+@@ -507,7 +507,7 @@
+       G_percent(row, nrows, 2);
+       if (fread(in_buf, bytes, ncols, fp) != ncols)
+-          G_fatal_error(_("Error reading data"));
++          G_fatal_error("%s", _("Error reading data"));
+       convert_row(out_buf, in_buf, ncols, is_fp, is_signed,
+                   bytes, swap_flag, null_val);
+--- grass-6.4.3/raster/r.info/main.c.orig      2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/raster/r.info/main.c   2014-05-23 20:40:36.887623189 +0200
+@@ -139,7 +139,7 @@
+     }
+     if (G_read_fp_range(name, mapset, &range) < 0)
+-      G_fatal_error(_("Unable to read range file"));
++      G_fatal_error("%s", _("Unable to read range file"));
+     G_get_fp_range_min_max(&range, &zmin, &zmax);
+     out = stdout;
+@@ -304,7 +304,7 @@
+                   if (cat == 0)
+                       continue;
+                   if (G_asprintf(&num, "%5ld", (long)cat) < 1)
+-                      G_fatal_error(_("Cannot allocate memory for string"));
++                      G_fatal_error("%s", _("Cannot allocate memory for string"));
+                   next = 0;
+                   do {
+@@ -430,7 +430,7 @@
+     va_start(ap, fmt);
+     if (G_vasprintf(&line, fmt, ap) <= 0)
+-      G_fatal_error(_("Cannot allocate memory for string"));
++      G_fatal_error("%s", _("Cannot allocate memory for string"));
+     va_end(ap);
+--- grass-6.4.3/raster/r.in.gridatb/file_io.c.orig     2013-04-20 11:52:14.000000000 +0200
++++ grass-6.4.3/raster/r.in.gridatb/file_io.c  2014-05-23 20:41:06.887622563 +0200
+@@ -30,13 +30,13 @@
+       fclose(fp);
+       switch (retval) {
+       case 1:
+-          G_fatal_error(_("Setting window header failed"));
++          G_fatal_error("%s", _("Setting window header failed"));
+           break;
+       case 2:
+-          G_fatal_error(_("Rows changed"));
++          G_fatal_error("%s", _("Rows changed"));
+           break;
+       case 3:
+-          G_fatal_error(_("Cols changed"));
++          G_fatal_error("%s", _("Cols changed"));
+           break;
+       }
+     }
+--- grass-6.4.3/raster/r.in.mat/main.c.orig    2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.in.mat/main.c 2014-05-23 20:43:07.254286722 +0200
+@@ -122,7 +122,7 @@
+     /* remove for GRASS 7  */
+     if (verbose->answer) {
+       putenv("GRASS_VERBOSE=3");
+-      G_warning(_("The '-v' flag is superseded and will be removed "
++      G_warning("%s", _("The '-v' flag is superseded and will be removed "
+                   "in future. Please use '--verbose' instead."));
+     }
+@@ -165,7 +165,7 @@
+   /******  READ MAP  ****************************************************/
+-    G_verbose_message(_("Reading MAT-File..."));
++    G_verbose_message("%s", _("Reading MAT-File..."));
+     while (!feof(fp1)) {
+@@ -191,18 +191,18 @@
+       fread(&mrows, sizeof(int), 1, fp1);
+       fread(&ncols, sizeof(int), 1, fp1);
+       if (mrows < 1 || ncols < 1)
+-          G_fatal_error(_("Array contains no data"));
++          G_fatal_error("%s", _("Array contains no data"));
+       /* 4 byte real/imag flag   0=real vals only */
+       fread(&realflag, sizeof(int), 1, fp1);
+       if (realflag != 0)
+-          G_fatal_error(_("Array contains imaginary data"));
++          G_fatal_error("%s", _("Array contains imaginary data"));
+       /* length of array_name+1 */
+       fread(&name_len, sizeof(int), 1, fp1);
+       if (name_len < 1)
+-          G_fatal_error(_("Invalid array name"));
++          G_fatal_error("%s", _("Invalid array name"));
+       /* array name */
+       for (i = 0; i < 64; i++) {
+@@ -222,7 +222,7 @@
+       if (strcmp(array_name, "map_name") == 0) {
+           have_name = 1;
+           if (mrows != 1 || ncols > 64 || data_type != 1)
+-              G_fatal_error(_("Invalid 'map_name' array"));
++              G_fatal_error("%s", _("Invalid 'map_name' array"));
+           if (data_format == 5)
+               fread(&map_name, sizeof(char), ncols, fp1);
+@@ -232,7 +232,7 @@
+                   map_name[i] = (char)map_name_d[i];
+           }
+           else
+-              G_fatal_error(_("Error reading 'map_name' array"));
++              G_fatal_error("%s", _("Error reading 'map_name' array"));
+           map_name[ncols] = '\0';
+           G_strip(map_name);  /* remove leading and trailing whitespace */
+@@ -243,7 +243,7 @@
+           have_n = 1;
+           if (mrows != 1 || ncols != 1 || data_format != 0 ||
+               data_type != 0)
+-              G_fatal_error(_("Invalid 'map_northern_edge' array"));
++              G_fatal_error("%s", _("Invalid 'map_northern_edge' array"));
+           fread(&region.north, sizeof(double), 1, fp1);
+           G_debug(1, "northern edge=%f", region.north);
+       }
+@@ -252,7 +252,7 @@
+           have_s = 1;
+           if (mrows != 1 || ncols != 1 || data_format != 0 ||
+               data_type != 0)
+-              G_fatal_error(_("Invalid 'map_southern_edge' array"));
++              G_fatal_error("%s", _("Invalid 'map_southern_edge' array"));
+           fread(&region.south, sizeof(double), 1, fp1);
+           G_debug(1, "southern edge=%f", region.south);
+       }
+@@ -261,7 +261,7 @@
+           have_e = 1;
+           if (mrows != 1 || ncols != 1 || data_format != 0 ||
+               data_type != 0)
+-              G_fatal_error(_("Invalid 'map_eastern_edge' array"));
++              G_fatal_error("%s", _("Invalid 'map_eastern_edge' array"));
+           fread(&region.east, sizeof(double), 1, fp1);
+           G_debug(1, "eastern edge=%f", region.east);
+       }
+@@ -270,7 +270,7 @@
+           have_w = 1;
+           if (mrows != 1 || ncols != 1 || data_format != 0 ||
+               data_type != 0)
+-              G_fatal_error(_("Invalid 'map_western_edge' array"));
++              G_fatal_error("%s", _("Invalid 'map_western_edge' array"));
+           fread(&region.west, sizeof(double), 1, fp1);
+           G_debug(1, "western edge=%f", region.west);
+       }
+@@ -278,7 +278,7 @@
+       else if (strcmp(array_name, "map_title") == 0) {
+           have_title = 1;
+           if (mrows != 1 || ncols > 1023 || data_type != 1)
+-              G_fatal_error(_("Invalid 'map_title' array"));
++              G_fatal_error("%s", _("Invalid 'map_title' array"));
+           if (data_format == 5)
+               fread(&map_title, sizeof(char), ncols, fp1);
+@@ -288,7 +288,7 @@
+                   map_title[i] = (char)map_name_d[i];
+           }
+           else
+-              G_fatal_error(_("Error reading 'map_title' array"));
++              G_fatal_error("%s", _("Error reading 'map_title' array"));
+           map_title[ncols] = '\0';
+           G_strip(map_title); /* remove leading and trailing whitespace */
+@@ -301,7 +301,7 @@
+           region.cols = (int)ncols;
+           if (mrows < 1 || ncols < 1 || data_format > 2 || data_type != 0)
+-              G_fatal_error(_("Invalid 'map_data' array"));
++              G_fatal_error("%s", _("Invalid 'map_data' array"));
+           switch (data_format) {
+               /*   0=double       1=float   2=32bit signed int   5=8bit unsigned int(text)   */
+@@ -327,7 +327,7 @@
+               fread(array_data, sizeof(int), mrows * ncols, fp1);
+               break;
+           default:
+-              G_fatal_error(_("Please contact the GRASS development team"));
++              G_fatal_error("%s", _("Please contact the GRASS development team"));
+           }
+       }                       /* endif map_data */
+@@ -378,7 +378,7 @@
+           strncpy(map_name, outfile, 61);
+       }
+       else {
+-          G_message(_("No 'map_name' array found; using <MatFile>"));
++          G_message("%s", _("No 'map_name' array found; using <MatFile>"));
+           strcpy(map_name, "MatFile");
+       }
+     }
+@@ -391,11 +391,11 @@
+     /* set region info */
+     if (G_projection() != PROJECTION_XY) {
+       if ((0 == have_n) || (0 == have_s) || (0 == have_e) || (0 == have_w))
+-          G_fatal_error(_("Missing bound"));
++          G_fatal_error("%s", _("Missing bound"));
+     }
+     else {
+       if ((0 == have_n) || (0 == have_s) || (0 == have_e) || (0 == have_w)) {
+-          G_warning(_("Using default bounds"));
++          G_warning("%s", _("Using default bounds"));
+           region.north = (double)region.rows;
+           region.south = 0.;
+           region.east = (double)region.cols;
+@@ -407,7 +407,7 @@
+     region.zone = G_zone();
+     buff = G_adjust_Cell_head(&region, 1, 1);
+     if (buff)
+-      G_fatal_error(buff);
++      G_fatal_error("%s", buff);
+     G_set_window(&region);
+     G_verbose_message("");
+@@ -430,7 +430,7 @@
+       G_fatal_error(_("Unable to create raster map <%s>"), outfile);
+     /* write new raster map */
+-    G_verbose_message(_("Writing new raster map..."));
++    G_verbose_message("%s", _("Writing new raster map..."));
+     mrows = region.rows;
+     ncols = region.cols;
+@@ -465,7 +465,7 @@
+                   break;
+               default:
+                   G_close_cell(cf);
+-                  G_fatal_error(_("Please contact the GRASS development team"));
++                  G_fatal_error("%s", _("Please contact the GRASS development team"));
+               }
+           }
+           rastline_ptr =
+@@ -547,7 +547,7 @@
+           return 1;
+       break;
+     default:
+-      G_fatal_error(_("Please contact the GRASS development team"));
++      G_fatal_error("%s", _("Please contact the GRASS development team"));
+     }
+     /* otherwise */
+--- grass-6.4.3/raster/r.in.poly/main.c.orig   2010-09-25 11:52:07.000000000 +0200
++++ grass-6.4.3/raster/r.in.poly/main.c        2014-05-23 20:46:59.264281885 +0200
+@@ -56,7 +56,7 @@
+     sscanf(rows->answer, "%d", &n);
+     if (n < 1)
+-      G_fatal_error(_("Minimum number of rows to hold in memory is 1"));
++      G_fatal_error("%s", _("Minimum number of rows to hold in memory is 1"));
+     exit(poly_to_rast(input->answer, output->answer, title->answer, n));
+ }
+--- grass-6.4.3/raster/r.in.poly/poly2rast.c.orig      2010-09-25 11:52:07.000000000 +0200
++++ grass-6.4.3/raster/r.in.poly/poly2rast.c   2014-06-04 16:01:25.123028862 +0200
+@@ -75,7 +75,7 @@
+           }
+       }
+-      G_message(_("Writing raster map..."));
++      G_message("%s", _("Writing raster map..."));
+       stat = output_raster(rfd);
+     } while (stat == 0);
+--- grass-6.4.3/raster/r.in.xyz/main.c.orig    2010-01-02 11:54:05.000000000 +0100
++++ grass-6.4.3/raster/r.in.xyz/main.c 2014-05-23 21:59:50.147524115 +0200
+@@ -288,7 +288,7 @@
+     ycol = atoi(ycol_opt->answer);
+     zcol = atoi(zcol_opt->answer);
+     if ((xcol < 0) || (ycol < 0) || (zcol < 0))
+-      G_fatal_error(_("Please specify a reasonable column number."));
++      G_fatal_error("%s", _("Please specify a reasonable column number."));
+     max_col = (xcol > ycol) ? xcol : ycol;
+     max_col = (zcol > max_col) ? zcol : max_col;
+@@ -299,7 +299,7 @@
+     do_zfilter = FALSE;
+     if (zrange_opt->answer != NULL) {
+       if (zrange_opt->answers[0] == NULL)
+-          G_fatal_error(_("Invalid zrange"));
++          G_fatal_error("%s", _("Invalid zrange"));
+       sscanf(zrange_opt->answers[0], "%lf", &zrange_min);
+       sscanf(zrange_opt->answers[1], "%lf", &zrange_max);
+@@ -386,7 +386,7 @@
+       if (pth_opt->answer != NULL)
+           pth = atoi(pth_opt->answer);
+       else
+-          G_fatal_error(_("Unable to calculate percentile without the pth option specified!"));
++          G_fatal_error("%s", _("Unable to calculate percentile without the pth option specified!"));
+       method = METHOD_PERCENTILE;
+       bin_index = TRUE;
+     }
+@@ -398,7 +398,7 @@
+       if (trim_opt->answer != NULL)
+           trim = atof(trim_opt->answer) / 100.0;
+       else
+-          G_fatal_error(_("Unable to calculate trimmed mean without the trim option specified!"));
++          G_fatal_error("%s", _("Unable to calculate trimmed mean without the trim option specified!"));
+       method = METHOD_TRIMMEAN;
+       bin_index = TRUE;
+     }
+@@ -474,13 +474,13 @@
+     /* can't rewind() non-files */
+     if (!can_seek && npasses != 1) {
+-      G_warning(_("If input is not from a file it is only possible to perform a single pass."));
++      G_warning("%s", _("If input is not from a file it is only possible to perform a single pass."));
+       npasses = 1;
+     }
+     if (scan_flag->answer) {
+       if (zrange_opt->answer)
+-          G_warning(_("zrange will not be taken into account during scan"));
++          G_warning("%s", _("zrange will not be taken into account during scan"));
+       scan_bounds(in_fp, xcol, ycol, zcol, fs, shell_style->answer,
+                   skipline->answer, zscale);
+@@ -518,7 +518,7 @@
+     /* allocate memory for a single row of output data */
+     raster_row = G_allocate_raster_buf(rtype);
+-    G_message(_("Reading data ..."));
++    G_message("%s", _("Reading data ..."));
+     count_total = 0;
+@@ -600,7 +600,7 @@
+                               "Incorrect delimiter or column number? "
+                               "Found the following character(s) in row %lu:\n[%s]"),
+                             line, buff);
+-                  G_warning(_("Line ignored as requested"));
++                  G_warning("%s", _("Line ignored as requested"));
+                   continue;   /* line is garbage */
+               }
+               else {
+@@ -715,7 +715,7 @@
+       /* calc stats and output */
+-      G_message(_("Writing to map ..."));
++      G_message("%s", _("Writing to map ..."));
+       for (row = 0; row < rows; row++) {
+           switch (method) {
+@@ -1058,8 +1058,7 @@
+     G_write_history(outmap, &history);
+-    sprintf(buff, _("%lu points found in region."), count_total);
+-    G_done_msg(buff);
++    G_done_msg(_("%lu points found in region."), count_total);
+     G_debug(1, "Processed %lu lines.", line);
+     exit(EXIT_SUCCESS);
+@@ -1085,7 +1084,7 @@
+     line = 0;
+     first = TRUE;
+-    G_verbose_message(_("Scanning data ..."));
++    G_verbose_message("%s", _("Scanning data ..."));
+     while (0 != G_getl2(buff, BUFFSIZE - 1, fp)) {
+       line++;
+@@ -1104,7 +1103,7 @@
+                           "Incorrect delimiter or column number? "
+                           "Found the following character(s) in row %lu:\n[%s]"),
+                         line, buff);
+-              G_warning(_("Line ignored as requested"));
++              G_warning("%s", _("Line ignored as requested"));
+               continue;       /* line is garbage */
+           }
+           else {
+@@ -1173,7 +1172,7 @@
+     }
+     if (!shell_style) {
+-      fprintf(stderr, _("Range:     min         max\n"));
++      fputs(_("Range:     min         max\n"), stderr);
+       fprintf(stdout, "x: %11f %11f\n", min_x, max_x);
+       fprintf(stdout, "y: %11f %11f\n", min_y, max_y);
+       fprintf(stdout, "z: %11f %11f\n", min_z * zscale, max_z * zscale);
+--- grass-6.4.3/raster/r.kappa/main.c.orig     2013-07-09 21:08:10.000000000 +0200
++++ grass-6.4.3/raster/r.kappa/main.c  2014-05-23 22:01:10.330855777 +0200
+@@ -122,7 +122,7 @@
+     /* please, remove before GRASS 7 released */
+     if (flags.q->answer) {
+       G_putenv("GRASS_VERBOSE", "0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead"));
+     }
+--- grass-6.4.3/raster/r.kappa/stats.c.orig    2011-04-02 11:52:08.000000000 +0200
++++ grass-6.4.3/raster/r.kappa/stats.c 2014-06-04 16:01:40.433028543 +0200
+@@ -10,7 +10,7 @@
+ static void die(void)
+ {
+     unlink(stats_file);
+-    G_fatal_error(_("Problem reading r.stats output"));
++    G_fatal_error("%s", _("Problem reading r.stats output"));
+ }
+--- grass-6.4.3/raster/r.lake/main.c.orig      2012-09-01 11:52:23.000000000 +0200
++++ grass-6.4.3/raster/r.lake/main.c   2014-05-23 22:01:49.980854951 +0200
+@@ -203,19 +203,19 @@
+       exit(EXIT_FAILURE);
+     if (smap_opt->answer && sdxy_opt->answer)
+-      G_fatal_error(_("Both seed map and coordinates cannot be specified"));
++      G_fatal_error("%s", _("Both seed map and coordinates cannot be specified"));
+     if (!smap_opt->answer && !sdxy_opt->answer)
+-      G_fatal_error(_("Seed map or seed coordinates must be set!"));
++      G_fatal_error("%s", _("Seed map or seed coordinates must be set!"));
+     if (sdxy_opt->answer && !lake_opt->answer)
+-      G_fatal_error(_("Seed coordinates and output map lake= must be set!"));
++      G_fatal_error("%s", _("Seed coordinates and output map lake= must be set!"));
+     if (lake_opt->answer && overwrite_flag->answer)
+-      G_fatal_error(_("Both lake and overwrite cannot be specified"));
++      G_fatal_error("%s", _("Both lake and overwrite cannot be specified"));
+     if (!lake_opt->answer && !overwrite_flag->answer)
+-      G_fatal_error(_("Output lake map or overwrite flag must be set!"));
++      G_fatal_error("%s", _("Output lake map or overwrite flag must be set!"));
+     terrainmap = tmap_opt->answer;
+     seedmap = smap_opt->answer;
+@@ -245,7 +245,7 @@
+       if (start_row < 0 || start_row > rows ||
+           start_col < 0 || start_col > cols)
+-          G_fatal_error(_("Seed point outside the current region"));
++          G_fatal_error("%s", _("Seed point outside the current region"));
+     }
+     /* Open terran map */
+@@ -274,7 +274,7 @@
+     in_terran = (FCELL **) G_malloc(rows * sizeof(FCELL *));
+     out_water = (FCELL **) G_malloc(rows * sizeof(FCELL *));
+     if (in_terran == NULL || out_water == NULL)
+-      G_fatal_error(_("G_malloc: out of memory"));
++      G_fatal_error("%s", _("G_malloc: out of memory"));
+     G_debug(1, "Loading maps...");
+@@ -300,7 +300,7 @@
+     if (sdxy_opt->answer)
+       /* Check is water level higher than seed point */
+       if (in_terran[start_row][start_col] >= water_level)
+-          G_fatal_error(_("Given water level at seed point is below earth surface. "
++          G_fatal_error("%s", _("Given water level at seed point is below earth surface. "
+                          "Increase water level or move seed point."));
+     out_water[start_row][start_col] = 1;
+@@ -386,7 +386,7 @@
+     G_message(_("Lake depth from %f to %f"), min_depth, max_depth);
+     G_message(_("Lake area %f square meters"), area);
+     G_message(_("Lake volume %f cubic meters"), volume);
+-    G_warning(_("Volume is correct only if lake depth (terrain raster map) is in meters"));
++    G_warning("%s", _("Volume is correct only if lake depth (terrain raster map) is in meters"));
+     /* Close all files. Lake map gets written only now. */
+     G_close_cell(in_terran_fd);
+--- grass-6.4.3/raster/r.le/r.le.patch/driver.c.orig   2009-02-07 11:45:28.000000000 +0100
++++ grass-6.4.3/raster/r.le/r.le.patch/driver.c        2014-05-23 22:04:47.930851242 +0200
+@@ -2565,12 +2565,9 @@
+           }
+       }
+       if (3 > (fvalue[0] = (float)i)) {
+-          buf = G_malloc(40);
+-          sprintf(buf,
++          G_fatal_error(
+                   "\n No data in file\"%s\"; use r.le.setup to make file\n",
+                   path);
+-          G_fatal_error(buf);
+-          G_free(buf);
+       }
+     }
+     fclose(fp);
+--- grass-6.4.3/raster/r.le/r.le.setup/sample.c.orig   2008-11-25 02:30:41.000000000 +0100
++++ grass-6.4.3/raster/r.le/r.le.setup/sample.c        2014-05-23 22:05:04.464184230 +0200
+@@ -1047,7 +1047,7 @@
+       while (1) {
+           ltype = Vect_read_next_line(&Map, Points, Cats);
+           if (ltype == -1)
+-              G_fatal_error(_("Cannot read vector"));
++              G_fatal_error("%s", _("Cannot read vector"));
+           if (ltype == -2)
+               break;          /* EOF */
+           /* point features only. (GV_POINTS is pts AND centroids, GV_POINT is just pts) */
+--- grass-6.4.3/raster/r.los/main.c.orig       2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.los/main.c    2014-05-23 22:05:37.220850214 +0200
+@@ -147,12 +147,12 @@
+       patt_flag = TRUE;
+     if ((G_projection() == PROJECTION_LL))
+-      G_fatal_error(_("Lat/Long support is not (yet) implemented for this module."));
++      G_fatal_error("%s", _("Lat/Long support is not (yet) implemented for this module."));
+     /* check if specified observer location inside window   */
+     if (east < window.west || east > window.east
+       || north > window.north || north < window.south)
+-      G_fatal_error(_("Specified observer coordinate is outside current region bounds."));
++      G_fatal_error("%s", _("Specified observer coordinate is outside current region bounds."));
+     search_mapset = "";
+     old_mapset = G_find_cell2(elev_layer, search_mapset);
+@@ -208,7 +208,7 @@
+       if (patt < 0)
+           G_fatal_error(_("Unable to open raster map <%s>"), patt_layer);
+       if (G_get_raster_map_type(patt) != CELL_TYPE)
+-          G_fatal_error(_("Pattern map should be a binary 0/1 CELL map"));
++          G_fatal_error("%s", _("Pattern map should be a binary 0/1 CELL map"));
+     }
+     /*      parameters for map submatrices                  */
+@@ -242,7 +242,7 @@
+       G_get_ellipsoid_parameters(&aa, &e2);
+       if (aa == 0) {
+           /* since there was a problem, take a hardcoded radius :( */
+-          G_warning(_("Problem to obtain current ellipsoid parameters, using sphere (6370997.0)"));
++          G_warning("%s", _("Problem to obtain current ellipsoid parameters, using sphere (6370997.0)"));
+           aa = 6370997.00;
+       }
+       G_debug(3, "radius: %f", aa);
+--- grass-6.4.3/raster/r.mapcalc/function.c.orig       2008-11-25 02:30:49.000000000 +0100
++++ grass-6.4.3/raster/r.mapcalc/function.c    2014-05-23 22:05:59.617516414 +0200
+@@ -90,7 +90,7 @@
+ {
+     int i;
+-    fprintf(stderr, _("Known functions:"));
++    fputs(_("Known functions:"), stderr);
+     for (i = 0; func_descs[i].name; i++)
+       fprintf(stderr, "%c%-10s", i % 7 ? ' ' : '\n', func_descs[i].name);
+     fprintf(stderr, "\n");
+--- grass-6.4.3/raster/r.mapcalc/main.c.orig   2012-07-21 11:52:07.000000000 +0200
++++ grass-6.4.3/raster/r.mapcalc/main.c        2014-06-04 16:02:12.663027871 +0200
+@@ -139,12 +139,12 @@
+     all_ok = 1;
+     if (floating_point_exception_occurred) {
+-      G_warning(_("Floating point error(s) occured in the calculation"));
++      G_warning("%s", _("Floating point error(s) occured in the calculation"));
+       all_ok = 0;
+     }
+     if (overflow_occurred) {
+-      G_warning(_("Overflow occured in the calculation"));
++      G_warning("%s", _("Overflow occured in the calculation"));
+       all_ok = 0;
+     }
+--- grass-6.4.3/raster/r.mapcalc/map.c.orig    2008-11-25 02:30:49.000000000 +0100
++++ grass-6.4.3/raster/r.mapcalc/map.c 2014-06-05 21:46:54.120795959 +0200
+@@ -246,7 +246,7 @@
+     if (nrows > 1 && nrows <= max_rows_in_memory) {
+       if (rowio_setup(&m->rowio, m->fd, nrows,
+                       columns * size, read_row, NULL) < 0)
+-          G_fatal_error(_("Rowio_setup failed"));
++          G_fatal_error("%s", _("Rowio_setup failed"));
+       m->use_rowio = 1;
+     }
+     else
+@@ -289,7 +289,7 @@
+     if (m->use_rowio) {
+       bp = rowio_get(&m->rowio, row);
+       if (!bp)
+-          G_fatal_error(_("Rowio_get failed"));
++          G_fatal_error("%s", _("Rowio_get failed"));
+       G_copy(buf, bp, columns * G_raster_size(res_type));
+     }
+@@ -512,13 +512,13 @@
+ void put_map_row(int fd, void *buf, int res_type)
+ {
+     if (G_put_raster_row(fd, buf, res_type) < 0)
+-      G_fatal_error(_("Failed writing raster map row"));
++      G_fatal_error("%s", _("Failed writing raster map row"));
+ }
+ void close_output_map(int fd)
+ {
+     if (G_close_cell(fd) < 0)
+-      G_fatal_error(_("Unable to close raster map"));
++      G_fatal_error("%s", _("Unable to close raster map"));
+ }
+ void unopen_output_map(int fd)
+--- grass-6.4.3/raster/r.median/read_stats.c.orig      2008-11-25 02:30:44.000000000 +0100
++++ grass-6.4.3/raster/r.median/read_stats.c   2014-05-23 22:06:16.817516056 +0200
+@@ -11,7 +11,7 @@
+       return 0;
+     if (sscanf(buf, "%ld %ld %lf", cat1, cat2, value) != 3)
+-      G_fatal_error(_("Reading r.stats output"));
++      G_fatal_error("%s", _("Reading r.stats output"));
+     return 1;
+ }
+--- grass-6.4.3/raster/r.mfilter/getrow.c.orig 2008-11-25 02:30:49.000000000 +0100
++++ grass-6.4.3/raster/r.mfilter/getrow.c      2014-05-23 22:06:33.660849038 +0200
+@@ -20,6 +20,6 @@
+     else
+       lseek(fd, (off_t) (nrows - row - 1) * len, 0);
+     if (read(fd, (CELL *) buf, len) != len)
+-      G_fatal_error(_("Error reading temporary file"));
++      G_fatal_error("%s", _("Error reading temporary file"));
+     return 1;
+ }
+--- grass-6.4.3/raster/r.mfilter/getfilt.c.orig        2010-03-20 11:53:18.000000000 +0100
++++ grass-6.4.3/raster/r.mfilter/getfilt.c     2014-06-04 16:03:09.796360014 +0200
+@@ -43,10 +43,10 @@
+       uppercase(buf);
+       if (sscanf(buf, "MATRIX %d", &n) == 1) {
+           if (n < 3) {
+-              G_fatal_error(_("Illegal filter matrix size specified"));
++              G_fatal_error("%s", _("Illegal filter matrix size specified"));
+           }
+           if (n % 2 == 0) {
+-              G_fatal_error(_("Even filter matrix size specified"));
++              G_fatal_error("%s", _("Even filter matrix size specified"));
+           }
+           count++;
+@@ -68,7 +68,7 @@
+           for (row = 0; row < n; row++)
+               for (col = 0; col < n; col++)
+                   if (fscanf(fd, "%d", &f->matrix[row][col]) != 1) {
+-                      G_fatal_error(_("Illegal filter matrix"));
++                      G_fatal_error("%s", _("Illegal filter matrix"));
+                   }
+           continue;
+       }
+@@ -76,10 +76,10 @@
+           if (sscanf(buf, "%s", label) == 1 &&
+               strcmp(label, "DIVISOR") == 0) {
+               if (!filter) {
+-                  G_fatal_error(_("Filter file format error"));
++                  G_fatal_error("%s", _("Filter file format error"));
+               }
+               if (have_divisor) {
+-                  G_fatal_error(_("Duplicate filter divisor specified"));
++                  G_fatal_error("%s", _("Duplicate filter divisor specified"));
+               }
+               have_divisor = 1;
+               if (sscanf(buf, "DIVISOR %d", &n) == 1) {
+@@ -96,33 +96,33 @@
+               for (row = 0; row < f->size; row++)
+                   for (col = 0; col < f->size; col++)
+                       if (fscanf(fd, "%d", &f->dmatrix[row][col]) != 1) {
+-                          G_fatal_error(_("Illegal divisor matrix"));
++                          G_fatal_error("%s", _("Illegal divisor matrix"));
+                       }
+               continue;
+           }
+       if (sscanf(buf, "TYPE %s", temp) == 1) {
+           if (!filter) {
+-              G_fatal_error(_("Filter file format error"));
++              G_fatal_error("%s", _("Filter file format error"));
+           }
+           if (have_type) {
+-              G_fatal_error(_("Duplicate filter type specified"));
++              G_fatal_error("%s", _("Duplicate filter type specified"));
+           }
+           if (strcmp(temp, "P") == 0)
+               f->type = PARALLEL;
+           else if (strcmp(temp, "S") == 0)
+               f->type = SEQUENTIAL;
+           else {
+-              G_fatal_error(_("Illegal filter type specified"));
++              G_fatal_error("%s", _("Illegal filter type specified"));
+           }
+           have_type = 1;
+           continue;
+       }
+       if (sscanf(buf, "START %s", temp) == 1) {
+           if (!filter) {
+-              G_fatal_error(_("Filter file format error"));
++              G_fatal_error("%s", _("Filter file format error"));
+           }
+           if (have_start) {
+-              G_fatal_error(_("Duplicate filter start specified"));
++              G_fatal_error("%s", _("Duplicate filter start specified"));
+           }
+           if (strcmp(temp, "UL") == 0)
+               f->start = UL;
+@@ -152,7 +152,7 @@
+     }
+     if (!filter) {
+-      G_fatal_error(_("Illegal filter file format"));
++      G_fatal_error("%s", _("Illegal filter file format"));
+     }
+     *nfilters = count;
+--- grass-6.4.3/raster/r.mfilter/main.c.orig   2010-11-20 11:52:05.000000000 +0100
++++ grass-6.4.3/raster/r.mfilter/main.c        2014-06-05 21:47:09.657462302 +0200
+@@ -101,7 +101,7 @@
+     /* please, remove before GRASS 7 released */
+     if (flag1->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead"));
+     }
+@@ -130,7 +130,7 @@
+     /* make sure filter matrix won't extend outside the raster map */
+     for (i = 0; i < nfilters; i++) {
+       if (filter[i].size > ncols || filter[i].size > nrows)
+-          G_fatal_error(_("Raster map too small for the size of the filter"));
++          G_fatal_error("%s", _("Raster map too small for the size of the filter"));
+     }
+--- grass-6.4.3/raster/r.mfilter/perform.c.orig        2008-11-25 02:30:49.000000000 +0100
++++ grass-6.4.3/raster/r.mfilter/perform.c     2014-06-07 22:25:45.583812339 +0200
+@@ -40,7 +40,7 @@
+               close(creat(tmp1 = G_tempfile(), 0666));
+               out = open(tmp1, 2);
+               if (out < 0)
+-                  G_fatal_error(_("Unable to create temporary file"));
++                  G_fatal_error("%s", _("Unable to create temporary file"));
+           }
+           else if (count == 1) {
+@@ -51,7 +51,7 @@
+               close(creat(tmp2 = G_tempfile(), 0666));
+               out = open(tmp2, 2);
+               if (out < 0)
+-                  G_fatal_error(_("Unable to create temporary file"));
++                  G_fatal_error("%s", _("Unable to create temporary file"));
+           }
+           else {
+               int fd;
+--- grass-6.4.3/raster/r.mfilter.fp/getrow.c.orig      2014-05-23 22:06:51.814181993 +0200
++++ grass-6.4.3/raster/r.mfilter.fp/getrow.c   2014-05-23 22:06:54.614181935 +0200
+@@ -20,6 +20,6 @@
+     else
+       lseek(fd, (off_t) (nrows - row - 1) * len, 0);
+     if (read(fd, (DCELL *) buf, len) != len)
+-      G_fatal_error(_("Error reading temporary file"));
++      G_fatal_error("%s", _("Error reading temporary file"));
+     return 1;
+ }
+--- grass-6.4.3/raster/r.mfilter.fp/getfilt.c.orig     2010-03-20 11:53:17.000000000 +0100
++++ grass-6.4.3/raster/r.mfilter.fp/getfilt.c  2014-06-04 16:04:17.193025276 +0200
+@@ -44,10 +44,10 @@
+       uppercase(buf);
+       if (sscanf(buf, "MATRIX %d", &n) == 1) {
+           if (n < 3) {
+-              G_fatal_error(_("Illegal filter matrix size specified"));
++              G_fatal_error("%s", _("Illegal filter matrix size specified"));
+           }
+           if (n % 2 == 0) {
+-              G_fatal_error(_("Even filter matrix size specified"));
++              G_fatal_error("%s", _("Even filter matrix size specified"));
+           }
+           count++;
+@@ -69,7 +69,7 @@
+           for (row = 0; row < n; row++)
+               for (col = 0; col < n; col++)
+                   if (fscanf(fd, "%lf", &f->matrix[row][col]) != 1) {
+-                      G_fatal_error(_("Illegal filter matrix"));
++                      G_fatal_error("%s", _("Illegal filter matrix"));
+                   }
+           continue;
+       }
+@@ -77,10 +77,10 @@
+           if (sscanf(buf, "%s", label) == 1 &&
+               strcmp(label, "DIVISOR") == 0) {
+               if (!filter) {
+-                  G_fatal_error(_("Filter file format error"));
++                  G_fatal_error("%s", _("Filter file format error"));
+               }
+               if (have_divisor) {
+-                  G_fatal_error(_("Duplicate filter divisor specified"));
++                  G_fatal_error("%s", _("Duplicate filter divisor specified"));
+               }
+               have_divisor = 1;
+               if (sscanf(buf, "DIVISOR %lf", &div) == 1) {
+@@ -98,33 +98,33 @@
+               for (row = 0; row < f->size; row++)
+                   for (col = 0; col < f->size; col++)
+                       if (fscanf(fd, "%lf", &f->dmatrix[row][col]) != 1) {
+-                          G_fatal_error(_("Illegal divisor matrix"));
++                          G_fatal_error("%s", _("Illegal divisor matrix"));
+                       }
+               continue;
+           }
+       if (sscanf(buf, "TYPE %s", temp) == 1) {
+           if (!filter) {
+-              G_fatal_error(_("Filter file format error"));
++              G_fatal_error("%s", _("Filter file format error"));
+           }
+           if (have_type) {
+-              G_fatal_error(_("Duplicate filter type specified"));
++              G_fatal_error("%s", _("Duplicate filter type specified"));
+           }
+           if (strcmp(temp, "P") == 0)
+               f->type = PARALLEL;
+           else if (strcmp(temp, "S") == 0)
+               f->type = SEQUENTIAL;
+           else {
+-              G_fatal_error(_("Illegal filter type specified"));
++              G_fatal_error("%s", _("Illegal filter type specified"));
+           }
+           have_type = 1;
+           continue;
+       }
+       if (sscanf(buf, "START %s", temp) == 1) {
+           if (!filter) {
+-              G_fatal_error(_("Filter file format error"));
++              G_fatal_error("%s", _("Filter file format error"));
+           }
+           if (have_start) {
+-              G_fatal_error(_("Duplicate filter start specified"));
++              G_fatal_error("%s", _("Duplicate filter start specified"));
+           }
+           if (strcmp(temp, "UL") == 0)
+               f->start = UL;
+@@ -154,7 +154,7 @@
+     }
+     if (!filter) {
+-      G_fatal_error(_("Illegal filter file format"));
++      G_fatal_error("%s", _("Illegal filter file format"));
+     }
+     *nfilters = count;
+--- grass-6.4.3/raster/r.mfilter.fp/main.c.orig        2008-11-25 02:30:46.000000000 +0100
++++ grass-6.4.3/raster/r.mfilter.fp/main.c     2014-06-05 21:47:24.370795329 +0200
+@@ -106,7 +106,7 @@
+     /* please, remove before GRASS 7 released */
+     if (flag1->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead"));
+     }
+@@ -135,7 +135,7 @@
+     /* make sure filter matrix won't extend outside the raster map */
+     for (i = 0; i < nfilters; i++) {
+       if (filter[i].size > ncols || filter[i].size > nrows)
+-          G_fatal_error(_("Raster map too small for the size of the filter"));
++          G_fatal_error("%s", _("Raster map too small for the size of the filter"));
+     }
+--- grass-6.4.3/raster/r.mfilter.fp/perform.c.orig     2008-11-25 02:30:46.000000000 +0100
++++ grass-6.4.3/raster/r.mfilter.fp/perform.c  2014-06-07 22:25:58.820478730 +0200
+@@ -40,7 +40,7 @@
+               close(creat(tmp1 = G_tempfile(), 0666));
+               out = open(tmp1, 2);
+               if (out < 0)
+-                  G_fatal_error(_("Unable to create temporary file"));
++                  G_fatal_error("%s", _("Unable to create temporary file"));
+           }
+           else if (count == 1) {
+@@ -51,7 +51,7 @@
+               close(creat(tmp2 = G_tempfile(), 0666));
+               out = open(tmp2, 2);
+               if (out < 0)
+-                  G_fatal_error(_("Unable to create temporary file"));
++                  G_fatal_error("%s", _("Unable to create temporary file"));
+           }
+           else {
+               int fd;
+--- grass-6.4.3/raster/r.mode/read_stats.c.orig        2014-05-23 22:12:42.277508021 +0200
++++ grass-6.4.3/raster/r.mode/read_stats.c     2014-05-23 22:12:44.484174642 +0200
+@@ -11,7 +11,7 @@
+       return 0;
+     if (sscanf(buf, "%ld %ld %lf", cat1, cat2, value) != 3)
+-      G_fatal_error(_("reading r.stats output"));
++      G_fatal_error("%s", _("reading r.stats output"));
+     return 1;
+ }
+--- grass-6.4.3/raster/r.neighbors/main.c.orig 2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.neighbors/main.c      2014-05-23 22:22:23.177495914 +0200
+@@ -180,13 +180,13 @@
+     sscanf(parm.size->answer, "%d", &ncb.nsize);
+     if (ncb.nsize <= 0)
+-      G_fatal_error(_("Neighborhood size must be positive"));
++      G_fatal_error("%s", _("Neighborhood size must be positive"));
+     if (ncb.nsize % 2 == 0)
+-      G_fatal_error(_("Neighborhood size must be odd"));
++      G_fatal_error("%s", _("Neighborhood size must be odd"));
+     ncb.dist = ncb.nsize / 2;
+     if (parm.weight->answer && flag.circle->answer)
+-      G_fatal_error(_("weight= and -c are mutually exclusive"));
++      G_fatal_error("%s", _("weight= and -c are mutually exclusive"));
+     p = ncb.oldcell.name = parm.input->answer;
+     if (NULL == (ncb.oldcell.mapset = G_find_cell2(p, ""))) {
+@@ -198,7 +198,7 @@
+     }
+     ncb.newcell.mapset = G_mapset();
+     if (parm.weight->answer && parm.gauss->answer)
+-      G_fatal_error(_("weight= and gauss= are mutually exclusive"));
++      G_fatal_error("%s", _("weight= and gauss= are mutually exclusive"));
+     if (!flag.align->answer) {
+       if (G_get_cellhd(ncb.oldcell.name, ncb.oldcell.mapset, &cellhd) < 0)
+@@ -289,7 +289,7 @@
+     /* please, remove before GRASS 7 released */
+     if (flag.quiet->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+--- grass-6.4.3/raster/r.out.ascii/main.c.orig 2008-11-25 02:30:38.000000000 +0100
++++ grass-6.4.3/raster/r.out.ascii/main.c      2014-05-23 22:28:02.380822177 +0200
+@@ -120,24 +120,24 @@
+     if (parm.dp->answer) {
+       if (sscanf(parm.dp->answer, "%d", &dp) != 1)
+-          G_fatal_error(_("Failed to interpret dp as an integer"));
++          G_fatal_error("%s", _("Failed to interpret dp as an integer"));
+       if (dp > 20 || dp < 0)
+-          G_fatal_error(_("dp has to be from 0 to 20"));
++          G_fatal_error("%s", _("dp has to be from 0 to 20"));
+     }
+     width = 10;
+     if (parm.width->answer) {
+       if (sscanf(parm.width->answer, "%d", &width) != 1)
+-          G_fatal_error(_("Failed to interpret width as an integer"));
++          G_fatal_error("%s", _("Failed to interpret width as an integer"));
+     }
+     null_str = parm.null->answer;
+     if (flag.surfer->answer && flag.noheader->answer)
+-      G_fatal_error(_("Both -s and -h doesn't make sense"));
++      G_fatal_error("%s", _("Both -s and -h doesn't make sense"));
+     if (flag.surfer->answer && flag.modflow->answer)
+-      G_fatal_error(_("Use -M or -s, not both"));
++      G_fatal_error("%s", _("Use -M or -s, not both"));
+     name = parm.map->answer;
+     mapset = G_find_cell2(name, "");
+--- grass-6.4.3/raster/r.out.bin/main.c.orig   2011-04-16 11:52:08.000000000 +0200
++++ grass-6.4.3/raster/r.out.bin/main.c        2014-05-23 22:29:10.667487420 +0200
+@@ -50,7 +50,7 @@
+       swap_4(&x);
+     if (fwrite(&x, 4, 1, fp) != 1)
+-      G_fatal_error(_("Error writing data"));
++      G_fatal_error("%s", _("Error writing data"));
+ }
+ static void write_double(FILE *fp, int swap_flag, double x)
+@@ -59,7 +59,7 @@
+       swap_8(&x);
+     if (fwrite(&x, 8, 1, fp) != 1)
+-      G_fatal_error(_("Error writing data"));
++      G_fatal_error("%s", _("Error writing data"));
+ }
+ static void make_gmt_header(
+@@ -341,7 +341,7 @@
+       exit(EXIT_FAILURE);
+     if (sscanf(parm.null->answer, "%lf", &null_val) != 1)
+-      G_fatal_error(_("Invalid value for null (integers only)"));
++      G_fatal_error("%s", _("Invalid value for null (integers only)"));
+     name = parm.input->answer;
+@@ -363,7 +363,7 @@
+     if (flag.swap->answer) {
+       if (strcmp(parm.order->answer, "native") != 0)
+-          G_fatal_error(_("order= and -s are mutually exclusive"));
++          G_fatal_error("%s", _("order= and -s are mutually exclusive"));
+       order = G_is_little_endian() ? 0 : 1;
+     }
+@@ -372,7 +372,7 @@
+     do_stdout = strcmp("-", outfile) == 0;
+     if (flag.int_out->answer && flag.float_out->answer)
+-      G_fatal_error(_("-i and -f are mutually exclusive"));
++      G_fatal_error("%s", _("-i and -f are mutually exclusive"));
+     fd = G_open_cell_old(name, "");
+@@ -391,11 +391,11 @@
+       bytes = 2;
+     if (is_fp && bytes < 4)
+-      G_fatal_error(_("Floating-point output requires bytes=4 or bytes=8"));
++      G_fatal_error("%s", _("Floating-point output requires bytes=4 or bytes=8"));
+ #ifndef HAVE_LONG_LONG_INT
+     if (!is_fp && bytes > 4)
+-      G_fatal_error(_("Integer output doesn't support bytes=8 in this build"));
++      G_fatal_error("%s", _("Integer output doesn't support bytes=8 in this build"));
+ #endif
+     G_get_window(&region);
+@@ -409,13 +409,13 @@
+     /* Set up Parameters for GMT header */
+     if (flag.gmt_hd->answer) {
+       if (!is_fp && bytes > 4)
+-          G_fatal_error(_("GMT grid doesn't support 64-bit integers"));
++          G_fatal_error("%s", _("GMT grid doesn't support 64-bit integers"));
+       make_gmt_header(&header, name, outfile, &region, null_val);
+     }
+     /* Write out BIL support files compatible with Arc-View */
+     if (flag.bil_hd->answer) {
+-      G_message(_("Creating BIL support files..."));
++      G_message("%s", _("Creating BIL support files..."));
+       write_bil_hdr(outfile, &region,
+                     bytes, order, flag.gmt_hd->answer, null_val);
+       write_bil_wld(outfile, &region);
+@@ -434,15 +434,15 @@
+     if (is_fp) {
+       G_message(_("Exporting raster as floating values (bytes=%d)"), bytes);
+       if (flag.gmt_hd->answer)
+-          G_message(_("Writing GMT float format ID=1"));
++          G_message("%s", _("Writing GMT float format ID=1"));
+     }
+     else {
+       G_message(_("Exporting raster as integer values (bytes=%d)"), bytes);
+       if (flag.gmt_hd->answer)
+-          G_message(_("Writing GMT integer format ID=2"));
++          G_message("%s", _("Writing GMT integer format ID=2"));
+     }
+-    G_verbose_message(_("Using the current region settings..."));
++    G_verbose_message("%s", _("Using the current region settings..."));
+     G_verbose_message(_("north=%f"), region.north);
+     G_verbose_message(_("south=%f"), region.south);
+     G_verbose_message(_("east=%f"), region.east);
+@@ -458,7 +458,7 @@
+       convert_row(out_buf, in_buf, ncols, is_fp, bytes, swap_flag, null_val);
+       if (fwrite(out_buf, bytes, ncols, fp) != ncols)
+-          G_fatal_error(_("Error writing data"));
++          G_fatal_error("%s", _("Error writing data"));
+     }
+     G_percent(row, nrows, 2); /* finish it off */
+--- grass-6.4.3/raster/r.out.gridatb/file_io.c.orig    2008-11-25 02:30:39.000000000 +0100
++++ grass-6.4.3/raster/r.out.gridatb/file_io.c 2014-05-24 06:59:00.300183170 +0200
+@@ -35,13 +35,13 @@
+     adjcellhdval = adjcellhd(&cellhd);
+     switch (adjcellhdval) {
+     case 1:
+-      G_fatal_error(_("Setting window header"));
++      G_fatal_error("%s", _("Setting window header"));
+       break;
+     case 2:
+-      G_fatal_error(_("Rows changed"));
++      G_fatal_error("%s", _("Rows changed"));
+       break;
+     case 3:
+-      G_fatal_error(_("Cols changed"));
++      G_fatal_error("%s", _("Cols changed"));
+       break;
+     }
+--- grass-6.4.3/raster/r.out.mat/main.c.orig   2008-11-25 02:30:40.000000000 +0100
++++ grass-6.4.3/raster/r.out.mat/main.c        2014-05-24 07:00:17.883514886 +0200
+@@ -87,7 +87,7 @@
+     /* please, remove before GRASS 7 released */
+     if (verbose->answer) {
+       putenv("GRASS_VERBOSE=3");
+-      G_warning(_("The '-v' flag is superseded and will be removed "
++      G_warning("%s", _("The '-v' flag is superseded and will be removed "
+                   "in future. Please use '--verbose' instead."));
+     }
+@@ -194,7 +194,7 @@
+     /***** Write bounds *****/
+     G_verbose_message("");
+-    G_verbose_message(_("Using the Current Region settings:"));
++    G_verbose_message("%s", _("Using the Current Region settings:"));
+     G_verbose_message(_("northern edge=%f"), region.north);
+     G_verbose_message(_("southern edge=%f"), region.south);
+     G_verbose_message(_("eastern edge=%f"), region.east);
+@@ -269,17 +269,17 @@
+     case CELL_TYPE:
+       data_format = 2;
+-      G_verbose_message(_("Exporting raster as integer values"));
++      G_verbose_message("%s", _("Exporting raster as integer values"));
+       break;
+     case FCELL_TYPE:
+       data_format = 1;
+-      G_verbose_message(_("Exporting raster as floating point values"));
++      G_verbose_message("%s", _("Exporting raster as floating point values"));
+       break;
+     case DCELL_TYPE:
+       data_format = 0;
+-      G_verbose_message(_("Exporting raster as double FP values"));
++      G_verbose_message("%s", _("Exporting raster as double FP values"));
+       break;
+     default:
+@@ -322,7 +322,7 @@
+           G_raster_size(map_type) * (G_window_rows() +
+                                      1) * (G_window_cols() + 1));
+-    G_verbose_message(_("Reading in map ... "));
++    G_verbose_message("%s", _("Reading in map ... "));
+     /* load entire map into memory */
+     for (row = 0, ptr = raster; row < mrows; row++,
+@@ -336,7 +336,7 @@
+     G_percent(row, mrows, 2); /* finish it off */
+-    G_verbose_message(_("Writing out map..."));
++    G_verbose_message("%s", _("Writing out map..."));
+     /* then write it to disk */
+     /* NoGood: fwrite(raster, G_raster_size(map_type), mrows*ncols, fp1); */
+--- grass-6.4.3/raster/r.out.mpeg/main.c.orig  2013-04-20 11:52:14.000000000 +0200
++++ grass-6.4.3/raster/r.out.mpeg/main.c       2014-05-24 07:18:37.263491972 +0200
+@@ -85,7 +85,7 @@
+     else if (256 == G_system("mpeg_encode 2> /dev/null"))
+       strcpy(encoder, "mpeg_encode");
+     else
+-      G_fatal_error(_("Either mpeg_encode or ppmtompeg must be installed"));
++      G_fatal_error("%s", _("Either mpeg_encode or ppmtompeg must be installed"));
+     G_debug(1, "encoder = [%s]", encoder);
+@@ -279,7 +279,7 @@
+       sprintf(cmd, "%s %s", encoder, mpfilename);
+     if (0 != G_system(cmd))
+-      G_warning(_("mpeg_encode ERROR"));
++      G_warning("%s", _("mpeg_encode ERROR"));
+     clean_files(mpfilename, yfiles, cnt);
+@@ -309,7 +309,7 @@
+       sprintf(cmd, "%s %s", encoder, mpfilename);
+     if (0 != G_system(cmd))
+-      G_warning(_("mpeg_encode ERROR"));
++      G_warning("%s", _("mpeg_encode ERROR"));
+     clean_files(mpfilename, NULL, 0);
+@@ -343,7 +343,7 @@
+     }
+     if (NULL == (tf = fopen(tfile, "r")))
+-      G_warning(_("Error reading wildcard"));
++      G_warning("%s", _("Error reading wildcard"));
+     else {
+       while (NULL != fgets(buf, 512, tf)) {
+           /* replace newline with null */
+--- grass-6.4.3/raster/r.out.mpeg/write.c.orig 2008-11-25 02:30:48.000000000 +0100
++++ grass-6.4.3/raster/r.out.mpeg/write.c      2014-06-04 16:04:42.369691418 +0200
+@@ -175,10 +175,10 @@
+     }
+     if (*y_rows != rows || *y_cols != cols)
+-      G_fatal_error(_("Size mismatch error!"));
++      G_fatal_error("%s", _("Size mismatch error!"));
+     if (NULL == (ofp = fopen(filename, "w")))
+-      G_fatal_error(_("Unable to open output file"));
++      G_fatal_error("%s", _("Unable to open output file"));
+     fprintf(ofp, "P6\n");
+     /* Magic number meaning rawbits, 24bit color to ppm format */
+@@ -212,7 +212,7 @@
+     int i, dirlen = 0;
+     if (NULL == (fp = fopen(mpfilename, "w")))
+-      G_fatal_error(_("Unable to create temporary files."));
++      G_fatal_error("%s", _("Unable to create temporary files."));
+     if (!fly) {
+       strcpy(dir, yfiles[0]);
+--- grass-6.4.3/raster/r.out.pov/main.c.orig   2013-04-20 11:52:14.000000000 +0200
++++ grass-6.4.3/raster/r.out.pov/main.c        2014-05-24 07:18:55.983491582 +0200
+@@ -211,7 +211,7 @@
+     G_read_range(name, mapset, &range);
+     G_get_range_min_max(&range, &range_min, &range_max);
+     if (range.min < 0 || range.max < 0)
+-      G_warning(_("Negative elevation values in input"));
++      G_warning("%s", _("Negative elevation values in input"));
+     elevBounds[0] = range.min;
+     elevBounds[1] = range.max;
+--- grass-6.4.3/raster/r.out.ppm/main.c.orig   2008-11-25 02:30:45.000000000 +0100
++++ grass-6.4.3/raster/r.out.ppm/main.c        2014-05-24 07:19:18.466824446 +0200
+@@ -78,7 +78,7 @@
+     /* please, remove before GRASS 7 released */
+     if (bequiet->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead"));
+     }
+@@ -164,7 +164,7 @@
+     /* max intensity val */
+-    G_important_message(_("Converting..."));
++    G_important_message("%s", _("Converting..."));
+     {
+       struct Colors colors;
+--- grass-6.4.3/raster/r.out.ppm3/main.c.orig  2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/raster/r.out.ppm3/main.c       2014-05-24 07:31:15.663476164 +0200
+@@ -99,7 +99,7 @@
+     /* please, remove before GRASS 7 released */
+     if (bequiet->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+@@ -173,7 +173,7 @@
+     /* max intensity val */
+     fprintf(fp, "255\n");
+-    G_message(_("Converting ... "));
++    G_message("%s", _("Converting ... "));
+     for (row = 0; row < w.rows; row++) {
+       G_percent(row, w.rows, 5);
+--- grass-6.4.3/raster/r.out.vrml/put_grid.c.orig      2009-09-12 11:53:11.000000000 +0200
++++ grass-6.4.3/raster/r.out.vrml/put_grid.c   2014-05-24 07:31:36.390142399 +0200
+@@ -34,7 +34,7 @@
+       int row, col;
+       if (!shh)
+-          G_message(_("Writing vertices..."));
++          G_message("%s", _("Writing vertices..."));
+       vrml_putline(0, vout, "Coordinate3");
+       vrml_putline(1, vout, OCB);
+@@ -79,7 +79,7 @@
+       unsigned char *red, *green, *blue, *set;
+       if (!shh)
+-          G_message(_("Writing color file..."));
++          G_message("%s", _("Writing color file..."));
+       vrml_putline(0, vout, "Material");
+       vrml_putline(1, vout, OCB);
+--- grass-6.4.3/raster/r.out.vrml/main.c.orig  2013-04-20 11:52:14.000000000 +0200
++++ grass-6.4.3/raster/r.out.vrml/main.c       2014-06-04 16:07:56.643020702 +0200
+@@ -34,7 +34,7 @@
+     int elevfd = 0, colorfd = 0;
+     FILE *vout = NULL;
+     struct Colors colr;
+-    char errbuf[100], outfile[256];
++    char outfile[256];
+     int shh, color_ok;
+     double exag, min, max;
+     struct GModule *module;
+@@ -84,13 +84,11 @@
+     t_mapset = NULL;
+     t_mapset = G_find_file2("cell", rast_el->answer, "");
+     if (!t_mapset) {
+-      sprintf(errbuf, "Couldn't find raster map %s", rast_el->answer);
+-      G_fatal_error(errbuf);
++      G_fatal_error("Couldn't find raster map %s", rast_el->answer);
+     }
+     if ((elevfd = G_open_cell_old(rast_el->answer, t_mapset)) == -1) {
+-      sprintf(errbuf, "Not able to open cellfile for [%s]",
++      G_fatal_error("Not able to open cellfile for [%s]",
+               rast_el->answer);
+-      G_fatal_error(errbuf);
+     }
+     {
+@@ -103,10 +101,9 @@
+       is_fp = G_raster_map_is_fp(rast_el->answer, t_mapset);
+       if (is_fp) {
+           if (G_read_fp_range(rast_el->answer, t_mapset, &fp_range) != 1) {
+-              sprintf(errbuf,
++              G_fatal_error(
+                       "Range info for [%s] not available (run r.support)\n",
+                       rast_el->answer);
+-              G_fatal_error(errbuf);
+           }
+           G_get_fp_range_min_max(&fp_range, &dmin, &dmax);
+           min = dmin;
+@@ -114,10 +111,9 @@
+       }
+       else {
+           if (G_read_range(rast_el->answer, t_mapset, &range) == -1) {
+-              sprintf(errbuf,
++              G_fatal_error(
+                       "Range info for [%s] not available (run r.support)\n",
+                       rast_el->answer);
+-              G_fatal_error(errbuf);
+           }
+           G_get_range_min_max(&range, &cmin, &cmax);
+           min = cmin;
+@@ -129,13 +125,11 @@
+       t_mapset = NULL;
+       t_mapset = G_find_file2("cell", rast_co->answer, "");
+       if (!t_mapset) {
+-          sprintf(errbuf, "Couldn't find raster map %s", rast_co->answer);
+-          G_warning(errbuf);
++          G_warning("Couldn't find raster map %s", rast_co->answer);
+       }
+       else if ((colorfd = G_open_cell_old(rast_co->answer, t_mapset)) == -1) {
+-          sprintf(errbuf, "Not able to open cellfile for [%s]",
++          G_warning("Not able to open cellfile for [%s]",
+                   rast_co->answer);
+-          G_warning(errbuf);
+       }
+       else {
+           G_read_colors(rast_co->answer, t_mapset, &colr);
+@@ -162,8 +156,7 @@
+       /* open file for writing VRML */
+       G_message(_("Opening %s for writing... "), outfile);
+       if (NULL == (vout = fopen(outfile, "w"))) {
+-          sprintf(errbuf, "Couldn't open output file %s", outfile);
+-          G_fatal_error(errbuf);
++          G_fatal_error("Couldn't open output file %s", outfile);
+       }
+     }
+--- grass-6.4.3/raster/r.out.vtk/main.c.orig   2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/raster/r.out.vtk/main.c        2014-05-24 07:32:29.983474615 +0200
+@@ -83,7 +83,7 @@
+           }
+       }
+       else {
+-          G_fatal_error(_("Cannot create RGB data, please provide three maps [r,g,b]"));
++          G_fatal_error("%s", _("Cannot create RGB data, please provide three maps [r,g,b]"));
+       }
+     }
+@@ -106,7 +106,7 @@
+           }
+       }
+       else {
+-          G_fatal_error(_("Cannot create vector data, please provide three maps [x,y,z]"));
++          G_fatal_error("%s", _("Cannot create vector data, please provide three maps [x,y,z]"));
+       }
+     }
+@@ -321,7 +321,7 @@
+           /*Maps have to be from the same type */
+           if (celltype[0] == celltype[1] && celltype[0] == celltype[2]) {
+-              G_debug(3, _("Writing VTK ImageData\n"));
++              G_debug(3, "%s", _("Writing VTK ImageData\n"));
+               out_type = celltype[0];
+@@ -331,7 +331,7 @@
+                                        digits);
+           }
+           else {
+-              G_warning(_("Wrong RGB maps. Maps should have the same type! RGB output not added!"));
++              G_warning("%s", _("Wrong RGB maps. Maps should have the same type! RGB output not added!"));
+               /*do nothing */
+           }
+@@ -368,7 +368,7 @@
+           /*Maps have to be from the same type */
+           if (celltype[0] == celltype[1] && celltype[0] == celltype[2]) {
+-              G_debug(3, _("Writing VTK Vector Data\n"));
++              G_debug(3, "%s", _("Writing VTK Vector Data\n"));
+               out_type = celltype[0];
+@@ -378,7 +378,7 @@
+                                     digits);
+           }
+           else {
+-              G_warning(_("Wrong vector maps. Maps should have the same type! Vector output not added!"));
++              G_warning("%s", _("Wrong vector maps. Maps should have the same type! Vector output not added!"));
+               /*do nothing */
+           }
+@@ -390,7 +390,7 @@
+     if (param.output->answer && fp != NULL)
+       if (fclose(fp)) {
+-          G_fatal_error(_("Error closing VTK-ASCII file"));
++          G_fatal_error("%s", _("Error closing VTK-ASCII file"));
+       }
+     return 0;
+--- grass-6.4.3/raster/r.out.vtk/writeascii.c.orig     2008-11-25 02:30:46.000000000 +0100
++++ grass-6.4.3/raster/r.out.vtk/writeascii.c  2014-06-04 16:10:14.483017829 +0200
+@@ -71,7 +71,7 @@
+ write_vtk_normal_header(FILE * fp, struct Cell_head region, double elevation,
+                       int type)
+ {
+-    G_debug(3, _("write_vtk_normal_header: Writing VTK-Header"));
++    G_debug(3, "%s", _("write_vtk_normal_header: Writing VTK-Header"));
+     /*Simple vtk ASCII header */
+     fprintf(fp, "# vtk DataFile Version 3.0\n");
+@@ -104,7 +104,7 @@
+ void write_vtk_structured_elevation_header(FILE * fp, struct Cell_head region)
+ {
+     G_debug(3,
+-          _("write_vtk_structured_elevation_header: Writing VTK-Header"));
++          "%s", _("write_vtk_structured_elevation_header: Writing VTK-Header"));
+     /*Simple vtk ASCII header */
+     fprintf(fp, "# vtk DataFile Version 3.0\n");
+@@ -120,7 +120,7 @@
+ /* ************************************************************************* */
+ void write_vtk_polygonal_elevation_header(FILE * fp, struct Cell_head region)
+ {
+-    G_debug(3, _("write_vtk_polygonal_elevation_header: Writing VTK-Header"));
++    G_debug(3, "%s", _("write_vtk_polygonal_elevation_header: Writing VTK-Header"));
+     /*Simple vtk ASCII header */
+     fprintf(fp, "# vtk DataFile Version 3.0\n");
+@@ -135,7 +135,7 @@
+ /* ************************************************************************* */
+ void write_vtk_celldata_header(FILE * fp, struct Cell_head region)
+ {
+-    G_debug(3, _("write_vtk_celldata_header: Writing VTK-DataHeader"));
++    G_debug(3, "%s", _("write_vtk_celldata_header: Writing VTK-DataHeader"));
+     fprintf(fp, "CELL_DATA %i\n", region.cols * region.rows);
+ }
+@@ -144,7 +144,7 @@
+ /* ************************************************************************* */
+ void write_vtk_pointdata_header(FILE * fp, struct Cell_head region)
+ {
+-    G_debug(3, _("writeVTKPointHeader: Writing VTK-DataHeader"));
++    G_debug(3, "%s", _("writeVTKPointHeader: Writing VTK-DataHeader"));
+     fprintf(fp, "POINT_DATA %i\n", region.cols * region.rows);
+ }
+@@ -165,7 +165,7 @@
+     double nullvalue, value;
+     void *ptr, *raster;
+-    G_debug(3, _("write_vtk_structured_coordinates: Writing Coordinates"));
++    G_debug(3, "%s", _("write_vtk_structured_coordinates: Writing Coordinates"));
+     /*the nullvalue */
+     if (!sscanf(null_value, "%lf", &nullvalue)) {
+@@ -224,7 +224,7 @@
+     int i, j, count;
+     G_debug(3,
+-          _("write_vtk_polygonal_coordinates: Writing VTK Polygonal data"));
++          "%s", _("write_vtk_polygonal_coordinates: Writing VTK Polygonal data"));
+     /*the nullvalue */
+     if (!sscanf(null_value, "%lf", &nullvalue)) {
+@@ -336,7 +336,7 @@
+     double value, nullvalue;
+     void *ptr, *raster;
+-    G_debug(3, _("write_vtk_data: Writing VTK-Data"));
++    G_debug(3, "%s", _("write_vtk_data: Writing VTK-Data"));
+     /*the nullvalue */
+     if (!sscanf(null_value, "%lf", &nullvalue)) {
+@@ -389,7 +389,7 @@
+     void *blueptr, *blueraster;
+     double r = 0.0, g = 0.0, b = 0.0;
+-    G_debug(3, _("write_vtk_rgb_image_data: Writing VTK-ImageData"));
++    G_debug(3, "%s", _("write_vtk_rgb_image_data: Writing VTK-ImageData"));
+     fprintf(fp, "COLOR_SCALARS %s 3\n", varname);
+@@ -426,7 +426,7 @@
+           /*Test of valuerange, the data should be 1 byte gray values */
+           if (r > 255 || g > 255 || b > 255 || r < 0 || g < 0 || b < 0) {
+-              G_warning(_("Wrong map values! Values should in between 0 and 255!\n"));
++              G_warning("%s", _("Wrong map values! Values should in between 0 and 255!\n"));
+               fprintf(fp, "0 0 0 \n");
+           }
+           else {
+@@ -456,7 +456,7 @@
+     void *zptr, *zraster;
+     double x = 0.0, y = 0.0, z = 0.0;
+-    G_debug(3, _("write_vtk_vector_data: Writing VTK-vector data"));
++    G_debug(3, "%s", _("write_vtk_vector_data: Writing VTK-vector data"));
+     fprintf(fp, "VECTORS %s float\n", varname);
+--- grass-6.4.3/raster/r.param.scale/interface.c.orig  2008-11-25 02:30:37.000000000 +0100
++++ grass-6.4.3/raster/r.param.scale/interface.c       2014-05-24 07:32:57.023474052 +0200
+@@ -160,7 +160,7 @@
+     else if (!strcmp(parameter->answer, "feature"))
+       mparam = FEATURE;
+     else {
+-      G_warning(_("Morphometric parameter not recognised. Assuming 'Elevation'"));
++      G_warning("%s", _("Morphometric parameter not recognised. Assuming 'Elevation'"));
+       mparam = ELEV;
+     }
+@@ -187,5 +187,5 @@
+     /*--------------------------------------------------------------------------*/
+     if ((wsize / 2 != (wsize - 1) / 2) || (wsize > MAX_WSIZE))
+-      G_fatal_error(_("Inappropriate window size (too big or even)"));
++      G_fatal_error("%s", _("Inappropriate window size (too big or even)"));
+ }
+--- grass-6.4.3/raster/r.param.scale/main.c.orig       2009-03-29 09:47:25.000000000 +0200
++++ grass-6.4.3/raster/r.param.scale/main.c    2014-06-04 16:11:23.033016400 +0200
+@@ -42,7 +42,7 @@
+     /* Make sure that the current projection is not lat/long */
+     if ((G_projection() == PROJECTION_LL))
+-      G_fatal_error(_("Lat/Long location is not supported"));
++      G_fatal_error("%s", _("Lat/Long location is not supported"));
+     open_files();
+--- grass-6.4.3/raster/r.param.scale/process.c.orig    2009-05-30 11:52:29.000000000 +0200
++++ grass-6.4.3/raster/r.param.scale/process.c 2014-06-06 18:29:55.835908113 +0200
+@@ -70,7 +70,7 @@
+     if ((region.ew_res / region.ns_res >= 1.01) ||    /* If EW and NS resolns are    */
+       (region.ns_res / region.ew_res >= 1.01)) {      /* >1% different, warn user.      */
+-      G_warning(_("E-W and N-S grid resolutions are different. Taking average."));
++      G_warning("%s", _("E-W and N-S grid resolutions are different. Taking average."));
+       resoln = (region.ns_res + region.ew_res) / 2;
+     }
+     else
+--- grass-6.4.3/raster/r.patch/main.c.orig     2013-04-20 11:52:14.000000000 +0200
++++ grass-6.4.3/raster/r.patch/main.c  2014-05-24 07:33:29.096806717 +0200
+@@ -84,7 +84,7 @@
+     /* please, remove before GRASS 7 released */
+     if (flag1->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+@@ -99,7 +99,7 @@
+     for (ptr = names, nfiles = 0; *ptr != NULL; ptr++, nfiles++) ;
+     if (nfiles < 2)
+-      G_fatal_error(_("The minimum number of input raster maps is two"));
++      G_fatal_error("%s", _("The minimum number of input raster maps is two"));
+     infd = G_malloc(nfiles * sizeof(int));
+     statf = G_malloc(nfiles * sizeof(struct Cell_stats));
+@@ -136,7 +136,7 @@
+     }
+     if (!ok)
+-      G_fatal_error(_("One or more input raster maps not found"));
++      G_fatal_error("%s", _("One or more input raster maps not found"));
+     rname = opt2->answer;
+     outfd = G_open_raster_new(new_name = rname, out_type);
+@@ -149,7 +149,7 @@
+     nrows = G_window_rows();
+     ncols = G_window_cols();
+-    G_verbose_message(_("Percent complete..."));
++    G_verbose_message("%s", _("Percent complete..."));
+     for (row = 0; row < nrows; row++) {
+       G_percent(row, nrows, 2);
+       if (G_get_raster_row(infd[0], presult, row, out_type) < 0)
+--- grass-6.4.3/raster/r.profile/main.c.orig   2011-04-23 11:52:10.000000000 +0200
++++ grass-6.4.3/raster/r.profile/main.c        2014-05-24 07:34:55.396804918 +0200
+@@ -173,15 +173,15 @@
+     }
+     /* Show message giving output format */
+-    G_message(_("Output Format:"));
++    G_message("%s", _("Output Format:"));
+     if (coords == 1)
+-      sprintf(formatbuff,
++      strcpy(formatbuff,
+               _("[Easting] [Northing] [Along Track Dist.(m)] [Elevation]"));
+     else
+-      sprintf(formatbuff, _("[Along Track Dist.(m)] [Elevation]"));
++      strcpy(formatbuff, _("[Along Track Dist.(m)] [Elevation]"));
+     if (clr)
+       strcat(formatbuff, _(" [RGB Color]"));
+-    G_message(formatbuff);
++    G_message("%s", formatbuff);
+     /* Get Profile Start Coords */
+     if (!parm.profile->answer && !parm.i->answer) {
+@@ -206,16 +206,16 @@
+       dist = 0;
+       fprintf(stderr, "\n\n");
+-      fprintf(stderr, _("Use mouse to select Start Point\n"));
++      fputs(_("Use mouse to select Start Point\n"), stderr);
+       R_get_location_with_pointer(&screen_x, &screen_y, &button);
+       e1 = D_d_to_u_col((double)screen_x);
+       n1 = D_d_to_u_row((double)screen_y);
+-      fprintf(stderr, _("\nUse mouse to draw profile line\n"));
+-      fprintf(stderr, _("Buttons:\n"));
+-      fprintf(stderr, _("Left:   Mark next point\n"));
+-      fprintf(stderr, _("Middle: Mark next point\n"));
+-      fprintf(stderr, _("Right:  Finish profile and exit\n\n"));
++      fputs(_("\nUse mouse to draw profile line\n"), stderr);
++      fputs(_("Buttons:\n"), stderr);
++      fputs(_("Left:   Mark next point\n"), stderr);
++      fputs(_("Middle: Mark next point\n"), stderr);
++      fputs(_("Right:  Finish profile and exit\n\n"), stderr);
+       while (button != 3) {
+           R_get_location_with_line((int)(0.5 + D_u_to_d_col(e1)),
+@@ -305,7 +305,7 @@
+     G_message(_("Approx. transect length [%f] m"), LEN);
+     if (!G_point_in_region(e2, n2))
+-      G_warning(_("Endpoint coordinates are outside of current region settings"));
++      G_warning("%s", _("Endpoint coordinates are outside of current region settings"));
+     /* Calculate Azimuth of Line */
+     if (rows == 0 && cols == 0) {
+--- grass-6.4.3/raster/r.profile/input.c.orig  2008-11-25 02:30:38.000000000 +0100
++++ grass-6.4.3/raster/r.profile/input.c       2014-06-04 16:12:08.026348795 +0200
+@@ -26,7 +26,7 @@
+     /* note ebuf and nbuf in main.c (w1 and w2 here) are only 256 chars, we
+        check here to make sure we don't move the pointer past sizeof(buf) */
+     if (strlen(buf) >= 1023)
+-      G_fatal_error(_("One coordinate pair per line, please"));
++      G_fatal_error("%s", _("One coordinate pair per line, please"));
+     b = buf;
+     w1 = word1;
+@@ -43,7 +43,7 @@
+     string_size = strlen(w1);
+     G_debug(5, "strlen w1=%d  [%s]", string_size, w1);
+     if (string_size > 255)
+-      G_fatal_error(_("One coordinate pair per line, please"));
++      G_fatal_error("%s", _("One coordinate pair per line, please"));
+     while (*b == ' ' || *b == '\t' || *b == ',')
+       *blank2++ = *b++;
+@@ -56,7 +56,7 @@
+     string_size = strlen(w2);
+     G_debug(5, "strlen w2=%d  [%s]", string_size, w2);
+     if (string_size > 255)
+-      G_fatal_error(_("One coordinate pair per line, please"));
++      G_fatal_error("%s", _("One coordinate pair per line, please"));
+     /* bug? really = and not ==? */
+     /* not a bug: we are filling "rest" with the remaining fgets buffer. 
+--- grass-6.4.3/raster/r.profile/read_rast.c.orig      2008-11-25 02:30:38.000000000 +0100
++++ grass-6.4.3/raster/r.profile/read_rast.c   2014-06-06 18:31:05.349239992 +0200
+@@ -46,7 +46,7 @@
+                         row);
+       if (outofbounds || G_is_c_null_value(&cell[col]))
+-          sprintf(buf, null_string);
++          strcpy(buf, null_string);
+       else
+           sprintf(buf, "%d", cell[col]);
+@@ -74,7 +74,7 @@
+                         row);
+       if (outofbounds || G_is_f_null_value(&fcell[col]))
+-          sprintf(buf, null_string);
++          strcpy(buf, null_string);
+       else
+           sprintf(buf, "%f", fcell[col]);
+@@ -102,7 +102,7 @@
+                         row);
+       if (outofbounds || G_is_d_null_value(&dcell[col]))
+-          sprintf(buf, null_string);
++          strcpy(buf, null_string);
+       else
+           sprintf(buf, "%f", dcell[col]);
+--- grass-6.4.3/raster/r.proj.seg/readcell.c.orig      2012-10-27 11:52:08.000000000 +0200
++++ grass-6.4.3/raster/r.proj.seg/readcell.c   2014-05-24 07:35:35.513470748 +0200
+@@ -54,13 +54,13 @@
+       G__switch_env();
+       c->fd = open(filename, O_RDWR | O_CREAT | O_EXCL, 0600);
+       if (c->fd < 0)
+-          G_fatal_error(_("Unable to open temporary file"));
++          G_fatal_error("%s", _("Unable to open temporary file"));
+       remove(filename);
+     }
+     else
+       c->fd = -1;
+-    G_important_message(_("Allocating memory and reading input map..."));
++    G_important_message("%s", _("Allocating memory and reading input map..."));
+     G_percent(0, nrows, 5);
+     for (i = 0; i < c->nblocks; i++)
+@@ -78,7 +78,7 @@
+               break;
+           if (G_get_f_raster_row(fdi, &tmpbuf[y * nx * BDIM], row + y) < 0)
+-              G_fatal_error(_("Error reading input"));
++              G_fatal_error("%s", _("Error reading input"));
+       }
+       for (x = 0; x < nx; x++)
+@@ -87,7 +87,7 @@
+                   if (write
+                       (c->fd, &tmpbuf[(y * nx + x) * BDIM],
+                        BDIM * sizeof(FCELL)) < 0)
+-                      G_fatal_error(_("Error writing segment file"));
++                      G_fatal_error("%s", _("Error writing segment file"));
+               }
+               else
+                   memcpy(&c->blocks[BKIDX(c, HI(row), x)][LO(y)][0],
+@@ -114,7 +114,7 @@
+     off_t offset = (off_t) idx * sizeof(FCELL) << L2BSIZE;
+     if (c->fd < 0)
+-      G_fatal_error(_("Internal error: cache miss on fully-cached map"));
++      G_fatal_error("%s", _("Internal error: cache miss on fully-cached map"));
+     if (ref >= 0)
+       c->grid[ref] = NULL;
+@@ -123,10 +123,10 @@
+     c->refs[replace] = idx;
+     if (lseek(c->fd, offset, SEEK_SET) < 0)
+-      G_fatal_error(_("Error seeking on segment file"));
++      G_fatal_error("%s", _("Error seeking on segment file"));
+     if (read(c->fd, p, sizeof(block)) < 0)
+-      G_fatal_error(_("Error writing segment file"));
++      G_fatal_error("%s", _("Error writing segment file"));
+     return p;
+ }
+--- grass-6.4.3/raster/r.proj.seg/main.c.orig  2011-07-16 11:52:05.000000000 +0200
++++ grass-6.4.3/raster/r.proj.seg/main.c       2014-06-04 16:14:51.069678730 +0200
+@@ -248,9 +248,9 @@
+     if (strcmp(inlocation->answer, G_location()) == 0 &&
+         (!indbase->answer || strcmp(indbase->answer, G_gisdbase()) == 0))
+ #if 0
+-      G_fatal_error(_("Input and output locations can not be the same"));
++      G_fatal_error("%s", _("Input and output locations can not be the same"));
+ #else
+-      G_warning(_("Input and output locations are the same"));
++      G_warning("%s", _("Input and output locations are the same"));
+ #endif
+     G_get_window(&outcellhd);
+@@ -260,13 +260,13 @@
+     /* Get projection info for output mapset */
+     if ((out_proj_info = G_get_projinfo()) == NULL)
+-      G_fatal_error(_("Unable to get projection info of output raster map"));
++      G_fatal_error("%s", _("Unable to get projection info of output raster map"));
+     if ((out_unit_info = G_get_projunits()) == NULL)
+-      G_fatal_error(_("Unable to get projection units of output raster map"));
++      G_fatal_error("%s", _("Unable to get projection units of output raster map"));
+     if (pj_get_kv(&oproj, out_proj_info, out_unit_info) < 0)
+-      G_fatal_error(_("Unable to get projection key values of output raster map"));
++      G_fatal_error("%s", _("Unable to get projection key values of output raster map"));
+     /* Change the location           */
+     G__create_alt_env();
+@@ -307,13 +307,13 @@
+     /* Get projection info for input mapset */
+     if ((in_proj_info = G_get_projinfo()) == NULL)
+-      G_fatal_error(_("Unable to get projection info of input map"));
++      G_fatal_error("%s", _("Unable to get projection info of input map"));
+     if ((in_unit_info = G_get_projunits()) == NULL)
+-      G_fatal_error(_("Unable to get projection units of input map"));
++      G_fatal_error("%s", _("Unable to get projection units of input map"));
+     if (pj_get_kv(&iproj, in_proj_info, in_unit_info) < 0)
+-      G_fatal_error(_("Unable to get projection key values of input map"));
++      G_fatal_error("%s", _("Unable to get projection key values of input map"));
+     G_free_key_value(in_proj_info);
+     G_free_key_value(in_unit_info);
+@@ -327,7 +327,7 @@
+     G_set_window(&incellhd);
+     if (G_projection() == PROJECTION_XY)
+-      G_fatal_error(_("Unable to work with unprojected data (xy location)"));
++      G_fatal_error("%s", _("Unable to work with unprojected data (xy location)"));
+     /* Save default borders so we can show them later */
+     inorth = incellhd.north;
+@@ -350,9 +350,9 @@
+           inmap->answer, setname, inlocation->answer);
+       if (pj_do_proj(&iwest, &isouth, &iproj, &oproj) < 0)
+-          G_fatal_error(_("Error in pj_do_proj (projection of input coordinate pair)"));
++          G_fatal_error("%s", _("Error in pj_do_proj (projection of input coordinate pair)"));
+       if (pj_do_proj(&ieast, &inorth, &iproj, &oproj) < 0)
+-          G_fatal_error(_("Error in pj_do_proj (projection of input coordinate pair)"));
++          G_fatal_error("%s", _("Error in pj_do_proj (projection of input coordinate pair)"));
+       G_format_northing(inorth, north_str, curr_proj);
+       G_format_northing(isouth, south_str, curr_proj);
+@@ -435,7 +435,7 @@
+     G_set_window(&outcellhd);
+     G_message(" ");
+-    G_message(_("Input:"));
++    G_message("%s", _("Input:"));
+     G_message(_("Cols: %d (%d)"), incellhd.cols, icols);
+     G_message(_("Rows: %d (%d)"), incellhd.rows, irows);
+     G_message(_("North: %f (%f)"), incellhd.north, inorth);
+@@ -446,7 +446,7 @@
+     G_message(_("NS-res: %f"), incellhd.ns_res);
+     G_message(" ");
+-    G_message(_("Output:"));
++    G_message("%s", _("Output:"));
+     G_message(_("Cols: %d (%d)"), outcellhd.cols, ocols);
+     G_message(_("Rows: %d (%d)"), outcellhd.rows, orows);
+     G_message(_("North: %f (%f)"), outcellhd.north, onorth);
+@@ -482,7 +482,7 @@
+     xcoord1 = xcoord2 = outcellhd.west + (outcellhd.ew_res / 2);
+      /**/ ycoord1 = ycoord2 = outcellhd.north - (outcellhd.ns_res / 2);
+-     /**/ G_important_message(_("Projecting..."));
++     /**/ G_important_message("%s", _("Projecting..."));
+     G_percent(0, outcellhd.rows, 2);
+     for (row = 0; row < outcellhd.rows; row++) {
+--- grass-6.4.3/raster/r.proj.seg/bordwalk.c.orig      2011-07-16 11:52:05.000000000 +0200
++++ grass-6.4.3/raster/r.proj.seg/bordwalk.c   2014-06-06 22:51:35.882247538 +0200
+@@ -179,7 +179,7 @@
+     if ((xmin > to_hd->east) || (xmax < to_hd->west)
+       || (ymin > to_hd->north) || (ymax < to_hd->south))
+-      G_fatal_error(_("Input raster map is outside current region"));
++      G_fatal_error("%s", _("Input raster map is outside current region"));
+     if (xmin < to_hd->west + to_hd->ew_res / 2)
+       xmin = to_hd->west + to_hd->ew_res / 2;
+--- grass-6.4.3/raster/r.quant/read_rules.c.orig       2012-09-01 11:52:23.000000000 +0200
++++ grass-6.4.3/raster/r.quant/read_rules.c    2014-05-24 07:36:49.850135866 +0200
+@@ -12,20 +12,17 @@
+     struct Range range;
+     CELL tmp_min, tmp_max;
+     DCELL tmp_dmin, tmp_dmax;
+-    char buff[1024];
+     int i;
+     /* read the fpranges and ranges of all input maps */
+     for (i = 0; i < noi; i++) {
+       if (G_read_fp_range(name[i], mapset[i], &drange) <= 0) {
+-          sprintf(buff, "Can't read f_range for map %s", name[i]);
+-          G_fatal_error(buff);
++          G_fatal_error("Can't read f_range for map %s", name[i]);
+       }
+       G_get_fp_range_min_max(&drange, &tmp_dmin, &tmp_dmax);
+       if (G_read_range(name[i], mapset[i], &range) <= 0) {
+-          sprintf(buff, "Can't read range for map %s", name[i]);
+-          G_fatal_error(buff);
++          G_fatal_error("Can't read range for map %s", name[i]);
+       }
+       G_get_range_min_max(&range, &tmp_min, &tmp_max);
+       if (!i || tmp_max > old_max || G_is_c_null_value(&old_max))
+@@ -46,7 +43,7 @@
+     char buff[1024], buff2[300];
+     if (G_is_d_null_value(&old_dmin) || G_is_d_null_value(&old_dmax))
+-      G_message(_("Old data range is empty"));
++      G_message("%s", _("Old data range is empty"));
+     else {
+       sprintf(buff, "%.10f", old_dmin);
+       sprintf(buff2, "%.10f", old_dmax);
+@@ -55,7 +52,7 @@
+       G_message(_("Old data range is %s to %s"), buff, buff2);
+     }
+     if (G_is_c_null_value(&old_min) || G_is_c_null_value(&old_max))
+-      G_message(_("Old integer data range is empty"));
++      G_message("%s", _("Old integer data range is empty"));
+     else
+       G_message(_("Old integer data range is %d to %d"),
+                 (int)old_min, (int)old_max);
+--- grass-6.4.3/raster/r.quant/main.c.orig     2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/raster/r.quant/main.c  2014-06-04 16:19:56.546339030 +0200
+@@ -24,7 +24,6 @@
+ int main(int argc, char *argv[])
+ {
+-    char buf[1024];
+     struct GModule *module;
+     struct Option *input, *basemap, *fprange, *range;
+     struct Flag *trunc, *rnd;
+@@ -93,14 +92,12 @@
+       name[noi] = G_store(input->answers[noi]);
+       mapset[noi] = G_find_cell2(name[noi], "");
+       if (mapset[noi] == NULL) {
+-          sprintf(buf, "%s - not found", name[noi]);
+-          G_fatal_error(buf);
++          G_fatal_error("%s - not found", name[noi]);
+       }
+       if (G_raster_map_type(name[noi], mapset[noi]) == CELL_TYPE) {
+-          sprintf(buf, "%s is integer map, it can't be quantized",
++          G_fatal_error("%s is integer map, it can't be quantized",
+                   name[noi]);
+-          G_fatal_error(buf);
+       }
+     }
+@@ -108,12 +105,12 @@
+     /* now figure out what new quant rules to write */
+     if (truncate) {
+-      G_message(_("Truncating..."));
++      G_message("%s", _("Truncating..."));
+       G_quant_truncate(&quant_struct);
+     }
+     else if (round) {
+-      G_message(_("Rounding..."));
++      G_message("%s", _("Rounding..."));
+       G_quant_round(&quant_struct);
+     }
+@@ -122,20 +119,17 @@
+     {
+       basemapset = G_find_cell2(basename, "");
+       if (basemapset == NULL) {
+-          sprintf(buf, "%s - not found", basename);
+-          G_fatal_error(buf);
++          G_fatal_error("%s - not found", basename);
+       }
+       if (G_raster_map_type(basename, basemapset) == CELL_TYPE) {
+-          sprintf(buf, "%s is integer map, it can't be used as basemap",
++          G_fatal_error("%s is integer map, it can't be used as basemap",
+                   basename);
+-          G_fatal_error(buf);
+       }
+       if (G_read_quant(basename, basemapset, &quant_struct) <= 0) {
+-          sprintf(buf, "Can't read quant rules for basemap %s! Exiting.",
++          G_fatal_error("Can't read quant rules for basemap %s! Exiting.",
+                   basename);
+-          G_fatal_error(buf);
+       }
+     }
+@@ -151,7 +145,7 @@
+       if (!read_rules()) {
+           if (isatty(0))
+-              G_message(_("No rules specified. Quant table(s) not changed."));
++              G_message("%s", _("No rules specified. Quant table(s) not changed."));
+           else
+               G_fatal_error("No rules specified");
+       }
+--- grass-6.4.3/raster/r.quantile/main.c.orig  2011-06-04 11:52:09.000000000 +0200
++++ grass-6.4.3/raster/r.quantile/main.c       2014-05-24 07:37:18.866801927 +0200
+@@ -59,7 +59,7 @@
+     DCELL *inbuf = G_allocate_d_raster_buf();
+     int row, col;
+-    G_message(_("Computing histogram"));
++    G_message("%s", _("Computing histogram"));
+     total = 0;
+@@ -93,7 +93,7 @@
+     unsigned long accum = 0;
+     int quant = 0;
+-    G_message(_("Computing bins"));
++    G_message("%s", _("Computing bins"));
+     num_values = 0;
+     next = get_quantile(quant);
+@@ -130,7 +130,7 @@
+     DCELL *inbuf = G_allocate_d_raster_buf();
+     int row, col;
+-    G_message(_("Binning data"));
++    G_message("%s", _("Binning data"));
+     for (row = 0; row < rows; row++) {
+       G_get_d_raster_row(infile, inbuf, row);
+@@ -175,7 +175,7 @@
+ {
+     int bin;
+-    G_message(_("Sorting bins"));
++    G_message("%s", _("Sorting bins"));
+     for (bin = 0; bin < num_bins; bin++) {
+       struct bin *b = &bins[bin];
+@@ -185,7 +185,7 @@
+     }
+     G_percent(bin, num_bins, 2);
+-    G_message(_("Computing quantiles"));
++    G_message("%s", _("Computing quantiles"));
+ }
+ static void compute_quantiles(int recode)
+--- grass-6.4.3/raster/r.random/main.c.orig    2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.random/main.c 2014-05-24 07:37:33.846801615 +0200
+@@ -185,7 +185,7 @@
+       }
+       if (targets <= 0)
+-          G_fatal_error(_("There are no valid locations in the current region"));
++          G_fatal_error("%s", _("There are no valid locations in the current region"));
+       myState.nRand = targets;
+     }
+--- grass-6.4.3/raster/r.random/random.c.orig  2010-09-25 11:52:06.000000000 +0200
++++ grass-6.4.3/raster/r.random/random.c       2014-06-04 16:20:29.736338338 +0200
+@@ -97,7 +97,7 @@
+           db_set_column_sqltype(column, DB_SQL_TYPE_DOUBLE_PRECISION);
+       }
+       if (db_create_table(driver, table) != DB_OK)
+-          G_warning(_("Cannot create new table"));
++          G_warning("%s", _("Cannot create new table"));
+       db_begin_transaction(driver);
+--- grass-6.4.3/raster/r.random/count.c.orig   2008-11-25 02:30:44.000000000 +0100
++++ grass-6.4.3/raster/r.random/count.c        2014-06-06 22:51:51.675580542 +0200
+@@ -71,7 +71,7 @@
+       set_min(NULL, 0, &theState->cmin);
+       set_max(NULL, 0, &theState->cmax);
+     }
+-    G_message(_("Collecting Stats..."));
++    G_message("%s", _("Collecting Stats..."));
+     for (row = 0; row < nrows; row++) {
+       if (G_get_raster_row(theState->fd_old, theState->buf.data.v,
+                            row, theState->buf.type) < 0)
+@@ -128,7 +128,7 @@
+           *theState->cnulls.data.d = floor(*theState->cmin.data.d - 1);
+       break;
+     default:                  /* Huh? */
+-      G_fatal_error(_("Programmer error in get_stats/switch"));
++      G_fatal_error("%s", _("Programmer error in get_stats/switch"));
+     }
+ }                             /* get_stats() */
+--- grass-6.4.3/raster/r.random.cells/init.c.orig      2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.random.cells/init.c   2014-05-24 07:37:50.813467928 +0200
+@@ -93,7 +93,7 @@
+     
+     sscanf(Distance->answer, "%lf", &MaxDist);
+     if (MaxDist < 0.0)
+-      G_fatal_error(_("Distance must be >= 0.0"));
++      G_fatal_error("%s", _("Distance must be >= 0.0"));
+     
+     G_debug(3, "(MaxDist):%.12lf", MaxDist);
+     MaxDistSq = MaxDist * MaxDist;
+--- grass-6.4.3/raster/r.random.surface/init.c.orig    2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.random.surface/init.c 2014-05-24 07:38:52.096799984 +0200
+@@ -106,7 +106,7 @@
+     /* please, remove before GRASS 7 released */
+     if (Verbose->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+     
+@@ -180,7 +180,7 @@
+       NumMaps++;
+     }
+     if (NumMaps == 0)
+-      G_fatal_error(_("Output raster map required"));
++      G_fatal_error("%s", _("Output raster map required"));
+     Theory = 0;
+     /*
+@@ -207,7 +207,7 @@
+               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)"),
+@@ -216,7 +216,7 @@
+                   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 */
+@@ -327,7 +327,7 @@
+     }
+     if (NumDist > 1 && NumDist < NumFilters)
+-      G_fatal_error(_("Must have a distance value for each filter"));
++      G_fatal_error("%s", _("Must have a distance value for each filter"));
+     
+     if (NumDist == 0) {
+       AllFilters[0].MaxDist = MinRes / 4.0;
+@@ -359,7 +359,7 @@
+     }
+     if (NumExp > 1 && NumExp < NumFilters)
+-      G_fatal_error(_("Must have a exponent value for each filter"));
++      G_fatal_error("%s", _("Must have a exponent value for each filter"));
+     if (NumWeight > 0) {
+       sprintf(String, " flat=");
+@@ -376,7 +376,7 @@
+     }
+     if (NumWeight > 1 && NumWeight < NumFilters)
+-      G_fatal_error(_("Must have a weight value for each filter"));
++      G_fatal_error("%s", _("Must have a weight value for each filter"));
+     
+     if (NumExp == 1) {
+       for (NumExp = 1; NumExp < NumFilters; NumExp++)
+--- grass-6.4.3/raster/r.reclass/reclass.c.orig        2012-09-01 11:52:23.000000000 +0200
++++ grass-6.4.3/raster/r.reclass/reclass.c     2014-05-24 07:39:14.596799515 +0200
+@@ -46,7 +46,7 @@
+     num = new->max - new->min + 1;
+     /* make sure don't overflow int */
+     if (num != (int)num)
+-      G_fatal_error(_("Too many categories"));
++      G_fatal_error("%s", _("Too many categories"));
+     new->num = num;
+     new->table = (CELL *) G_calloc(new->num, sizeof(CELL));
+@@ -106,7 +106,7 @@
+     /* make sure don't overflow int */
+     if (num != (int)num)
+-      G_fatal_error(_("Too many categories"));
++      G_fatal_error("%s", _("Too many categories"));
+     rec->num = num;
+     rec->table = G_calloc(rec->num, sizeof(CELL));
+--- grass-6.4.3/raster/r.reclass/main.c.orig   2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.reclass/main.c        2014-06-04 16:23:53.929667415 +0200
+@@ -82,7 +82,7 @@
+     if (strcmp(parm.input->answer, parm.output->answer) == 0 &&
+       strcmp(old_mapset, G_mapset()) == 0)
+-      G_fatal_error(_("Input map can NOT be the same as output map"));
++      G_fatal_error("%s", _("Input map can NOT be the same as output map"));
+     srcfp = stdin;
+     if (parm.rules->answer) {
+@@ -101,8 +101,8 @@
+     any = 0;
+     if (tty) {
+-      fprintf(stdout,
+-              _("Enter rule(s), \"end\" when done, \"help\" if you need it\n"));
++      fputs(
++              _("Enter rule(s), \"end\" when done, \"help\" if you need it\n"), stdout);
+       if (map_type == FCELL_TYPE)
+           fprintf(stdout, _("Data range is %.7g to %.7g\n"),
+                   (double)min, (double)max);
+@@ -118,12 +118,11 @@
+       switch (parse(buf, &rules, &tail, &cats)) {
+       case -1:
+           if (tty) {
+-              fprintf(stderr, _("Illegal reclass rule -"));
+-              fprintf(stderr, _(" ignored\n"));
++              fputs(_("Illegal reclass rule -"), stderr);
++              fputs(_(" ignored\n"), stderr);
+           }
+           else {
+-              strcat(buf, _(" - invalid reclass rule"));
+-              G_fatal_error(buf);
++              G_fatal_error("%s", _(" - invalid reclass rule"));
+           }
+           break;
+@@ -141,7 +140,7 @@
+           G_fatal_error(_("No rules specified. Raster map <%s> not created"),
+                         parm.output->answer);
+       else
+-          G_fatal_error(_("No rules specified"));
++          G_fatal_error("%s", _("No rules specified"));
+     }
+     reclass(parm.input->answer, old_mapset, parm.output->answer, rules, &cats,
+--- grass-6.4.3/raster/r.reclass/parse.c.orig  2008-11-25 02:30:37.000000000 +0100
++++ grass-6.4.3/raster/r.reclass/parse.c       2014-06-06 22:52:33.735579666 +0200
+@@ -37,7 +37,7 @@
+       case 0:
+           save = cur;
+           if (!strncmp(cur, "help", 4)) {     /* help text */
+-              fprintf(stdout, _("Enter a rule in one of these formats:\n"));
++              fputs(_("Enter a rule in one of these formats:\n"), stdout);
+               fprintf(stdout, "1 3 5      = 1   %s\n", _("poor quality"));
+               fprintf(stdout, "1 thru 10  = 1\n");
+               fprintf(stdout, "20 thru 50 = 2   %s\n", _("medium quality"));
+@@ -55,7 +55,7 @@
+           if (!scan_value(&v))
+               return -1;
+           if (G_is_c_null_value(&v)) {
+-              G_warning(_("Can't have null on the left-hand side of the rule"));
++              G_warning("%s", _("Can't have null on the left-hand side of the rule"));
+               return -1;
+           }
+           state = 1;
+@@ -84,7 +84,7 @@
+           if (strncmp(cur, "thru", 4) != 0)
+               continue;
+           if (last_null) {
+-              G_warning(_("Can't have null on the right-hand side of the rule"));
++              G_warning("%s", _("Can't have null on the right-hand side of the rule"));
+               return -1;
+           }
+           cur += 4;
+@@ -96,7 +96,7 @@
+           if (!scan_value(&v))
+               return -1;
+           if (G_is_c_null_value(&v)) {
+-              G_warning(_("Can't have null on the right-hand side of the rule"));
++              G_warning("%s", _("Can't have null on the right-hand side of the rule"));
+               return -1;
+           }
+--- grass-6.4.3/raster/r.recode/read_rules.c.orig      2009-05-09 11:52:27.000000000 +0200
++++ grass-6.4.3/raster/r.recode/read_rules.c   2014-05-24 07:39:50.273465438 +0200
+@@ -60,7 +60,7 @@
+     if (isatty(fileno(fp))) {
+       report_range();
+-      G_message(_("Enter the rule or 'help' for the format description"));
++      G_message("%s", _("Enter the rule or 'help' for the format description"));
+     }
+     G_fpreclass_init(&rcl_struct);
+     for (line = 1;; line++) {
+@@ -84,14 +84,14 @@
+           break;
+       if (strcmp(buf, "help") == 0) {
+-          G_message(_("Enter a rule in one of these formats:"));
++          G_message("%s", _("Enter a rule in one of these formats:"));
+           G_message(" ");
+-          G_message(_("old_low:old_high:new_low:new_high"));
+-          G_message(_("old_low:old_high:new_val      (i.e. new_high == new_low)"));
+-          G_message(_("*:old_val:new_val             (interval [inf, old_val])"));
+-          G_message(_("old_val:*:new_val             (interval [old_val, inf])"));
++          G_message("%s", _("old_low:old_high:new_low:new_high"));
++          G_message("%s", _("old_low:old_high:new_val      (i.e. new_high == new_low)"));
++          G_message("%s", _("*:old_val:new_val             (interval [inf, old_val])"));
++          G_message("%s", _("old_val:*:new_val             (interval [old_val, inf])"));
+           G_message(" ");
+-          G_message(_("When finished type \"end\"."));
++          G_message("%s", _("When finished type \"end\"."));
+           continue;
+       }
+--- grass-6.4.3/raster/r.recode/main.c.orig    2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.recode/main.c 2014-06-04 16:35:07.326320046 +0200
+@@ -84,7 +84,7 @@
+       G_fatal_error(_("<%s> is an illegal file name"), result);
+     if (strcmp(name, result) == 0 && strcmp(mapset, G_mapset()) == 0)
+-      G_fatal_error(_("Input map can NOT be the same as output map"));
++      G_fatal_error("%s", _("Input map can NOT be the same as output map"));
+     srcfp = stdin;
+     if (parm.rules->answer && strcmp("-", parm.rules->answer) != 0) {
+@@ -99,7 +99,7 @@
+           G_fatal_error(_("No rules specified. Raster map <%s> not created."),
+                         result);
+       else
+-          G_fatal_error(_("No rules specified"));
++          G_fatal_error("%s", _("No rules specified"));
+     }
+     no_mask = 0;
+--- grass-6.4.3/raster/r.report/stats.c.orig   2008-11-25 02:30:44.000000000 +0100
++++ grass-6.4.3/raster/r.report/stats.c        2014-06-06 22:52:50.952245974 +0200
+@@ -96,5 +96,5 @@
+ {
+     if (stats_flag == EVERYTHING)
+       unlink(stats_file);
+-    G_fatal_error(_("Problem reading r.stats output"));
++    G_fatal_error("%s", _("Problem reading r.stats output"));
+ }
+--- grass-6.4.3/raster/r.region/main.c.orig    2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/raster/r.region/main.c 2014-05-24 07:43:03.586794742 +0200
+@@ -365,7 +365,7 @@
+     cellhd.west = window.west;
+     if (G_put_cellhd(parm.map->answer, &cellhd) < 0)
+-      G_fatal_error(_("Unable to update boundaries"));
++      G_fatal_error("%s", _("Unable to update boundaries"));
+     G_done_msg(" ");
+--- grass-6.4.3/raster/r.report/label.c.orig   2012-08-25 11:52:04.000000000 +0200
++++ grass-6.4.3/raster/r.report/label.c        2014-05-24 07:43:18.786794426 +0200
+@@ -10,7 +10,7 @@
+     int i;
+     if (len <= 0) {
+-      G_warning(_("Page width is too small"));
++      G_warning("%s", _("Page width is too small"));
+       return NULL;
+     }
+--- grass-6.4.3/raster/r.report/parse.c.orig   2008-11-25 02:30:44.000000000 +0100
++++ grass-6.4.3/raster/r.report/parse.c        2014-06-04 16:35:26.086319657 +0200
+@@ -167,21 +167,21 @@
+     sscanf(parms.nsteps->answer, "%d", &nsteps);
+     if (nsteps <= 0) {
+-      G_warning(_("nsteps has to be > 0; using nsteps=255"));
++      G_warning("%s", _("nsteps has to be > 0; using nsteps=255"));
+       nsteps = 255;
+     }
+     if (parms.pl->answer) {
+       if (sscanf(parms.pl->answer, "%d", &page_length) != 1 ||
+           page_length < 0) {
+-          G_fatal_error(_("Illegal page length"));
++          G_fatal_error("%s", _("Illegal page length"));
+       }
+     }
+     if (parms.pw->answer) {
+       if (sscanf(parms.pw->answer, "%d", &page_width) != 1 ||
+           page_width < 1) {
+-          G_fatal_error(_("Illegal page width"));
++          G_fatal_error("%s", _("Illegal page width"));
+       }
+     }
+     if (parms.outfile->answer) {
+--- grass-6.4.3/raster/r.resample/main.c.orig  2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.resample/main.c       2014-05-24 07:43:45.973460526 +0200
+@@ -87,7 +87,7 @@
+     /* please, remove before GRASS 7 released */
+     if (flag1->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+@@ -134,7 +134,7 @@
+     if (outfd < 0)
+       exit(EXIT_FAILURE);
+-    G_message(_("Percent complete: "));
++    G_message("%s", _("Percent complete: "));
+     for (row = 0; row < nrows; row++) {
+       G_percent(row, nrows, 2);
+@@ -162,7 +162,7 @@
+       rast1 = rast;
+       rast2 = G_incr_void_ptr(rast, G_raster_size(data_type));
+-      G_message(_("Creating new cats file..."));
++      G_message("%s", _("Creating new cats file..."));
+       while (G_get_next_marked_raster_cat(&cats,
+                                           rast1, rast2, &count, data_type))
+           G_set_raster_cat(rast1, rast2,
+--- grass-6.4.3/raster/r.resamp.rst/main.c.orig        2011-08-20 11:52:10.000000000 +0200
++++ grass-6.4.3/raster/r.resamp.rst/main.c     2014-05-24 07:46:03.466790993 +0200
+@@ -290,7 +290,7 @@
+       exit(EXIT_FAILURE);
+     if (G_get_set_window(&winhd) == -1)
+-      G_fatal_error(_("Retrieving and setting region failed"));
++      G_fatal_error("%s", _("Retrieving and setting region failed"));
+     inp_ew_res = winhd.ew_res;
+     inp_ns_res = winhd.ns_res;
+@@ -318,29 +318,29 @@
+     ertre = 0.1;
+     if (!G_scan_resolution(parm.res_ew->answer, &ew_res, winhd.proj))
+-      G_fatal_error(_("Cannot read ew_res value"));
++      G_fatal_error("%s", _("Cannot read ew_res value"));
+     if (!G_scan_resolution(parm.res_ns->answer, &ns_res, winhd.proj))
+-      G_fatal_error(_("Cannot read ns_res value"));
++      G_fatal_error("%s", _("Cannot read ns_res value"));
+     if (sscanf(parm.fi->answer, "%lf", &fi) != 1)
+-      G_fatal_error(_("Invalid value for tension"));
++      G_fatal_error("%s", _("Invalid value for tension"));
+     if (sscanf(parm.zmult->answer, "%lf", &zmult) != 1)
+-      G_fatal_error(_("Invalid value for zmult"));
++      G_fatal_error("%s", _("Invalid value for zmult"));
+     if (sscanf(parm.overlap->answer, "%d", &overlap) != 1)
+-      G_fatal_error(_("Invalid value for overlap"));
++      G_fatal_error("%s", _("Invalid value for overlap"));
+     if (parm.theta->answer) {
+       if (sscanf(parm.theta->answer, "%lf", &theta) != 1)
+-          G_fatal_error(_("Invalid value for theta"));
++          G_fatal_error("%s", _("Invalid value for theta"));
+     }
+     if (parm.scalex->answer) {
+       if (sscanf(parm.scalex->answer, "%lf", &scalex) != 1)
+-          G_fatal_error(_("Invalid value for scalex"));
++          G_fatal_error("%s", _("Invalid value for scalex"));
+       if (!parm.theta->answer)
+-          G_fatal_error(_("When using anisotropy both theta and scalex must be specified"));
++          G_fatal_error("%s", _("When using anisotropy both theta and scalex must be specified"));
+     }
+     /*
+@@ -363,29 +363,29 @@
+     az = G_alloc_vector(nsizc + 1);
+     if (!az)
+-      G_fatal_error(_("Not enough memory for az"));
++      G_fatal_error("%s", _("Not enough memory for az"));
+     if (cond1) {
+       adx = G_alloc_vector(nsizc + 1);
+       if (!adx)
+-          G_fatal_error(_("Not enough memory for adx"));
++          G_fatal_error("%s", _("Not enough memory for adx"));
+       ady = G_alloc_vector(nsizc + 1);
+       if (!ady)
+-          G_fatal_error(_("Not enough memory for ady"));
++          G_fatal_error("%s", _("Not enough memory for ady"));
+       if (cond2) {
+           adxx = G_alloc_vector(nsizc + 1);
+           if (!adxx)
+-              G_fatal_error(_("Not enough memory for adxx"));
++              G_fatal_error("%s", _("Not enough memory for adxx"));
+           adyy = G_alloc_vector(nsizc + 1);
+           if (!adyy)
+-              G_fatal_error(_("Not enough memory for adyy"));
++              G_fatal_error("%s", _("Not enough memory for adyy"));
+           adxy = G_alloc_vector(nsizc + 1);
+           if (!adxy)
+-              G_fatal_error(_("Not enough memory for adxy"));
++              G_fatal_error("%s", _("Not enough memory for adxy"));
+       }
+     }
+     mapset = NULL;
+@@ -413,7 +413,7 @@
+       fcellmin = (float)cellmin;
+       if (G_is_f_null_value(&fcellmin) || fcellmin < 0.0)
+-          G_fatal_error(_("Smoothing values can not be negative or NULL"));
++          G_fatal_error("%s", _("Smoothing values can not be negative or NULL"));
+     }
+     mapset = NULL;
+@@ -428,7 +428,7 @@
+       G_fatal_error(_("[%s]: Cannot read map header"), input);
+     if ((winhd.ew_res != inphd.ew_res) || (winhd.ns_res != inphd.ns_res))
+-      G_fatal_error(_("Input map resolution differs from current region resolution!"));
++      G_fatal_error("%s", _("Input map resolution differs from current region resolution!"));
+     if ((fdinp = G_open_cell_old(input, mapset)) < 0)
+       G_fatal_error(_("Unable to open raster map <%s>"), input);
+@@ -448,7 +448,7 @@
+     if (mcurv != NULL)
+       sdisk += disk;
+-    G_message(_("Processing all selected output files will require"));
++    G_message("%s", _("Processing all selected output files will require"));
+     G_message(_("%d bytes of disk space for temp files."), sdisk);
+@@ -484,7 +484,7 @@
+     fcellmin = (float)cellmin;
+     if (G_is_f_null_value(&fcellmin))
+-      G_fatal_error(_("Maximum value of a raster map is NULL."));
++      G_fatal_error("%s", _("Maximum value of a raster map is NULL."));
+     zmin = (double)cellmin *zmult;
+     zmax = (double)cellmax *zmult;
+@@ -512,19 +512,19 @@
+                   IL_check_at_points_2d,
+                   IL_secpar_loop_2d, IL_crst, IL_crstg, IL_write_temp_2d);
+-    G_message(_("Temporarily changing the region to desired resolution ..."));
++    G_message("%s", _("Temporarily changing the region to desired resolution ..."));
+     if (G_set_window(&outhd) < 0)
+       G_fatal_error("Cannot set region to output region!");
+     bitmask = IL_create_bitmask(&params);
+     /* change region to initial region */
+-    G_message(_("Changing back to the original region ..."));
++    G_message("%s", _("Changing back to the original region ..."));
+     if (G_set_window(&winhd) < 0)
+-      G_fatal_error(_("Cannot set region to back to the initial region !!!"));
++      G_fatal_error("%s", _("Cannot set region to back to the initial region !!!"));
+     ertot = 0.;
+     cursegm = 0;
+-    G_message(_("Percent complete: "));
++    G_message("%s", _("Percent complete: "));
+     NPOINT =
+@@ -604,7 +604,7 @@
+     zero_array_cell = (FCELL *) G_malloc(sizeof(FCELL) * nsizc);
+     if (!zero_array_cell)
+-      G_fatal_error(_("Not enough memory for zero_array_cell"));
++      G_fatal_error("%s", _("Not enough memory for zero_array_cell"));
+     for (i = 0; i < nsizc; i++) {
+       zero_array_cell[i] = (FCELL) 0;
+@@ -718,5 +718,5 @@
+       fclose(Tmp_fd_xy);
+       unlink(Tmp_file_xy);
+     }
+-    G_fatal_error(str);
++    G_fatal_error("%s", str);
+ }
+--- grass-6.4.3/raster/r.rescale/main.c.orig   2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.rescale/main.c        2014-05-24 07:52:23.273449744 +0200
+@@ -100,7 +100,7 @@
+     /* please, remove before GRASS 7 released */
+     if (flag.quiet->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+@@ -109,12 +109,10 @@
+     mapset = G_find_cell(old_name, "");
+     if (mapset == NULL) {
+-      sprintf(buf, "%s - not found\n", old_name);
+-      G_fatal_error(buf);
++      G_fatal_error("%s - not found\n", old_name);
+     }
+     if (G_legal_filename(new_name) < 0) {
+-      sprintf(buf, "%s - illegal map name\n", new_name);
+-      G_fatal_error(buf);
++      G_fatal_error("%s - illegal map name\n", new_name);
+     }
+     if (parm.from->answer) {
+--- grass-6.4.3/raster/r.rescale.eq/main.c.orig        2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.rescale.eq/main.c     2014-05-24 07:53:20.633448548 +0200
+@@ -104,7 +104,7 @@
+     /* please, remove before GRASS 7 released */
+     if (flag.quiet->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+@@ -114,12 +114,10 @@
+     mapset = G_find_cell(old_name, "");
+     if (mapset == NULL) {
+-      sprintf(buf, "%s - not found\n", old_name);
+-      G_fatal_error(buf);
++      G_fatal_error("%s - not found\n", old_name);
+     }
+     if (G_legal_filename(new_name) < 0) {
+-      sprintf(buf, "%s - illegal map name\n", new_name);
+-      G_fatal_error(buf);
++      G_fatal_error("%s - illegal map name\n", new_name);
+     }
+     get_stats(old_name, mapset, &statf);
+--- grass-6.4.3/raster/r.series/main.c.orig    2012-09-01 11:52:23.000000000 +0200
++++ grass-6.4.3/raster/r.series/main.c 2014-05-24 07:54:32.076780392 +0200
+@@ -185,7 +185,7 @@
+     /* please, remove before GRASS 7 released */
+     if (flag.quiet->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+@@ -199,7 +199,7 @@
+     num_inputs = i;
+     if (num_inputs < 1)
+-      G_fatal_error(_("No input raster map(s) specified"));
++      G_fatal_error("%s", _("No input raster map(s) specified"));
+     inputs = G_malloc(num_inputs * sizeof(struct input));
+@@ -225,7 +225,7 @@
+     for (i = 0; parm.method->answers[i]; i++) ;
+     if (num_outputs != i)
+-      G_fatal_error(_("output= and method= must have the same number of values"));
++      G_fatal_error("%s", _("output= and method= must have the same number of values"));
+     outputs = G_calloc(num_outputs, sizeof(struct output));
+@@ -258,7 +258,7 @@
+     ncols = G_window_cols();
+     /* process the data */
+-    G_verbose_message(_("Percent complete..."));
++    G_verbose_message("%s", _("Percent complete..."));
+     for (row = 0; row < nrows; row++) {
+       G_percent(row, nrows, 2);
+--- grass-6.4.3/raster/r.slope.aspect/main.c.orig      2012-09-01 11:52:23.000000000 +0200
++++ grass-6.4.3/raster/r.slope.aspect/main.c   2014-05-24 07:54:59.106779829 +0200
+@@ -298,7 +298,7 @@
+     /* please, remove before GRASS 7 released */
+     if (flag.q->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+@@ -565,7 +565,7 @@
+     else
+       G_get_d_raster_row_nomask(elevation_fd, elev_cell[2], 1);
+-    G_verbose_message(_("Percent complete..."));
++    G_verbose_message("%s", _("Percent complete..."));
+     for (row = 2; row < nrows; row++) {
+       /*  if projection is Lat/Lon, recalculate  V and H   */
+--- grass-6.4.3/raster/r.statistics/o_adev.c.orig      2008-11-25 02:30:40.000000000 +0100
++++ grass-6.4.3/raster/r.statistics/o_adev.c   2014-05-24 07:55:20.220112722 +0200
+@@ -94,7 +94,7 @@
+     int i;
+     if (n < 1) {
+-      G_warning(_("o_adev: No data in array"));
++      G_warning("%s", _("o_adev: No data in array"));
+       return (1);
+     }
+--- grass-6.4.3/raster/r.statistics/o_sdev.c.orig      2008-11-25 02:30:40.000000000 +0100
++++ grass-6.4.3/raster/r.statistics/o_sdev.c   2014-06-04 16:35:54.332985734 +0200
+@@ -97,7 +97,7 @@
+     int i;
+     if (n < 1) {
+-      G_warning(_("o_var: No data in array"));
++      G_warning("%s", _("o_var: No data in array"));
+       return (1);
+     }
+--- grass-6.4.3/raster/r.statistics/main.c.orig        2008-11-25 02:30:40.000000000 +0100
++++ grass-6.4.3/raster/r.statistics/main.c     2014-06-06 22:53:43.602244876 +0200
+@@ -79,13 +79,13 @@
+       G_fatal_error(_("Raster map <%s> not found"), basemap->answer);
+     if (G_raster_map_is_fp(basemap->answer, mapset) != 0)
+-      G_fatal_error(_("This module currently only works for integer (CELL) maps"));
++      G_fatal_error("%s", _("This module currently only works for integer (CELL) maps"));
+     if ((mapset = G_find_cell2(covermap->answer, "")) == 0)
+       G_fatal_error(_("Raster map <%s> not found"), covermap->answer);
+     if (G_raster_map_is_fp(covermap->answer, mapset) != 0)
+-      G_fatal_error(_("This module currently only works for integer (CELL) maps"));
++      G_fatal_error("%s", _("This module currently only works for integer (CELL) maps"));
+     if (G_read_cats(covermap->answer, mapset, &cats) < 0) {
+       G_fatal_error(_("Unable to read category file of raster map <%s@%s>"),
+@@ -174,7 +174,7 @@
+       break;
+     default:
+-      G_fatal_error(_("Not yet implemented!"));
++      G_fatal_error("%s", _("Not yet implemented!"));
+     }
+     return 0;
+--- grass-6.4.3/raster/r.statistics/o_skew.c.orig      2008-11-25 02:30:40.000000000 +0100
++++ grass-6.4.3/raster/r.statistics/o_skew.c   2014-06-07 22:26:12.480478445 +0200
+@@ -94,7 +94,7 @@
+     int i;
+     if (n < 1) {
+-      G_warning(_("o_skew: No data in array"));
++      G_warning("%s", _("o_skew: No data in array"));
+       return (1);
+     }
+--- grass-6.4.3/raster/r.statistics/o_kurt.c.orig      2008-11-25 02:30:40.000000000 +0100
++++ grass-6.4.3/raster/r.statistics/o_kurt.c   2014-06-08 09:00:13.449685552 +0200
+@@ -93,7 +93,7 @@
+     int i;
+     if (n < 1) {
+-      G_warning(_("o_kurto: No data in array"));
++      G_warning("%s", _("o_kurto: No data in array"));
+       return (1);
+     }
+--- grass-6.4.3/raster/r.statistics/read_stats.c.orig  2008-11-25 02:30:40.000000000 +0100
++++ grass-6.4.3/raster/r.statistics/read_stats.c       2014-06-08 10:15:09.402925174 +0200
+@@ -17,7 +17,7 @@
+       return 1;
+     }
+-    G_fatal_error(_("Reading r.stats output"));
++    G_fatal_error("%s", _("Reading r.stats output"));
+     return -1;
+ }
+--- grass-6.4.3/raster/r.statistics/o_var.c.orig       2008-11-25 02:30:40.000000000 +0100
++++ grass-6.4.3/raster/r.statistics/o_var.c    2014-06-08 10:54:18.492876213 +0200
+@@ -97,7 +97,7 @@
+     int i;
+     if (n < 1) {
+-      G_warning(_("o_var: No data in array"));
++      G_warning("%s", _("o_var: No data in array"));
+       return (1);
+     }
+--- grass-6.4.3/raster/r.stats/main.c.orig     2009-06-06 11:52:38.000000000 +0200
++++ grass-6.4.3/raster/r.stats/main.c  2014-05-24 07:55:36.093445725 +0200
+@@ -258,7 +258,7 @@
+     /* open all raster maps */
+     if (option.cell->answers[0] == NULL)
+-      G_fatal_error(_("Raster map not found"));
++      G_fatal_error("%s", _("Raster map not found"));
+     names = option.cell->answers;
+     ptr = option.cell->answers;
+--- grass-6.4.3/raster/r.sun2/main.c.orig      2013-04-20 11:52:13.000000000 +0200
++++ grass-6.4.3/raster/r.sun2/main.c   2014-05-24 07:57:41.180109784 +0200
+@@ -558,13 +558,13 @@
+       if (longin == NULL)
+           G_fatal_error(
+-              _("You must give the longitude raster if you use civil time"));
++              "%s", _("You must give the longitude raster if you use civil time"));
+       if (sscanf(parm.civilTime->answer, "%lf", &civilTime) != 1)
+-          G_fatal_error(_("Error reading civil time zone value"));
++          G_fatal_error("%s", _("Error reading civil time zone value"));
+       if (civilTime < -24. || civilTime > 24.)
+-          G_fatal_error(_("Invalid civil time zone value"));
++          G_fatal_error("%s", _("Invalid civil time zone value"));
+       /* Normalize if somebody should be weird enough to give more than +- 12 
+        * hours offset. */
+@@ -589,40 +589,40 @@
+     glob_rad = parm.glob_rad->answer;
+     if ((insol_time != NULL) && (incidout != NULL))
+-      G_fatal_error(_("insol_time and incidout are incompatible options"));
++      G_fatal_error("%s", _("insol_time and incidout are incompatible options"));
+     sscanf(parm.day->answer, "%d", &day);
+     if (sscanf(parm.step->answer, "%lf", &step) != 1)
+-      G_fatal_error(_("Error reading time step size"));
++      G_fatal_error("%s", _("Error reading time step size"));
+     if (step <= 0.0 || step > 24.0)
+-      G_fatal_error(_("Invalid time step size"));
++      G_fatal_error("%s", _("Invalid time step size"));
+     if (parm.horizonstep->answer != NULL) {
+       if (sscanf(parm.horizonstep->answer, "%lf", &horizonStep) != 1)
+-          G_fatal_error(_("Error reading horizon step size"));
++          G_fatal_error("%s", _("Error reading horizon step size"));
+       if (horizonStep > 0.)
+           setHorizonInterval(deg2rad * horizonStep);
+       else
+-          G_fatal_error(_("The horizon step size must be greater than 0."));
++          G_fatal_error("%s", _("The horizon step size must be greater than 0."));
+     }
+     else if (useHorizonData()) {
+-      G_fatal_error(_("If you use the horizon option you must also set the 'horizonstep' parameter."));
++      G_fatal_error("%s", _("If you use the horizon option you must also set the 'horizonstep' parameter."));
+     }
+     ttime = parm.ltime->answer;
+     if (parm.ltime->answer != NULL) {
+       if (insol_time != NULL)
+-          G_fatal_error(_("Time and insol_time are incompatible options"));
++          G_fatal_error("%s", _("Time and insol_time are incompatible options"));
+-      G_message(_("Mode 1: instantaneous solar incidence angle & irradiance using a set local time"));
++      G_message("%s", _("Mode 1: instantaneous solar incidence angle & irradiance using a set local time"));
+       sscanf(parm.ltime->answer, "%lf", &timo);
+     }
+     else {
+       if (incidout != NULL)
+-          G_fatal_error(_("incidout requires time parameter to be set"));
++          G_fatal_error("%s", _("incidout requires time parameter to be set"));
+-      G_message(_("Mode 2: integrated daily irradiation for a given day of the year"));
++      G_message("%s", _("Mode 2: integrated daily irradiation for a given day of the year"));
+     }
+     /*      
+@@ -668,7 +668,7 @@
+           /* If you calculate shadows on the fly, the number of partitions
+            * must be one.
+            */
+-          G_fatal_error(_("If you use -s and no horizon rasters, numpartitions must be =1"));
++          G_fatal_error("%s", _("If you use -s and no horizon rasters, numpartitions must be =1"));
+       }
+     }
+@@ -680,7 +680,7 @@
+      * shadows pre-calculated, there is no problem. */
+     if (saveMemory && useShadow() && (!useHorizonData()))
+-      G_fatal_error(_("If you want to save memory and to use shadows, you must use pre-calculated horizons."));
++      G_fatal_error("%s", _("If you want to save memory and to use shadows, you must use pre-calculated horizons."));
+     if (parm.declin->answer == NULL)
+       declination = com_declin(day);
+@@ -725,15 +725,15 @@
+       if ((in_proj_info = G_get_projinfo()) == NULL)
+           G_fatal_error(
+-              _("Can't get projection info of current location"));
++              "%s", _("Can't get projection info of current location"));
+       if ((in_unit_info = G_get_projunits()) == NULL)
+           G_fatal_error(
+-              _("Can't get projection units of current location"));
++              "%s", _("Can't get projection units of current location"));
+       if (pj_get_kv(&iproj, in_proj_info, in_unit_info) < 0)
+           G_fatal_error(
+-              _("Can't get projection key values of current location"));
++              "%s", _("Can't get projection key values of current location"));
+       G_free_key_value(in_proj_info);
+       G_free_key_value(in_unit_info);
+@@ -743,16 +743,16 @@
+       oproj.meters = 1.;
+       sprintf(oproj.proj, "ll");
+       if ((oproj.pj = pj_latlong_from_proj(iproj.pj)) == NULL)
+-          G_fatal_error(_("Unable to set up lat/long projection parameters"));
++          G_fatal_error("%s", _("Unable to set up lat/long projection parameters"));
+     }
+     if ((latin != NULL || longin != NULL) && (G_projection() == PROJECTION_LL))
+-      G_warning(_("latin and longin raster maps have no effect when in a Lat/Lon location"));
++      G_warning("%s", _("latin and longin raster maps have no effect when in a Lat/Lon location"));
+       /* true about longin= when civiltime is used? */
+       /* civiltime needs longin= but not latin= for non-LL projections -
+           better would be it just use pj_proj() if it needs those?? */
+     if (latin != NULL && longin == NULL)
+-      G_fatal_error(_("Both latin and longin raster maps must be given, or neither"));
++      G_fatal_error("%s", _("Both latin and longin raster maps must be given, or neither"));
+ /**********end of parser - ******************************/
+--- grass-6.4.3/raster/r.sunmask/g_solposition.c.orig  2011-07-16 11:52:05.000000000 +0200
++++ grass-6.4.3/raster/r.sunmask/g_solposition.c       2014-05-24 07:58:20.790108958 +0200
+@@ -63,7 +63,7 @@
+     /* we don't like to run G_calc_solar_position in xy locations */
+     if (window.proj == 0)
+-      G_fatal_error(_("Unable to calculate sun position in un-projected locations. "
++      G_fatal_error("%s", _("Unable to calculate sun position in un-projected locations. "
+                       "Specify sunposition directly."));
+     pdat = &pd;                       /* point to the structure for convenience */
+@@ -95,13 +95,13 @@
+       
+       /* read current projection info */
+       if ((in_proj_info = G_get_projinfo()) == NULL)
+-          G_fatal_error(_("Unable to get projection info of current location"));
++          G_fatal_error("%s", _("Unable to get projection info of current location"));
+       if ((in_unit_info = G_get_projunits()) == NULL)
+-          G_fatal_error(_("Unable to get projection units of current location"));
++          G_fatal_error("%s", _("Unable to get projection units of current location"));
+       if (pj_get_kv(&iproj, in_proj_info, in_unit_info) < 0)
+-          G_fatal_error(_("Unable to get projection key values of current location"));
++          G_fatal_error("%s", _("Unable to get projection key values of current location"));
+       
+       G_free_key_value(in_proj_info);
+       G_free_key_value(in_unit_info);
+@@ -124,7 +124,7 @@
+       /* XX do the transform 
+        *               outx        outy    in_info  out_info */
+       if (pj_do_proj(&longitude, &latitude, &iproj, &oproj) < 0) {
+-          G_fatal_error(_("Error in pj_do_proj (projection of input coordinate pair)"));
++          G_fatal_error("%s", _("Error in pj_do_proj (projection of input coordinate pair)"));
+       }
+       G_debug(1, "Transformation to lat/long:");
+--- grass-6.4.3/raster/r.sunmask/main.c.orig   2012-09-01 11:52:23.000000000 +0200
++++ grass-6.4.3/raster/r.sunmask/main.c        2014-06-04 16:38:06.032982989 +0200
+@@ -255,9 +255,9 @@
+       sscanf(parm.north->answer, "%lf", &north);
+       sscanf(parm.east->answer, "%lf", &east);
+       if (strlen(parm.east->answer) == 0)
+-          G_fatal_error(_("Empty east coordinate specified"));
++          G_fatal_error("%s", _("Empty east coordinate specified"));
+       if (strlen(parm.north->answer) == 0)
+-          G_fatal_error(_("Empty north coordinate specified"));
++          G_fatal_error("%s", _("Empty north coordinate specified"));
+     }
+     /* check which method to use for sun position:
+@@ -276,10 +276,10 @@
+       locparms = 0;
+     if (solparms && locparms) /* both defined */
+-      G_fatal_error(_("Either define sun position or location/date/time parameters"));
++      G_fatal_error("%s", _("Either define sun position or location/date/time parameters"));
+     if (!solparms && !locparms)       /* nothing defined */
+-      G_fatal_error(_("Neither sun position nor east/north, date/time/timezone definition are complete"));
++      G_fatal_error("%s", _("Neither sun position nor east/north, date/time/timezone definition are complete"));
+     /* if here, one definition was complete */
+     if (locparms) {
+@@ -288,7 +288,7 @@
+       use_solpos = 1;
+     }
+     else {
+-      G_message(_("Using user defined sun azimuth, altitude settings (ignoring eventual other values)"));
++      G_message("%s", _("Using user defined sun azimuth, altitude settings (ignoring eventual other values)"));
+       use_solpos = 0;
+     }
+@@ -394,7 +394,7 @@
+               pdat->hour + (pdat->minute / 60.) + (pdat->second / 3600.);
+       }
+       else                    /* fatal error in G_calc_solar_position() */
+-          G_fatal_error(_("Please correct settings"));
++          G_fatal_error("%s", _("Please correct settings"));
+     }
+     if (use_solpos) {
+@@ -415,7 +415,7 @@
+               G_message(_("Time (%02i:%02i:%02i) is before sunrise"),
+                         pdat->hour, pdat->minute, pdat->second);
+-          G_warning(_("Nothing to calculate. Please verify settings."));
++          G_warning("%s", _("Nothing to calculate. Please verify settings."));
+       }
+       if ((current_time > sunset)) {
+           if (sretr / 60 <= 24.0)
+@@ -425,7 +425,7 @@
+           else
+               G_message(_("Time (%02i:%02i:%02i) is after sunset"),
+                         pdat->hour, pdat->minute, pdat->second);
+-          G_warning(_("Nothing to calculate. Please verify settings."));
++          G_warning("%s", _("Nothing to calculate. Please verify settings."));
+       }
+     }
+@@ -434,7 +434,7 @@
+     }
+     else if (flag3->answer && (use_solpos == 0)) {
+       /* are you joking ? */
+-      G_message(_("You already know the sun position"));
++      G_message("%s", _("You already know the sun position"));
+       exit(EXIT_SUCCESS);
+     }
+@@ -472,7 +472,7 @@
+     estep = sin(azi) * window.ew_res;
+     row1 = 0;
+-    G_message(_("Calculating shadows from DEM..."));
++    G_message("%s", _("Calculating shadows from DEM..."));
+     while (row1 < window.rows) {
+       G_percent(row1, window.rows, 2);
+       col1 = 0;
+--- grass-6.4.3/raster/r.support/modhead/modhead.c.orig        2008-11-25 02:30:46.000000000 +0100
++++ grass-6.4.3/raster/r.support/modhead/modhead.c     2014-05-24 10:11:36.543275641 +0200
+@@ -204,9 +204,9 @@
+       if ((compressed_new || compressed_old) && G_yes(buffer, -1)) {
+           if (compressed_new && compressed_old) {
+               while (1) {
+-                  G_message(_("Please indicate the type of compression:\n"));
+-                  G_message(_("  1. Pre 3.0 compression\n"));
+-                  G_message(_("  2. 3.0 compression\n"));
++                  G_message("%s", _("Please indicate the type of compression:\n"));
++                  G_message("%s", _("  1. Pre 3.0 compression\n"));
++                  G_message("%s", _("  2. 3.0 compression\n"));
+                   if (!G_gets(buffer))
+                       continue;
+@@ -244,8 +244,8 @@
+       if ((cellhd.compressed == 0) && compressed_new) {
+           G_warning(_("The header for [%s] says the file is not compressed. "),
+                     name);
+-          G_warning(_("The file appears to be compressed.\n"));
+-          G_warning(_("Most likely the header is wrong, but I want you to decide.\n"));
++          G_warning("%s", _("The file appears to be compressed.\n"));
++          G_warning("%s", _("Most likely the header is wrong, but I want you to decide.\n"));
+           if (G_yes("Is the file compressed? ", -1))
+               cellhd.compressed = 1;
+@@ -253,8 +253,8 @@
+       else if ((cellhd.compressed != 0) && !compressed_new) {
+           G_warning(_("The header for [%s] says the file is compressed. "),
+                     name);
+-          G_warning(_("The file does NOT appear to be compressed.\n"));
+-          G_warning(_("Most likely the header is wrong, but I want you to decide.\n"));
++          G_warning("%s", _("The file does NOT appear to be compressed.\n"));
++          G_warning("%s", _("Most likely the header is wrong, but I want you to decide.\n"));
+           if (!G_yes("Is the file really compressed? ", -1))
+               cellhd.compressed = 0;
+--- grass-6.4.3/raster/r.support/modhead/hitreturn.c.orig      2008-11-25 02:30:46.000000000 +0100
++++ grass-6.4.3/raster/r.support/modhead/hitreturn.c   2014-06-04 16:40:56.616312767 +0200
+@@ -9,7 +9,7 @@
+ {
+     char buf[100];
+-    G_message(_("\nhit RETURN to continue -->"));
++    G_message("%s", _("\nhit RETURN to continue -->"));
+     G_gets(buf);
+     return EXIT_SUCCESS;
+--- grass-6.4.3/raster/r.support/front/front.c.orig    2008-11-25 02:30:46.000000000 +0100
++++ grass-6.4.3/raster/r.support/front/front.c 2014-05-24 10:12:46.546607513 +0200
+@@ -140,7 +140,7 @@
+       G_read_history(raster->answer, mapset, &hist);
+       if (hist.edlinecnt >= MAXEDLINES)
+-          G_fatal_error(_("Not enough room in history file"));
++          G_fatal_error("%s", _("Not enough room in history file"));
+       /* two less than defined as if only one less a newline gets appended in the hist file. bug? */
+       /* Should be RECORD_LEN, but r.info truncates at > 71 chars */
+@@ -261,7 +261,7 @@
+           G_clear_screen();
+       }
+       else if (!cellhd_ok)
+-          G_fatal_error(_("Canceling from edit header."));
++          G_fatal_error("%s", _("Canceling from edit header."));
+     }
+     /* Check the histogram and range */
+@@ -364,7 +364,7 @@
+       unlink(path);
+       close(null_fd);
+-      G_done_msg(_("Done."));
++      G_done_msg("%s", _("Done."));
+     }
+     return EXIT_SUCCESS;
+--- grass-6.4.3/raster/r.support/front/hitreturn.c.orig        2008-11-25 02:30:46.000000000 +0100
++++ grass-6.4.3/raster/r.support/front/hitreturn.c     2014-06-04 16:41:11.189645797 +0200
+@@ -12,7 +12,7 @@
+ {
+     char buf[127];
+-    G_message(_("\nHit RETURN to continue -->"));
++    G_message("%s", _("\nHit RETURN to continue -->"));
+     G_gets(buf);
+     return EXIT_SUCCESS;
+--- grass-6.4.3/raster/r.support.stats/check.c.orig    2008-11-25 02:30:50.000000000 +0100
++++ grass-6.4.3/raster/r.support.stats/check.c 2014-05-24 10:25:17.966591847 +0200
+@@ -52,7 +52,7 @@
+     else
+       G_init_fp_range(&fprange);
+-    G_message(_("Updating histogram range..."));
++    G_message("%s", _("Updating histogram range..."));
+     i = histo_num = G_get_histogram_num(&histogram);
+     while (i >= 0) {
+       G_percent(i, histo_num, 2);
+--- grass-6.4.3/raster/r.surf.contour/bseg_get.c.orig  2010-09-25 11:52:06.000000000 +0200
++++ grass-6.4.3/raster/r.surf.contour/bseg_get.c       2014-05-24 10:38:54.549908161 +0200
+@@ -4,13 +4,11 @@
+ int bseg_get(BSEG * bseg, char * value, int row, int col)
+ {
+     unsigned char x;
+-    char errmsg[200];
+     if (segment_get(&(bseg->seg), &x, row, col >> 3) < 0) {
+-      sprintf(errmsg,
++      G_warning(
+               "bseg_get(): could not read segment file at r:%d c:%d",
+               (int)row, (int)col);
+-      G_warning(errmsg);
+       return -1;
+     }
+     *value = (char) ((x & (1 << (col & 7))) ? 1 : 0);
+--- grass-6.4.3/raster/r.surf.contour/bseg_put.c.orig  2010-09-25 11:52:06.000000000 +0200
++++ grass-6.4.3/raster/r.surf.contour/bseg_put.c       2014-06-04 16:41:46.159645063 +0200
+@@ -4,13 +4,11 @@
+ int bseg_put(BSEG * bseg, char * value, int row, int col)
+ {
+     unsigned char old_value;
+-    char errmsg[200];
+     if (segment_get(&(bseg->seg), &old_value, row, col >> 3) < 0) {
+-      sprintf(errmsg,
++      G_warning(
+               "bseg_put(): could not read segment file at r:%d c:%d",
+               (int)row, (int)col);
+-      G_warning(errmsg);
+       return -1;
+     }
+     if (*value)
+@@ -18,10 +16,9 @@
+     else
+       old_value &= ~(1 << (col & 7));
+     if (segment_put(&(bseg->seg), &old_value, row, col >> 3) < 0) {
+-      sprintf(errmsg,
++      G_warning(
+               "bseg_put(): could not write segment file at r:%d c:%d",
+               (int)row, (int)col);
+-      G_warning(errmsg);
+       return -2;
+     }
+     return 0;
+--- grass-6.4.3/raster/r.surf.contour/dseg_read.c.orig 2010-09-25 11:52:06.000000000 +0200
++++ grass-6.4.3/raster/r.surf.contour/dseg_read.c      2014-06-07 15:37:40.887656011 +0200
+@@ -8,16 +8,14 @@
+ {
+     int row, nrows;
+     int map_fd;
+-    char msg[100];
+     DCELL *buffer;
+     dseg->name = NULL;
+     dseg->mapset = NULL;
+     if ((map_fd = G_open_cell_old(map_name, mapset)) < 0) {
+-      sprintf(msg, "%s(): unable to open file [%s] in [%s]",
++      G_warning("%s(): unable to open file [%s] in [%s]",
+               me, map_name, mapset);
+-      G_warning(msg);
+       return -3;
+     }
+     nrows = G_window_rows();
+@@ -26,17 +24,15 @@
+       if (G_get_d_raster_row(map_fd, buffer, row) < 0) {
+           G_free(buffer);
+           G_close_cell(map_fd);
+-          sprintf(msg, "%s(): unable to read file [%s] in [%s]",
++          G_warning("%s(): unable to read file [%s] in [%s]",
+                   me, map_name, mapset);
+-          G_warning(msg);
+           return -2;
+       }
+       if (segment_put_row(&(dseg->seg), buffer, row) < 0) {
+           G_free(buffer);
+           G_close_cell(map_fd);
+-          sprintf(msg, "%s(): unable to segment put row for [%s] in [%s]",
++          G_warning("%s(): unable to segment put row for [%s] in [%s]",
+                   me, map_name, mapset);
+-          G_warning(msg);
+           return (-1);
+       }
+     }
+--- grass-6.4.3/raster/r.surf.contour/bseg_read.c.orig 2010-09-25 11:52:06.000000000 +0200
++++ grass-6.4.3/raster/r.surf.contour/bseg_read.c      2014-06-07 22:34:09.740468496 +0200
+@@ -9,7 +9,6 @@
+     int row, nrows;
+     int col, ncols;
+     int map_fd;
+-    char msg[100];
+     CELL *buffer;
+     char value;
+@@ -18,9 +17,8 @@
+     map_fd = G_open_cell_old(map_name, mapset);
+     if (map_fd < 0) {
+-      sprintf(msg, "%s(): unable to open file [%s] in [%s], %d",
++      G_warning("%s(): unable to open file [%s] in [%s], %d",
+               me, map_name, mapset, map_fd);
+-      G_warning(msg);
+       return -3;
+     }
+     nrows = G_window_rows();
+@@ -30,9 +28,8 @@
+       if (G_get_map_row(map_fd, buffer, row) < 0) {
+           G_free(buffer);
+           G_close_cell(map_fd);
+-          sprintf(msg, "%s(): unable to read file [%s] in [%s], %d %d",
++          G_warning("%s(): unable to read file [%s] in [%s], %d %d",
+                   me, map_name, mapset, row, nrows);
+-          G_warning(msg);
+           return -2;
+       }
+       for (col = ncols; col >= 0; col--) {
+--- grass-6.4.3/raster/r.surf.contour/dseg_write.c.orig        2010-09-25 11:52:06.000000000 +0200
++++ grass-6.4.3/raster/r.surf.contour/dseg_write.c     2014-06-08 09:00:51.499684759 +0200
+@@ -7,13 +7,11 @@
+ {
+     int map_fd;
+     int row, nrows;
+-    char msg[100];
+     DCELL *buffer;
+     map_fd = G_open_raster_new(map_name, DCELL_TYPE);
+     if (map_fd < 0) {
+-      sprintf(msg, "%s(): unable to open new map layer [%s]", me, map_name);
+-      G_warning(msg);
++      G_warning("%s(): unable to open new map layer [%s]", me, map_name);
+       return -1;
+     }
+     nrows = G_window_rows();
+@@ -23,10 +21,9 @@
+       if (G_put_raster_row(map_fd, buffer, DCELL_TYPE) < 0) {
+           G_free(buffer);
+           G_unopen_cell(map_fd);
+-          sprintf(msg,
++          G_warning(
+                   "%s(): unable to write new map layer [%s], row %d",
+                   me, map_name, row);
+-          G_warning(msg);
+           return -2;
+       }
+     }
+--- grass-6.4.3/raster/r.surf.idw/main.c.orig  2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.surf.idw/main.c       2014-05-24 10:39:23.563240889 +0200
+@@ -238,7 +238,7 @@
+       /* if mask occurs, read current row of the mask */
+       if (mask && G_get_map_row(maskfd, mask, row) < 0)
+-          G_fatal_error(_("Cannot read row"));
++          G_fatal_error("%s", _("Cannot read row"));
+       /* prepare search array for next row of interpolations */
+       for (ewptr = search, Rptr = rowlist; ewptr <= lastrow;
+--- grass-6.4.3/raster/r.surf.idw2/main.c.orig 2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.surf.idw2/main.c      2014-05-24 10:39:47.733240386 +0200
+@@ -77,7 +77,7 @@
+     /* Make sure that the current projection is not lat/long */
+     if ((G_projection() == PROJECTION_LL))
+-      G_fatal_error(_("Lat/long databases not supported by r.surf.idw2. Use r.surf.idw instead!"));
++      G_fatal_error("%s", _("Lat/long databases not supported by r.surf.idw2. Use r.surf.idw instead!"));
+     if (G_legal_filename(parm.output->answer) < 0)
+       G_fatal_error(_("<%s> is an illegal file name"), parm.output->answer);
+@@ -120,7 +120,7 @@
+       if (mask) {
+           if (G_get_map_row(maskfd, mask, row) < 0)
+-              G_fatal_error(_("Cannot get row"));
++              G_fatal_error("%s", _("Cannot get row"));
+       }
+       north += window.ns_res;
+       east = window.west - window.ew_res / 2.0;
+--- grass-6.4.3/raster/r.texture/h_measure.c.orig      2011-10-01 11:52:04.000000000 +0200
++++ grass-6.4.3/raster/r.texture/h_measure.c   2014-05-24 10:45:28.106566624 +0200
+@@ -81,7 +81,7 @@
+     for (row = rows - 1; row >= 0; --row)
+       for (col = 0; col < cols; ++col) {
+           if (grays[row][col] < 0)    /* No data pixel found */
+-              G_fatal_error(_("Negative or no data pixel found. "
++              G_fatal_error("%s", _("Negative or no data pixel found. "
+                               "This module is not yet able to process no data holes in a map, "
+                               "please fill with r.fillnulls or other algorithms"));
+           if (grays[row][col] > PGM_MAXMAXVAL)
+@@ -767,7 +767,7 @@
+     v = (float *)G_malloc((unsigned)(nh - nl + 1) * sizeof(float));
+     if (!v)
+-      G_fatal_error(_("Unable to allocate memory")), exit(EXIT_FAILURE);
++      G_fatal_error("%s", _("Unable to allocate memory")), exit(EXIT_FAILURE);
+     return v;
+ }
+--- grass-6.4.3/raster/r.texture/main.c.orig   2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.texture/main.c        2014-06-04 16:44:30.372974979 +0200
+@@ -213,12 +213,12 @@
+     if (a && c && corr && v && idm && sa && sv && se && e && dv && de && moc1
+       && moc2 && mcc)
+-      G_fatal_error(_("Nothing to compute. Use at least one of the flags."));
++      G_fatal_error("%s", _("Nothing to compute. Use at least one of the flags."));
+     /* please, remove before GRASS 7 released */
+     if (flag1->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+@@ -258,7 +258,7 @@
+     }
+     /* Read in cell map values */
+-    G_important_message(_("Reading raster map..."));
++    G_important_message("%s", _("Reading raster map..."));
+     for (j = 0; j < nrows; j++) {
+       G_get_raster_row(infd, cell_row, j, CELL_TYPE);
+       for (i = 0; i < ncols; i++)
+--- grass-6.4.3/raster/r.thin/thin_lines.c.orig        2008-11-25 02:30:42.000000000 +0100
++++ grass-6.4.3/raster/r.thin/thin_lines.c     2014-05-24 10:45:44.426566284 +0200
+@@ -171,9 +171,9 @@
+     }                         /* while delete >0 */
+     if ((deleted == 0) && (i <= iterations))
+-      G_message(_("Thinning completed successfully."));
++      G_message("%s", _("Thinning completed successfully."));
+     else
+-      G_message(_("Thinning not completed, consider to increase 'iterations' parameter."));
++      G_message("%s", _("Thinning not completed, consider to increase 'iterations' parameter."));
+     return 0;
+ }
+--- grass-6.4.3/raster/r.timestamp/main.c.orig 2013-04-20 11:52:14.000000000 +0200
++++ grass-6.4.3/raster/r.timestamp/main.c      2014-05-24 10:45:56.393232702 +0200
+@@ -79,7 +79,7 @@
+       exit(EXIT_SUCCESS);
+     }
+     else
+-      G_fatal_error(_("Invalid timestamp"));
++      G_fatal_error("%s", _("Invalid timestamp"));
+     exit(EXIT_SUCCESS);
+ }
+--- grass-6.4.3/raster/r.to.rast3/main.c.orig  2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.to.rast3/main.c       2014-05-24 10:46:41.619898426 +0200
+@@ -55,7 +55,7 @@
+     if (map != NULL) {
+       /* should unopen map here! but this functionality is not jet implemented */
+       if (!G3d_closeCell(map))
+-          G3d_fatalError(_("Could not close the map"));
++          G3d_fatalError("%s", _("Could not close the map"));
+     }
+     if (fd != NULL) {
+@@ -63,7 +63,7 @@
+           close_input_raster_map(fd[i]);
+     }
+-    G3d_fatalError(errorMsg);
++    G3d_fatalError("%s", errorMsg);
+     exit(EXIT_FAILURE);
+ }
+@@ -205,7 +205,7 @@
+     /*Check for output */
+     if (param.output->answer == NULL)
+-      G3d_fatalError(_("No output map"));
++      G3d_fatalError("%s", _("No output map"));
+     /* Figure out the region from the map */
+     G3d_initDefaults();
+@@ -219,7 +219,7 @@
+     /*If not equal, set the 2D windows correct */
+     if (rows != region.rows || cols != region.cols) {
+-      G_message(_("The 2D and 3D region settings are different. I will use the 3D region settings to adjust the 2D region."));
++      G_message("%s", _("The 2D and 3D region settings are different. I will use the 3D region settings to adjust the 2D region."));
+       G_get_set_window(&window2d);
+       window2d.ns_res = region.ns_res;
+       window2d.ew_res = region.ew_res;
+@@ -282,7 +282,7 @@
+       }
+     }
+-    G_message(_("Creating 3D raster map"));
++    G_message("%s", _("Creating 3D raster map"));
+     map = NULL;
+@@ -338,7 +338,7 @@
+     /* Close files and exit */
+     if (!G3d_closeCell(map))
+-      G3d_fatalError(_("Error closing 3d raster map"));
++      G3d_fatalError("%s", _("Error closing 3d raster map"));
+     map = NULL;
+@@ -375,5 +375,5 @@
+ void close_input_raster_map(int fd)
+ {
+     if (G_close_cell(fd) < 0)
+-      G_fatal_error(_("Unable to close input map"));
++      G_fatal_error("%s", _("Unable to close input map"));
+ }
+--- grass-6.4.3/raster/r.to.rast3elev/main.c.orig      2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.to.rast3elev/main.c   2014-05-24 11:28:07.319846616 +0200
+@@ -135,7 +135,7 @@
+     }
+     if (elevcount != inputcount) {
+-      G_fatal_error(_("The number of input and elevation maps is not equal"));
++      G_fatal_error("%s", _("The number of input and elevation maps is not equal"));
+       exit(EXIT_FAILURE);
+     }
+@@ -168,7 +168,7 @@
+ void close_input_raster_map(int fd)
+ {
+     if (G_close_cell(fd) < 0)
+-      G_fatal_error(_("Unable to close input map"));
++      G_fatal_error("%s", _("Unable to close input map"));
+ }
+ /* ************************************************************************* */
+@@ -180,7 +180,7 @@
+     if (db.map != NULL) {
+       /* should unopen map here! but this functionality is not jet implemented */
+       if (!G3d_closeCell(db.map))
+-          G3d_fatalError(_("Could not close the map"));
++          G3d_fatalError("%s", _("Could not close the map"));
+     }
+     if (db.input)
+@@ -189,7 +189,7 @@
+     if (db.elev)
+       close_input_raster_map(db.elev);
+-    G3d_fatalError(errorMsg);
++    G3d_fatalError("%s", errorMsg);
+     exit(EXIT_FAILURE);
+ }
+@@ -430,7 +430,7 @@
+       if (sscanf(param.upper->answer, "%lf", &db.upper))
+           db.useUpperVal = 2;
+       else
+-          G_fatal_error(_("The upper value is not valid"));
++          G_fatal_error("%s", _("The upper value is not valid"));
+     }
+     else {
+       G3d_setNullValue(&db.upper, 1, DCELL_TYPE);
+@@ -441,7 +441,7 @@
+       if (sscanf(param.lower->answer, "%lf", &db.lower))
+           db.useLowerVal = 2;
+       else
+-          G_fatal_error(_("The lower value is not valid"));
++          G_fatal_error("%s", _("The lower value is not valid"));
+     }
+     else {
+       G3d_setNullValue(&db.lower, 1, DCELL_TYPE);
+@@ -459,7 +459,7 @@
+     /*If not equal, set the 2D windows correct */
+     if (rows != region.rows || cols != region.cols) {
+-      G_message(_("The 2D and 3D region settings are different. I will use the 3D region settings to adjust the 2D region."));
++      G_message("%s", _("The 2D and 3D region settings are different. I will use the 3D region settings to adjust the 2D region."));
+       G_get_set_window(&window2d);
+       window2d.ns_res = region.ns_res;
+       window2d.ew_res = region.ew_res;
+@@ -495,7 +495,7 @@
+     }
+-    G_message(_("Creating 3D raster map"));
++    G_message("%s", _("Creating 3D raster map"));
+     /*For each elevation - input map couple */
+@@ -543,7 +543,7 @@
+     G_debug(2, "Close 3d raster map");
+     if (!G3d_closeCell(db.map))
+-      G3d_fatalError(_("Error closing 3d raster map"));
++      G3d_fatalError("%s", _("Error closing 3d raster map"));
+     G_debug(2, "\nDone\n");
+--- grass-6.4.3/raster/r.to.vect/areas_io.c.orig       2008-11-25 02:30:47.000000000 +0100
++++ grass-6.4.3/raster/r.to.vect/areas_io.c    2014-05-24 11:28:26.356512886 +0200
+@@ -365,7 +365,7 @@
+               }
+               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"),
+--- grass-6.4.3/raster/r.to.vect/points.c.orig 2008-11-25 02:30:47.000000000 +0100
++++ grass-6.4.3/raster/r.to.vect/points.c      2014-06-04 16:45:05.852974239 +0200
+@@ -32,7 +32,7 @@
+       break;
+     }
+-    G_message(_("Extracting points..."));
++    G_message("%s", _("Extracting points..."));
+     count = 1;
+     for (row = 0; row < cell_head.rows; row++) {
+--- grass-6.4.3/raster/r.to.vect/lines.c.orig  2008-11-25 02:30:47.000000000 +0100
++++ grass-6.4.3/raster/r.to.vect/lines.c       2014-06-07 15:38:50.094321235 +0200
+@@ -66,7 +66,7 @@
+     read_next();
+     read_next();
+-    G_message(_("Extracting lines..."));
++    G_message("%s", _("Extracting lines..."));
+     switch (data_type) {
+     case CELL_TYPE:
+@@ -490,7 +490,7 @@
+       break;
+     default:
+       G_debug(1, "Crowded cell %xH (%d,%d)", count, row, col);
+-      G_fatal_error(_("Raster map is not thinned properly.\nPlease run r.thin."));
++      G_fatal_error("%s", _("Raster map is not thinned properly.\nPlease run r.thin."));
+     }                         /* switch count */
+     return 0;
+@@ -564,13 +564,13 @@
+           p->row, p->col, q->row, q->col);
+     if (p->fptr != NULL) {
+-      G_warning(_("join_lines: p front pointer not NULL!"));
++      G_warning("%s", _("join_lines: p front pointer not NULL!"));
+       /* exit(EXIT_FAILURE); */
+     }
+     p->fptr = q->bptr;
+     if (q->fptr != NULL) {
+-      G_warning(_("join_lines: q front pointer not NULL!"));
++      G_warning("%s", _("join_lines: q front pointer not NULL!"));
+       /* exit(EXIT_FAILURE); */
+     }
+@@ -588,7 +588,7 @@
+ static int extend_line(struct COOR *p, struct COOR *q)
+ {
+     while (p == NULL) {
+-      G_warning(_("extend line:  p is NULL"));
++      G_warning("%s", _("extend line:  p is NULL"));
+       /* should never happen by the logic of algorithm */
+       p = start_line(1);
+     }
+@@ -614,14 +614,14 @@
+     }
+     if (p->fptr != NULL) {
+-      G_warning(_("extend_lines: p front pointer not NULL!"));
++      G_warning("%s", _("extend_lines: p front pointer not NULL!"));
+       /* should never happen by the logic of algorithm */
+       /* exit(EXIT_FAILURE); */
+     }
+     p->fptr = q;
+     if (q->bptr != NULL) {
+-      G_warning(_("extend_lines: q back pointer not NULL!"));
++      G_warning("%s", _("extend_lines: q back pointer not NULL!"));
+       /* should never happen by the logic of algorithm */
+       /* exit(EXIT_FAILURE); */
+     }
+--- grass-6.4.3/raster/r.to.vect/lines_io.c.orig       2008-11-25 02:30:47.000000000 +0100
++++ grass-6.4.3/raster/r.to.vect/lines_io.c    2014-06-07 22:34:30.990468054 +0200
+@@ -73,7 +73,7 @@
+           }
+           if (line_type == LOOP) {    /* this should NEVER be the case */
+-              G_warning(_("write_line:  found half a loop!"));
++              G_warning("%s", _("write_line:  found half a loop!"));
+               return (-1);
+           }
+--- grass-6.4.3/raster/r.to.vect/main.c.orig   2012-10-27 11:52:08.000000000 +0200
++++ grass-6.4.3/raster/r.to.vect/main.c        2014-06-08 09:01:44.509683654 +0200
+@@ -97,7 +97,7 @@
+     /* please, remove before GRASS 7 released */
+     if (quiet->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+@@ -107,7 +107,7 @@
+     value_flag = value_flg->answer;
+     if (z_flg->answer && (feature != GV_POINT))
+-      G_fatal_error(_("z flag is supported only for points"));
++      G_fatal_error("%s", _("z flag is supported only for points"));
+     /* Open files */
+     if ((mapset = G_find_cell(in_opt->answer, "")) == NULL)
+@@ -121,7 +121,7 @@
+     G_get_window(&cell_head);
+     if (value_flag && data_type != CELL_TYPE) {
+-      G_warning(_("Raster is not CELL, '-v' flag ignored, raster values will be written to the table."));
++      G_warning("%s", _("Raster is not CELL, '-v' flag ignored, raster values will be written to the table."));
+       value_flag = 0;
+     }
+@@ -189,14 +189,14 @@
+       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"),
+                         db_get_string(&sql));
+       if (db_create_index2(driver, Fi->table, "cat") != DB_OK)
+-          G_warning(_("Unable to create index"));
++          G_warning("%s", _("Unable to create index"));
+       if (db_grant_on_table
+           (driver, Fi->table, DB_PRIV_SELECT,
+@@ -268,7 +268,7 @@
+               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"),
+--- grass-6.4.3/raster/r.to.vect/util.c.orig   2008-11-25 02:30:47.000000000 +0100
++++ grass-6.4.3/raster/r.to.vect/util.c        2014-06-08 10:15:21.042924935 +0200
+@@ -150,7 +150,7 @@
+     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));
+--- grass-6.4.3/raster/r.to.vect/areas.c.orig  2008-11-25 02:30:47.000000000 +0100
++++ grass-6.4.3/raster/r.to.vect/areas.c       2014-06-08 10:54:30.492875963 +0200
+@@ -116,7 +116,7 @@
+     /* represents the "outside", the external null values */
+     assign_area(nullVal, 0);
+-    G_message(_("Extracting areas..."));
++    G_message("%s", _("Extracting areas..."));
+     scan_length = read_next();
+     while (read_next()) {     /* read rest of file, one row at *//*   a time */
+--- grass-6.4.3/raster/r.topidx/file_io.c.orig 2012-03-03 11:52:06.000000000 +0100
++++ grass-6.4.3/raster/r.topidx/file_io.c      2014-05-24 15:53:07.976181865 +0200
+@@ -41,7 +41,7 @@
+                     buf_wrew, buf_wrns, buf_mrew, buf_mrns);
+     }
+-    G_message(_("Reading elevation map..."));
++    G_message("%s", _("Reading elevation map..."));
+     for (i = 0; i < window.rows; i++) {
+       G_percent(i, window.rows, 2);
+@@ -95,7 +95,7 @@
+     if ((fd = G_open_raster_new(oname, DCELL_TYPE)) < 0)
+       G_fatal_error(_("Cannot create raster map <%s>"), oname);
+-    G_message(_("Writing topographic index map..."));
++    G_message("%s", _("Writing topographic index map..."));
+     for (i = 0; i < window.rows; i++) {
+       G_percent(i, window.rows, 2);
+--- grass-6.4.3/raster/r.univar2/r3.univar_main.c.orig 2011-08-20 11:52:10.000000000 +0200
++++ grass-6.4.3/raster/r.univar2/r3.univar_main.c      2014-05-24 15:55:46.942845216 +0200
+@@ -160,7 +160,7 @@
+           
+       G3d_range_init(zmap);
+       if (!G3d_range_load(zmap))
+-          G_fatal_error(_("Unable to load 3D raster range"));
++          G_fatal_error("%s", _("Unable to load 3D raster range"));
+       G3d_range_min_max(zmap, &dmin, &dmax);
+       /* properly round dmin and dmax */
+--- grass-6.4.3/raster/r.volume/main.c.orig    2013-04-20 11:52:13.000000000 +0200
++++ grass-6.4.3/raster/r.volume/main.c 2014-05-24 15:57:45.036176090 +0200
+@@ -114,7 +114,7 @@
+     out_mode = (!flag1->answer);
+     if (*datamap == 0)
+-      G_fatal_error(_("No data map specified"));
++      G_fatal_error("%s", _("No data map specified"));
+     /*
+      * See if MASK or a separate "clumpmap" layer is to be used-- it must(!)
+@@ -125,12 +125,12 @@
+       strcpy(clumpmap, "MASK");
+       use_MASK = 1;
+       if (G_find_cell(clumpmap, G_mapset()) == NULL)
+-          G_fatal_error(_("No clump map specified and MASK not set."));
++          G_fatal_error("%s", _("No clump map specified and MASK not set."));
+     }
+     curr_mapset = G_mapset();
+     data_mapset = G_find_cell2(datamap, "");
+     if (!data_mapset)
+-      G_fatal_error(_("Unable to find data map"));
++      G_fatal_error("%s", _("Unable to find data map"));
+     fd_data = G_open_cell_old(datamap, data_mapset);
+     if (use_MASK)
+@@ -138,7 +138,7 @@
+     else
+       clump_mapset = G_find_cell2(clumpmap, "");
+     if (!clump_mapset)
+-      G_fatal_error(_("Unable to find clump map"));
++      G_fatal_error("%s", _("Unable to find clump map"));
+     fd_clump = G_open_cell_old(clumpmap, clump_mapset);
+@@ -146,7 +146,7 @@
+     if (*site_list) {
+       fd_sites = G_fopen_sites_new(site_list);
+       if (fd_sites == NULL)
+-          G_fatal_error(_("Unable to open centroids vector points map"));
++          G_fatal_error("%s", _("Unable to open centroids vector points map"));
+     }
+     /* initialize data accumulation arrays */
+@@ -168,7 +168,7 @@
+     cols = window.cols;
+     if (fd_data < 0 || fd_clump < 0)
+-      G_fatal_error(_("Data or Clump file not open"));
++      G_fatal_error("%s", _("Data or Clump file not open"));
+     /* now get the data -- first pass */
+     G_message("Complete ...");
+@@ -183,7 +183,7 @@
+                       "Row=%d Col=%d Cat=%d in clump map [%s]; max=%d.\n",
+                       row, col, i, clumpmap, max);
+               strcat(buf, "Cat value > max returned by G_number_of_cats.");
+-              G_fatal_error(buf);
++              G_fatal_error("%s", buf);
+           }
+           if (i < 1)
+               continue;       /* ignore zeros and negs */
+--- grass-6.4.3/raster/r.walk/main.c.orig      2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.walk/main.c   2014-05-24 16:02:04.239504021 +0200
+@@ -336,7 +336,7 @@
+     /*  Get database window parameters      */
+     if (G_get_window(&window) < 0)
+-      G_fatal_error(_("Unable to read current window parameters"));
++      G_fatal_error("%s", _("Unable to read current window parameters"));
+     /*  Find north-south, east_west and diagonal factors */
+@@ -407,11 +407,11 @@
+     if ((opt6->answer == NULL) ||
+       (sscanf(opt6->answer, "%lf", &null_cost) != 1)) {
+-      G_message(_("Null cells excluded from cost evaluation."));
++      G_message("%s", _("Null cells excluded from cost evaluation."));
+       G_set_d_null_value(&null_cost, 1);
+     }
+     else if (keep_nulls)
+-      G_message(_("Input null cell will be retained into output map"));
++      G_message("%s", _("Input null cell will be retained into output map"));
+     if (opt7->answer) {
+@@ -509,7 +509,7 @@
+     if (!G_is_d_null_value(&null_cost)) {
+       if (null_cost < 0.0) {
+-          G_warning(_("Warning: assigning negative cost to null cell. Null cells excluded."));
++          G_warning("%s", _("Warning: assigning negative cost to null cell. Null cells excluded."));
+           G_set_d_null_value(&null_cost, 1);
+       }
+     }
+@@ -588,7 +588,7 @@
+     /*Projection */
+     if (dtm_cellhd.proj != cost_cellhd.proj)
+-      G_fatal_error(_("Map with different projection"));
++      G_fatal_error("%s", _("Map with different projection"));
+     dtm_data_type = G_get_raster_map_type(dtm_fd);
+     cost_data_type = G_get_raster_map_type(cost_fd);
+@@ -600,13 +600,13 @@
+     switch (dtm_data_type) {
+     case (CELL_TYPE):
+-      G_message(_("DTM_Source map is: Integer cell type"));
++      G_message("%s", _("DTM_Source map is: Integer cell type"));
+       break;
+     case (FCELL_TYPE):
+-      G_message(_("DTM_Source map is: Floating point (float) cell type"));
++      G_message("%s", _("DTM_Source map is: Floating point (float) cell type"));
+       break;
+     case (DCELL_TYPE):
+-      G_message(_("DTM_Source map is: Floating point (double) cell type"));
++      G_message("%s", _("DTM_Source map is: Floating point (double) cell type"));
+       break;
+     }
+     G_message(_(" %d rows, %d cols"), dtm_cellhd.rows, dtm_cellhd.cols);
+@@ -615,13 +615,13 @@
+     switch (cost_data_type) {
+     case (CELL_TYPE):
+-      G_message(_("COST_Source map is: Integer cell type"));
++      G_message("%s", _("COST_Source map is: Integer cell type"));
+       break;
+     case (FCELL_TYPE):
+-      G_message(_("COST_Source map is: Floating point (float) cell type"));
++      G_message("%s", _("COST_Source map is: Floating point (float) cell type"));
+       break;
+     case (DCELL_TYPE):
+-      G_message(_("COST_Source map is: Floating point (double) cell type"));
++      G_message("%s", _("COST_Source map is: Floating point (double) cell type"));
+       break;
+     }
+     G_message(_(" %d rows, %d cols"), cost_cellhd.rows, cost_cellhd.cols);
+@@ -652,13 +652,13 @@
+     switch (cum_data_type) {
+     case (CELL_TYPE):
+-      G_message(_("Output map is: Integer cell type"));
++      G_message("%s", _("Output map is: Integer cell type"));
+       break;
+     case (FCELL_TYPE):
+-      G_message(_("Output map is: Floating point (float) cell type"));
++      G_message("%s", _("Output map is: Floating point (float) cell type"));
+       break;
+     case (DCELL_TYPE):
+-      G_message(_("Output map is: Floating point (double) cell type"));
++      G_message("%s", _("Output map is: Floating point (double) cell type"));
+       break;
+     }
+     G_message(_(" %d rows, %d cols"), nrows, ncols);
+@@ -679,7 +679,7 @@
+     /*   Create segmented format files for cost layer and output layer  */
+-    G_message(_("Creating some temporary files..."));
++    G_message("%s", _("Creating some temporary files..."));
+     dtm_in_fd = creat(dtm_in_file, 0600);
+     segment_format(dtm_in_fd, nrows, ncols, srows, scols, sizeof(double));
+@@ -849,7 +849,7 @@
+     /*   Initialize segmented output file  */
+-    G_message(_("Initializing output "));
++    G_message("%s", _("Initializing output "));
+     {
+       double *fbuff;
+       int i;
+@@ -857,7 +857,7 @@
+       fbuff = (double *)G_malloc((unsigned int)(ncols * sizeof(double)));
+       if (fbuff == NULL)
+-          G_fatal_error(_("Unable to allocate memory for segment fbuff == NULL"));
++          G_fatal_error("%s", _("Unable to allocate memory for segment fbuff == NULL"));
+       G_set_d_null_value(fbuff, ncols);
+@@ -877,7 +877,7 @@
+     }
+     if (dir == 1) {
+-      G_message(_("Initializing directional output "));
++      G_message("%s", _("Initializing directional output "));
+       {
+           double *fbuff;
+           int i;
+@@ -886,7 +886,7 @@
+               (double *)G_malloc((unsigned int)(ncols * sizeof(double)));
+           if (fbuff == NULL)
+-              G_fatal_error(_("Unable to allocate memory for segment fbuff == NULL"));
++              G_fatal_error("%s", _("Unable to allocate memory for segment fbuff == NULL"));
+           G_set_d_null_value(fbuff, ncols);
+@@ -979,7 +979,7 @@
+           value_start_pt = &zero;
+           if (top_start_pt->row < 0 || top_start_pt->row >= nrows
+               || top_start_pt->col < 0 || top_start_pt->col >= ncols)
+-              G_fatal_error(_("Specified starting location outside database window"));
++              G_fatal_error("%s", _("Specified starting location outside database window"));
+           new_cell = insert(zero, top_start_pt->row, top_start_pt->col);
+           segment_put(&out_seg, value_start_pt, top_start_pt->row,
+                       top_start_pt->col);
+@@ -996,7 +996,7 @@
+     /*system("date"); */
+-    G_message(_("Finding cost path"));
++    G_message("%s", _("Finding cost path"));
+     n_processed = 0;
+     total_cells = nrows * ncols;
+@@ -1468,11 +1468,11 @@
+       pres_cell = get_lowest();
+       if (pres_cell == NULL) {
+-          G_message(_("End of map!"));
++          G_message("%s", _("End of map!"));
+           goto OUT;
+       }
+       if (ct == pres_cell)
+-          G_warning(_("Error, ct == pres_cell"));
++          G_warning("%s", _("Error, ct == pres_cell"));
+     }
+   OUT:
+     /*  Open cumulative cost layer for writing   */
+@@ -1498,14 +1498,14 @@
+     if (keep_nulls) {
+-      G_message(_("Will copy input map null values into output map"));
++      G_message("%s", _("Will copy input map null values into output map"));
+       cell2 = G_allocate_raster_buf(dtm_data_type);
+     }
+     if (cum_data_type == CELL_TYPE) {
+       int *p;
+       int *p2;
+-      G_message(_("Integer cell type.\nWriting..."));
++      G_message("%s", _("Integer cell type.\nWriting..."));
+       for (row = 0; row < nrows; row++) {
+           G_percent(row, nrows, 2);
+@@ -1540,7 +1540,7 @@
+       float *p;
+       float *p2;
+-      G_message(_("Float cell type.\nWriting..."));
++      G_message("%s", _("Float cell type.\nWriting..."));
+       for (row = 0; row < nrows; row++) {
+           G_percent(row, nrows, 2);
+@@ -1575,7 +1575,7 @@
+       double *p;
+       double *p2;
+-      G_message(_("Double cell type.\nWriting..."));
++      G_message("%s", _("Double cell type.\nWriting..."));
+       for (row = 0; row < nrows; row++) {
+           G_percent(row, nrows, 2);
+--- grass-6.4.3/raster/r.water.outlet/legal.c.orig     2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.water.outlet/legal.c  2014-05-24 16:10:33.772826734 +0200
+@@ -4,11 +4,8 @@
+ int do_legal(char *file_name)
+ {
+-    char *buf;
+-
+     if (G_legal_filename(file_name) == -1) {
+-      G_asprintf(&buf, _("<%s> is an illegal file name"), file_name);
+-      G_fatal_error(buf);
++      G_fatal_error(_("<%s> is an illegal file name"), file_name);
+     }
+     return 0;
+@@ -16,12 +13,11 @@
+ char *do_exist(char *file_name)
+ {
+-    char *buf, *file_mapset;
++    char *file_mapset;
+     file_mapset = G_find_cell2(file_name, "");
+     if (file_mapset == NULL) {
+-      G_asprintf(&buf, _("Raster map <%s> not found"), file_name);
+-      G_fatal_error(buf);
++      G_fatal_error(_("Raster map <%s> not found"), file_name);
+     }
+     return (file_mapset);
+ }
+--- grass-6.4.3/raster/r.water.outlet/main.c.orig      2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/raster/r.water.outlet/main.c   2014-06-04 17:12:16.676273581 +0200
+@@ -39,7 +39,6 @@
+     char drain_name[GNAME_MAX], *drain_mapset, E_f, dr_f, ba_f, N_f, errr;
+     struct GModule *module;
+     struct Option *opt1, *opt2, *opt3, *opt4;
+-    char *buf;
+     G_gisinit(argv[0]);
+@@ -82,8 +81,7 @@
+       exit(EXIT_FAILURE);
+     if (G_get_window(&window) < 0) {
+-      G_asprintf(&buf, _("Unable to read current window parameters"));
+-      G_fatal_error(buf);
++      G_fatal_error("%s", _("Unable to read current window parameters"));
+     }
+     strcpy(drain_name, opt1->answer);
+@@ -118,7 +116,7 @@
+     drain_fd = G_open_cell_old(drain_name, drain_mapset);
+     if (drain_fd < 0)
+-      G_fatal_error(_("Unable to open drainage pointer map"));
++      G_fatal_error("%s", _("Unable to open drainage pointer map"));
+     drain_ptrs =
+       (char *)G_malloc(sizeof(char) * size_array(&pt_seg, nrows, ncols));
+@@ -143,7 +141,7 @@
+     basin_fd = G_open_cell_new(basin_name);
+     if (basin_fd < 0)
+-      G_fatal_error(_("Unable to open new basin map"));
++      G_fatal_error("%s", _("Unable to open new basin map"));
+     for (row = 0; row < nrows; row++) {
+       for (col = 0; col < ncols; col++) {
+@@ -156,7 +154,7 @@
+     G_free(bas);
+     G_free(cell_buf);
+     if (G_close_cell(basin_fd) < 0)
+-      G_fatal_error(_("Unable to close new basin map layer"));
++      G_fatal_error("%s", _("Unable to close new basin map layer"));
+     return 0;
+ }
+--- grass-6.4.3/raster/r.watershed/ram/close_maps.c.orig       2010-05-08 11:53:02.000000000 +0200
++++ grass-6.4.3/raster/r.watershed/ram/close_maps.c    2014-05-24 17:16:56.666077049 +0200
+@@ -27,7 +27,7 @@
+     if (wat_flag) {
+       fd = G_open_raster_new(wat_name, DCELL_TYPE);
+       if (fd < 0) {
+-          G_warning(_("unable to open new accum map layer."));
++          G_warning("%s", _("unable to open new accum map layer."));
+       }
+       else {
+           if (abs_acc) {
+@@ -63,7 +63,7 @@
+               }
+           }
+           if (G_close_cell(fd) < 0)
+-              G_warning(_("Close failed."));
++              G_warning("%s", _("Close failed."));
+           stddev =
+               sqrt((sum_sqr - (sum + sum / do_points)) / (do_points - 1));
+@@ -139,7 +139,7 @@
+     if (asp_flag) {
+       fd = G_open_cell_new(asp_name);
+       if (fd < 0) {
+-          G_warning(_("unable to open new aspect map layer."));
++          G_warning("%s", _("unable to open new aspect map layer."));
+       }
+       else {
+           for (r = 0; r < nrows; r++) {
+@@ -150,7 +150,7 @@
+               G_put_raster_row(fd, buf, CELL_TYPE);
+           }
+           if (G_close_cell(fd) < 0)
+-              G_warning(_("Close failed."));
++              G_warning("%s", _("Close failed."));
+       }
+       G_init_colors(&colors);
+       G_make_aspect_colors(&colors, 0, 8);
+@@ -162,7 +162,7 @@
+     if (dis_flag) {
+       fd = G_open_cell_new(dis_name);
+       if (fd < 0) {
+-          G_warning(_("unable to open new accum map layer."));
++          G_warning("%s", _("unable to open new accum map layer."));
+       }
+       else {
+           if (bas_thres <= 0)
+@@ -183,7 +183,7 @@
+               G_put_raster_row(fd, buf, CELL_TYPE);
+           }
+           if (G_close_cell(fd) < 0)
+-              G_warning(_("Close failed."));
++              G_warning("%s", _("Close failed."));
+       }
+       G_init_colors(&colors);
+       G_make_rainbow_colors(&colors, 1, 120);
+@@ -198,7 +198,7 @@
+     if (ls_flag) {
+       fd = G_open_raster_new(ls_name, DCELL_TYPE);
+       if (fd < 0) {
+-          G_warning(_("unable to open new LS factor map layer."));
++          G_warning("%s", _("unable to open new LS factor map layer."));
+       }
+       else {
+           for (r = 0; r < nrows; r++) {
+@@ -208,7 +208,7 @@
+               G_put_raster_row(fd, dbuf, DCELL_TYPE);
+           }
+           if (G_close_cell(fd) < 0)
+-              G_warning(_("Close failed."));
++              G_warning("%s", _("Close failed."));
+       }
+       G_free(l_s);
+     }
+@@ -216,7 +216,7 @@
+     if (sl_flag) {
+       fd = G_open_raster_new(sl_name, DCELL_TYPE);
+       if (fd < 0) {
+-          G_warning(_("unable to open new slope length map layer."));
++          G_warning("%s", _("unable to open new slope length map layer."));
+       }
+       else {
+           for (r = 0; r < nrows; r++) {
+@@ -228,7 +228,7 @@
+               G_put_raster_row(fd, dbuf, DCELL_TYPE);
+           }
+           if (G_close_cell(fd) < 0)
+-              G_warning(_("Close failed."));
++              G_warning("%s", _("Close failed."));
+       }
+     }
+@@ -238,7 +238,7 @@
+     if (sg_flag) {
+       fd = G_open_raster_new(sg_name, DCELL_TYPE);
+       if (fd < 0) {
+-          G_warning(_("unable to open new S factor map layer."));
++          G_warning("%s", _("unable to open new S factor map layer."));
+       }
+       else {
+           for (r = 0; r < nrows; r++) {
+@@ -248,7 +248,7 @@
+               G_put_raster_row(fd, dbuf, DCELL_TYPE);
+           }
+           if (G_close_cell(fd) < 0)
+-              G_warning(_("Close failed."));
++              G_warning("%s", _("Close failed."));
+       }
+       G_free(s_g);
+     }
+--- grass-6.4.3/raster/r.watershed/ram/sg_factor.c.orig        2010-05-08 11:53:02.000000000 +0200
++++ grass-6.4.3/raster/r.watershed/ram/sg_factor.c     2014-06-04 17:12:39.682939768 +0200
+@@ -10,7 +10,7 @@
+     CELL low_elev, hih_elev;
+     double height, length, S, sin_theta;
+-    G_message(_("SECTION 4: RUSLE LS and/or S factor determination."));
++    G_message("%s", _("SECTION 4: RUSLE LS and/or S factor determination."));
+     if (ril_flag)
+       ril_buf = G_allocate_cell_buf();
+--- grass-6.4.3/raster/r.watershed/ram/do_cum.c.orig   2013-04-20 11:52:14.000000000 +0200
++++ grass-6.4.3/raster/r.watershed/ram/do_cum.c        2014-06-07 15:39:08.087654193 +0200
+@@ -13,7 +13,7 @@
+     SHORT asp_c[9] = { 0, 1, 0, -1, -1, -1, 0, 1, 1 };
+     int this_index, down_index;
+-    G_message(_("SECTION 3: Accumulating Surface Flow with SFD."));
++    G_message("%s", _("SECTION 3: Accumulating Surface Flow with SFD."));
+     count = 0;
+     if (bas_thres <= 0)
+@@ -114,7 +114,7 @@
+     SHORT asp_c[9] = { 0, 1, 0, -1, -1, -1, 0, 1, 1 };
+     int this_index, down_index, nbr_index;
+-    G_message(_("SECTION 3: Accumulating Surface Flow with MFD."));
++    G_message("%s", _("SECTION 3: Accumulating Surface Flow with MFD."));
+     G_debug(1, "MFD convergence factor set to %d.", c_fac);
+     /* distances to neighbours */
+--- grass-6.4.3/raster/r.watershed/ram/do_astar.c.orig 2010-05-08 11:53:02.000000000 +0200
++++ grass-6.4.3/raster/r.watershed/ram/do_astar.c      2014-06-07 22:34:53.147134259 +0200
+@@ -23,7 +23,7 @@
+     double slope[8];
+     int skip_diag;
+-    G_message(_("SECTION 2: A * Search."));
++    G_message("%s", _("SECTION 2: A * Search."));
+     for (ct_dir = 0; ct_dir < sides; ct_dir++) {
+       /* get r, c (r_nbr, c_nbr) for neighbours */
+@@ -157,7 +157,7 @@
+     heap_size++;
+     if (heap_size > do_points)
+-      G_fatal_error(_("heapsize too large"));
++      G_fatal_error("%s", _("heapsize too large"));
+     heap_index[heap_size] = nxt_avail_pt++;
+--- grass-6.4.3/raster/r.watershed/ram/init_vars.c.orig        2010-05-08 11:53:01.000000000 +0200
++++ grass-6.4.3/raster/r.watershed/ram/init_vars.c     2014-06-08 09:02:16.933016312 +0200
+@@ -147,7 +147,7 @@
+     /* open elevation input */
+     fd = G_open_cell_old(ele_name, "");
+     if (fd < 0) {
+-      G_fatal_error(_("unable to open elevation map layer"));
++      G_fatal_error("%s", _("unable to open elevation map layer"));
+     }
+     ele_map_type = G_get_raster_map_type(fd);
+@@ -215,7 +215,7 @@
+     if (run_flag) {
+       fd = G_open_cell_old(run_name, "");
+       if (fd < 0) {
+-          G_fatal_error(_("unable to open runoff map layer"));
++          G_fatal_error("%s", _("unable to open runoff map layer"));
+       }
+       for (r = 0; r < nrows; r++) {
+           G_get_c_raster_row(fd, buf, r);
+@@ -238,7 +238,7 @@
+     if (pit_flag) {
+       fd = G_open_cell_old(pit_name, "");
+       if (fd < 0) {
+-          G_fatal_error(_("unable to open depression map layer"));
++          G_fatal_error("%s", _("unable to open depression map layer"));
+       }
+       for (r = 0; r < nrows; r++) {
+           G_get_c_raster_row(fd, buf, r);
+@@ -255,7 +255,7 @@
+     if (ob_flag) {
+       fd = G_open_cell_old(ob_name, "");
+       if (fd < 0) {
+-          G_fatal_error(_("unable to open blocking map layer"));
++          G_fatal_error("%s", _("unable to open blocking map layer"));
+       }
+       for (r = 0; r < nrows; r++) {
+           G_get_c_raster_row(fd, buf, r);
+@@ -272,7 +272,7 @@
+     if (ril_flag) {
+       ril_fd = G_open_cell_old(ril_name, "");
+       if (ril_fd < 0) {
+-          G_fatal_error(_("unable to open rill map layer"));
++          G_fatal_error("%s", _("unable to open rill map layer"));
+       }
+     }
+--- grass-6.4.3/raster/r.watershed/seg/dseg_read.c.orig        2010-05-08 11:53:02.000000000 +0200
++++ grass-6.4.3/raster/r.watershed/seg/dseg_read.c     2014-05-24 17:19:00.186074475 +0200
+@@ -8,7 +8,6 @@
+ {
+     int row, nrows, ncols;
+     int map_fd;
+-    char msg[100];
+     double *dbuffer;
+     dseg->name = NULL;
+@@ -16,9 +15,8 @@
+     map_fd = G_open_cell_old(map_name, mapset);
+     if (map_fd < 0) {
+-      sprintf(msg, "%s(): unable to open file [%s] in [%s], %d",
++      G_warning("%s(): unable to open file [%s] in [%s], %d",
+               me, map_name, mapset, map_fd);
+-      G_warning(msg);
+       return -3;
+     }
+     nrows = G_window_rows();
+@@ -28,17 +26,15 @@
+       if (G_get_d_raster_row(map_fd, dbuffer, row) < 0) {
+           G_free(dbuffer);
+           G_close_cell(map_fd);
+-          sprintf(msg, "%s(): unable to read file [%s] in [%s], %d %d",
++          G_warning("%s(): unable to read file [%s] in [%s], %d %d",
+                   me, map_name, mapset, row, nrows);
+-          G_warning(msg);
+           return -2;
+       }
+       if (segment_put_row(&(dseg->seg), (DCELL *) dbuffer, row) < 0) {
+           G_free(dbuffer);
+           G_close_cell(map_fd);
+-          sprintf(msg, "%s(): unable to segment put row for [%s] in [%s]",
++          G_warning("%s(): unable to segment put row for [%s] in [%s]",
+                   me, map_name, mapset);
+-          G_warning(msg);
+           return (-1);
+       }
+     }
+--- grass-6.4.3/raster/r.watershed/seg/close_maps.c.orig       2013-04-20 11:52:14.000000000 +0200
++++ grass-6.4.3/raster/r.watershed/seg/close_maps.c    2014-06-04 17:13:09.269605818 +0200
+@@ -25,7 +25,7 @@
+           fd = G_open_raster_new(wat_name, DCELL_TYPE);
+           if (fd < 0) {
+-              G_warning(_("unable to open new accum map layer."));
++              G_warning("%s", _("unable to open new accum map layer."));
+           }
+           for (r = 0; r < nrows; r++) {
+               G_set_d_null_value(dbuf, ncols);        /* reset row to all NULL */
+@@ -41,7 +41,7 @@
+               G_put_raster_row(fd, dbuf, DCELL_TYPE);
+           }
+           if (G_close_cell(fd) < 0)
+-              G_warning(_("Close failed."));
++              G_warning("%s", _("Close failed."));
+       }
+       else {
+           dseg_write_cellfile(&wat, wat_name);
+@@ -49,7 +49,7 @@
+           /* get standard deviation */
+           fd = G_open_cell_old(wat_name, "");
+           if (fd < 0) {
+-              G_fatal_error(_("unable to open flow accumulation map layer"));
++              G_fatal_error("%s", _("unable to open flow accumulation map layer"));
+           }
+           for (r = 0; r < nrows; r++) {
+--- grass-6.4.3/raster/r.watershed/seg/cseg_read.c.orig        2008-11-25 02:30:48.000000000 +0100
++++ grass-6.4.3/raster/r.watershed/seg/cseg_read.c     2014-06-07 15:39:47.914320030 +0200
+@@ -8,7 +8,6 @@
+ {
+     int row, nrows;
+     int map_fd;
+-    char msg[100];
+     CELL *buffer;
+     cseg->name = NULL;
+@@ -16,9 +15,8 @@
+     map_fd = G_open_cell_old(map_name, mapset);
+     if (map_fd < 0) {
+-      sprintf(msg, "%s(): unable to open file [%s] in [%s], %d",
++      G_warning("%s(): unable to open file [%s] in [%s], %d",
+               me, map_name, mapset, map_fd);
+-      G_warning(msg);
+       return -3;
+     }
+     nrows = G_window_rows();
+@@ -27,17 +25,15 @@
+       if (G_get_c_raster_row(map_fd, buffer, row) < 0) {
+           G_free(buffer);
+           G_close_cell(map_fd);
+-          sprintf(msg, "%s(): unable to read file [%s] in [%s], %d %d",
++          G_warning("%s(): unable to read file [%s] in [%s], %d %d",
+                   me, map_name, mapset, row, nrows);
+-          G_warning(msg);
+           return -2;
+       }
+       if (segment_put_row(&(cseg->seg), buffer, row) < 0) {
+           G_free(buffer);
+           G_close_cell(map_fd);
+-          sprintf(msg, "%s(): unable to segment put row for [%s] in [%s]",
++          G_warning("%s(): unable to segment put row for [%s] in [%s]",
+                   me, map_name, mapset);
+-          G_warning(msg);
+           return (-1);
+       }
+     }
+--- grass-6.4.3/raster/r.watershed/seg/bseg_read.c.orig        2008-11-25 02:30:48.000000000 +0100
++++ grass-6.4.3/raster/r.watershed/seg/bseg_read.c     2014-06-07 22:35:25.190466929 +0200
+@@ -9,7 +9,6 @@
+     int row, nrows;
+     int col, ncols;
+     int map_fd;
+-    char msg[100];
+     CELL *buffer;
+     bseg->name = NULL;
+@@ -17,9 +16,8 @@
+     map_fd = G_open_cell_old(map_name, mapset);
+     if (map_fd < 0) {
+-      sprintf(msg, "%s(): unable to open file [%s] in [%s], %d",
++      G_warning("%s(): unable to open file [%s] in [%s], %d",
+               me, map_name, mapset, map_fd);
+-      G_warning(msg);
+       return -3;
+     }
+     nrows = G_window_rows();
+@@ -29,9 +27,8 @@
+       if (G_get_c_raster_row(map_fd, buffer, row) < 0) {
+           G_free(buffer);
+           G_close_cell(map_fd);
+-          sprintf(msg, "%s(): unable to read file [%s] in [%s], %d %d",
++          G_warning("%s(): unable to read file [%s] in [%s], %d %d",
+                   me, map_name, mapset, row, nrows);
+-          G_warning(msg);
+           return -2;
+       }
+       for (col = ncols; col >= 0; col--) {
+--- grass-6.4.3/raster/r.watershed/seg/sg_factor.c.orig        2010-05-08 11:53:02.000000000 +0200
++++ grass-6.4.3/raster/r.watershed/seg/sg_factor.c     2014-06-08 09:02:30.679682692 +0200
+@@ -9,7 +9,7 @@
+     CELL downer, low_elev, hih_elev;
+     double height, length, S, sin_theta;
+-    G_message(_("SECTION 4: RUSLE LS and/or S factor determination."));
++    G_message("%s", _("SECTION 4: RUSLE LS and/or S factor determination."));
+     for (r = nrows - 1; r >= 0; r--) {
+       G_percent(nrows - r, nrows, 3);
+       for (c = ncols - 1; c >= 0; c--) {
+--- grass-6.4.3/raster/r.watershed/seg/do_astar.c.orig 2010-05-08 11:53:02.000000000 +0200
++++ grass-6.4.3/raster/r.watershed/seg/do_astar.c      2014-06-08 10:15:48.899591020 +0200
+@@ -27,7 +27,7 @@
+     double slope[8];
+     int skip_diag;
+-    G_message(_("SECTION 2: A * Search."));
++    G_message("%s", _("SECTION 2: A * Search."));
+     for (ct_dir = 0; ct_dir < sides; ct_dir++) {
+       /* get r, c (r_nbr, c_nbr) for neighbours */
+@@ -158,7 +158,7 @@
+     heap_size++;
+     if (heap_size > do_points)
+-      G_fatal_error(_("heapsize too large"));
++      G_fatal_error("%s", _("heapsize too large"));
+     heap_pos.point = nxt_avail_pt;
+     heap_pos.ele = ele;
+--- grass-6.4.3/raster/r.watershed/seg/do_cum.c.orig   2013-04-20 11:52:14.000000000 +0200
++++ grass-6.4.3/raster/r.watershed/seg/do_cum.c        2014-06-08 10:54:47.876208934 +0200
+@@ -14,7 +14,7 @@
+     SHORT asp_r[9] = { 0, -1, -1, -1, 0, 1, 1, 1, 0 };
+     SHORT asp_c[9] = { 0, 1, 0, -1, -1, -1, 0, 1, 1 };
+-    G_message(_("SECTION 3: Accumulating Surface Flow with SFD."));
++    G_message("%s", _("SECTION 3: Accumulating Surface Flow with SFD."));
+     count = 0;
+     if (bas_thres <= 0)
+@@ -118,7 +118,7 @@
+     SHORT asp_r[9] = { 0, -1, -1, -1, 0, 1, 1, 1, 0 };
+     SHORT asp_c[9] = { 0, 1, 0, -1, -1, -1, 0, 1, 1 };
+-    G_message(_("SECTION 3: Accumulating Surface Flow with MFD."));
++    G_message("%s", _("SECTION 3: Accumulating Surface Flow with MFD."));
+     G_debug(1, "MFD convergence factor set to %d.", c_fac);
+     /* distances to neighbours */
+--- grass-6.4.3/raster/r.watershed/seg/init_vars.c.orig        2010-05-08 11:53:02.000000000 +0200
++++ grass-6.4.3/raster/r.watershed/seg/init_vars.c     2014-06-08 12:02:08.932791373 +0200
+@@ -147,7 +147,7 @@
+     if (segs_mb < 3.0) {
+       segs_mb = 300;
+-      G_warning(_("Maximum memory to be used was smaller than 3 MB, set to default = 300 MB."));
++      G_warning("%s", _("Maximum memory to be used was smaller than 3 MB, set to default = 300 MB."));
+     }
+     num_open_segs = segs_mb / 1.34;
+@@ -188,7 +188,7 @@
+     /* open elevation input */
+     fd = G_open_cell_old(ele_name, "");
+     if (fd < 0) {
+-      G_fatal_error(_("unable to open elevation map layer"));
++      G_fatal_error("%s", _("unable to open elevation map layer"));
+     }
+     ele_map_type = G_get_raster_map_type(fd);
+@@ -275,7 +275,7 @@
+     if (pit_flag) {
+       fd = G_open_cell_old(pit_name, "");
+       if (fd < 0) {
+-          G_fatal_error(_("unable to open depression map layer"));
++          G_fatal_error("%s", _("unable to open depression map layer"));
+       }
+       buf = G_allocate_cell_buf();
+       for (r = 0; r < nrows; r++) {
+@@ -304,7 +304,7 @@
+     if (ob_flag) {
+       fd = G_open_cell_old(ob_name, "");
+       if (fd < 0) {
+-          G_fatal_error(_("unable to open blocking map layer"));
++          G_fatal_error("%s", _("unable to open blocking map layer"));
+       }
+       buf = G_allocate_cell_buf();
+       for (r = 0; r < nrows; r++) {
+--- grass-6.4.3/raster/r.watershed/front/main.c.orig   2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/raster/r.watershed/front/main.c        2014-05-24 20:58:23.632466775 +0200
+@@ -214,7 +214,7 @@
+       && (opt13->answer == NULL)
+       && (opt14->answer == NULL)
+       && (opt15->answer == NULL)) {
+-      G_fatal_error(_("Sorry, you must choose an output map."));
++      G_fatal_error("%s", _("Sorry, you must choose an output map."));
+     }
+     err = 0;
+@@ -230,7 +230,7 @@
+     err += (opt15->answer != NULL && opt6->answer == NULL);
+     if (err) {
+-      G_message(_("Sorry, if any of the following options are set:\n"
++      G_message("%s", _("Sorry, if any of the following options are set:\n"
+                   "    basin, stream, half.basin, length.slope, or slope.steepness\n"
+                   "    you MUST provide a value for the basin "
+                   "threshold parameter."));
+--- grass-6.4.3/raster/r.what/die.c.orig       2008-11-25 02:30:45.000000000 +0100
++++ grass-6.4.3/raster/r.what/die.c    2014-05-24 20:58:48.052466266 +0200
+@@ -3,10 +3,7 @@
+ void die(char *a, char *b)
+ {
+-    char *message;
+-
+-    G_asprintf(&message, "%s: %s %s", G_program_name(), a, b);
+-    G_fatal_error(message);
++    G_fatal_error("%s: %s %s", G_program_name(), a, b);
+     return;
+ }
+--- grass-6.4.3/raster/r.what.color/main.c.orig        2013-04-20 11:52:14.000000000 +0200
++++ grass-6.4.3/raster/r.what.color/main.c     2014-05-24 20:59:13.032465746 +0200
+@@ -118,7 +118,7 @@
+       exit(EXIT_FAILURE);
+     if (!opt.value->answer && !flag.i->answer)
+-      G_fatal_error(_("Either \"-i\" or \"value=\" must be given"));
++      G_fatal_error("%s", _("Either \"-i\" or \"value=\" must be given"));
+     name = opt.input->answer;
+     mapset = G_find_cell2(name, "");
+--- grass-6.4.3/raster/simwe/simlib/hydro.c.orig       2010-12-04 11:52:06.000000000 +0100
++++ grass-6.4.3/raster/simwe/simlib/hydro.c    2014-05-24 20:59:32.105798682 +0200
+@@ -428,7 +428,7 @@
+                   ii = output_data(itime, conn);
+ /*                nstack = 0; */
+                   if (ii != 1)
+-                      G_fatal_error(_("Unable to write raster maps"));
++                      G_fatal_error("%s", _("Unable to write raster maps"));
+               }
+           }
+--- grass-6.4.3/raster/simwe/simlib/input.c.orig       2008-11-25 02:30:40.000000000 +0100
++++ grass-6.4.3/raster/simwe/simlib/input.c    2014-06-04 17:13:39.246271860 +0200
+@@ -538,7 +538,7 @@
+                   cchez[k][l] = 1. / cchez[k][l];     /* 1/n */
+               }
+               else {
+-                  G_fatal_error(_("Zero value in Mannings n"));
++                  G_fatal_error("%s", _("Zero value in Mannings n"));
+               }
+               if (zd2 == 0.) {
+                   v1[k][l] = 0.;
+@@ -589,7 +589,7 @@
+       }
+     }
+     if (inf != NULL && smax < infmax)
+-      G_warning(_("Infiltration exceeds the rainfall rate everywhere! No overland flow."));
++      G_warning("%s", _("Infiltration exceeds the rainfall rate everywhere! No overland flow."));
+     cc = (double)mx *my;
+@@ -679,7 +679,7 @@
+     if (et != NULL) {
+       erod(si);               /* compute divergence of t.capc */
+       if (output_et() != 1)
+-          G_fatal_error(_("Unable to write et file"));
++          G_fatal_error("%s", _("Unable to write et file"));
+     }
+     /*! compute the inversion operator and store it in sigma - note that after this
+--- grass-6.4.3/raster/simwe/r.sim.water/main.c.orig   2011-08-20 11:52:09.000000000 +0200
++++ grass-6.4.3/raster/simwe/r.sim.water/main.c        2014-05-24 21:00:03.419131362 +0200
+@@ -441,7 +441,7 @@
+     timesec = timesec * 60.0;
+     iterout = iterout * 60.0;
+     if ((timesec / iterout) > 100.0)
+-      G_message(_("More than 100 files are going to be created !!!!!"));
++      G_message("%s", _("More than 100 files are going to be created !!!!!"));
+     /* compute how big the raster is and set this to appr 2 walkers per cell */
+     if (parm.nwalk->answer == NULL) {
+@@ -474,10 +474,10 @@
+ */
+  if ((depth == NULL) && (disch == NULL) && (err == NULL))
+-        G_warning(_("You are not outputting any raster maps"));
++        G_warning("%s", _("You are not outputting any raster maps"));
+     ret_val = input_data();
+     if (ret_val != 1)
+-        G_fatal_error(_("Input failed"));
++        G_fatal_error("%s", _("Input failed"));
+     /* memory allocation for output grids */
+@@ -524,7 +524,7 @@
+     if (ts == 0) {
+       ii = output_data(0, 1.);
+       if (ii != 1)
+-          G_fatal_error(_("Cannot write raster maps"));
++          G_fatal_error("%s", _("Cannot write raster maps"));
+     }
+ /*
+--- grass-6.4.3/raster/simwe/r.sim.sediment/main.c.orig        2011-08-20 11:52:09.000000000 +0200
++++ grass-6.4.3/raster/simwe/r.sim.sediment/main.c     2014-05-24 21:00:32.445797424 +0200
+@@ -328,7 +328,7 @@
+     timesec = timesec * 60.0;
+     iterout = iterout * 60.0;
+     if ((timesec / iterout) > 100.0)
+-      G_message(_("More than 100 files are going to be created !!!!!"));
++      G_message("%s", _("More than 100 files are going to be created !!!!!"));
+     /* compute how big the raster is and set this to appr 2 walkers per cell */
+     if (parm.nwalk->answer == NULL) {
+@@ -352,10 +352,10 @@
+     if ((tc == NULL) && (et == NULL) && (conc == NULL) && (flux == NULL) &&
+       (erdep == NULL))
+-      G_warning(_("You are not outputting any raster or site files"));
++      G_warning("%s", _("You are not outputting any raster or site files"));
+     ret_val = input_data();
+     if (ret_val != 1)
+-      G_fatal_error(_("Input failed"));
++      G_fatal_error("%s", _("Input failed"));
+     /* mandatory for si,sigma */
+@@ -414,7 +414,7 @@
+     if (tserie == NULL) {
+       ii = output_data(0, 1.);
+       if (ii != 1)
+-          G_fatal_error(_("Cannot write raster maps"));
++          G_fatal_error("%s", _("Cannot write raster maps"));
+     }
+ /*
+--- grass-6.4.3/raster/wildfire/r.ros/main.c.orig      2013-07-15 14:15:36.000000000 +0200
++++ grass-6.4.3/raster/wildfire/r.ros/main.c   2014-05-24 21:00:53.495796985 +0200
+@@ -311,7 +311,7 @@
+     /* please, remove before GRASS 7 released */
+     if (flag1->answer) {
+       putenv("GRASS_VERBOSE=3");
+-      G_warning(_("The '-v' flag is superseded and will be removed "
++      G_warning("%s", _("The '-v' flag is superseded and will be removed "
+                   "in future. Please use '--verbose' instead."));
+     }
+@@ -637,7 +637,7 @@
+       }
+     /*major computation: compute ROSs one cell a time */
+-    G_message(_("Percent Completed ... "));
++    G_message("%s", _("Percent Completed ... "));
+     for (row = 0; row < nrows; row++) {
+       G_percent(row, nrows, 2);
+--- grass-6.4.3/raster/wildfire/r.spread/collect_ori.c.orig    2008-11-25 02:30:50.000000000 +0100
++++ grass-6.4.3/raster/wildfire/r.spread/collect_ori.c 2014-05-24 21:02:58.905794371 +0200
+@@ -48,7 +48,6 @@
+     extern CELL *cell;
+     extern CELL *map_base, *map_x_out, *map_y_out, *map_visit;
+     extern float *map_out;
+-    extern char buf[];
+     extern float neg, zero;
+     extern int BARRIER;
+     extern int nrows, ncols;
+@@ -65,10 +64,9 @@
+           if (*(cell + col) > 0) {
+               /*Check if starting sources legally ? */
+               if (DATA(map_base, row, col) <= 0) {
+-                  sprintf(buf,
++                  G_warning(
+                           "can't start from a BARRIER at cell (%d,%d), request ignored\n",
+                           col, row);
+-                  G_warning(buf);
+                   continue;
+               }
+--- grass-6.4.3/raster/wildfire/r.spread/main.c.orig   2013-07-15 14:15:36.000000000 +0200
++++ grass-6.4.3/raster/wildfire/r.spread/main.c        2014-06-04 17:14:04.766271328 +0200
+@@ -252,7 +252,7 @@
+     /* please, remove before GRASS 7 released */
+     if (flag.verbose->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-v' flag is superseded and will be removed "
++      G_warning("%s", _("The '-v' flag is superseded and will be removed "
+                   "in future. Please use '--verbose' instead."));
+     }
+@@ -335,7 +335,7 @@
+     /*  Get database window parameters  */
+     if (G_get_window(&window) < 0)
+-      G_fatal_error(_("Unable to read current window parameters"));
++      G_fatal_error("%s", _("Unable to read current window parameters"));
+     /*  find number of rows and columns in window    */
+@@ -460,7 +460,7 @@
+     /*   Write the input layers in the map "arrays"  */
+-    G_message(_("Reading inputs..."));
++    G_message("%s", _("Reading inputs..."));
+     for (row = 0; row < nrows; row++) {
+       G_percent(row, nrows, 2);
+--- grass-6.4.3/raster/r.li/r.li.daemon/daemon.c.orig  2011-12-24 11:52:05.000000000 +0100
++++ grass-6.4.3/raster/r.li/r.li.daemon/daemon.c       2014-05-24 21:33:47.989089164 +0200
+@@ -79,7 +79,7 @@
+       /*creating pipe */
+       child[i].pipe = G_tempfile();
+       if (mkfifo(child[i].pipe, 0755) == -1)
+-          G_fatal_error(_("Error in pipe creation"));
++          G_fatal_error("%s", _("Error in pipe creation"));
+       childpid = fork();
+       if (childpid) {
+           /*father process */
+@@ -134,7 +134,7 @@
+       random_access_name = G_tempfile();
+       random_access = open(random_access_name, O_RDWR | O_CREAT, 0755);
+       if (random_access == -1)
+-          G_fatal_error(_("Cannot create random access file"));
++          G_fatal_error("%s", _("Cannot create random access file"));
+     }
+     else {
+       /* check if ~/.r.li/output exists */
+@@ -296,7 +296,7 @@
+     }
+     if (close(receiveChannel) != 0)
+-      G_message(_("Cannot close receive channel file"));
++      G_message("%s", _("Cannot close receive channel file"));
+     if (unlink(reportChannelName) != 0)
+       G_message(_("Cannot delete %s file"), child[i].pipe);
+@@ -325,15 +325,15 @@
+     setup = open(path, O_RDONLY, 0755);
+     if (setup == -1)
+-      G_fatal_error(_("Cannot read setup file"));
++      G_fatal_error("%s", _("Cannot read setup file"));
+     letti = read(setup, buf, s.st_size);
+     if (letti < s.st_size)
+-      G_fatal_error(_("Cannot read setup file"));
++      G_fatal_error("%s", _("Cannot read setup file"));
+     token = strtok(buf, " ");
+     if (strcmp("SAMPLINGFRAME", token) != 0)
+-      G_fatal_error(_("Unable to parse configuration file"));
++      G_fatal_error("%s", _("Unable to parse configuration file"));
+     rel_x = atof(strtok(NULL, "|"));
+     rel_y = atof(strtok(NULL, "|"));
+@@ -343,7 +343,7 @@
+     /* find raster map */
+     mapset = G_find_cell(raster, "");
+     if (G_get_cellhd(raster, mapset, &cellhd) == -1)
+-      G_fatal_error(_("Cannot read raster header file"));
++      G_fatal_error("%s", _("Cannot read raster header file"));
+     /* calculate absolute sampling frame definition */
+     sf_x = (int)rint(cellhd.cols * rel_x);
+@@ -486,7 +486,7 @@
+       while ((token = strtok(NULL, " ")) != NULL &&
+              (strcmp(token, "MASKEDOVERLAYAREA") == 0));
+       if (strcmp(token, "RASTERMAP") != 0)
+-          G_fatal_error(_("Irregular maskedoverlay areas definition"));
++          G_fatal_error("%s", _("Irregular maskedoverlay areas definition"));
+       token = strtok(NULL, "\n");
+       if (strcmp(token, raster) != 0)
+           G_fatal_error(_("The configuration file can be used only with \
+@@ -496,7 +496,7 @@
+     }
+     else
+-      G_fatal_error(_("Illegal configuration file (sample area)"));
++      G_fatal_error("%s", _("Illegal configuration file (sample area)"));
+     close(setup);
+     return ERROR;
+ }
+@@ -530,7 +530,7 @@
+       sa_cl = g->cl;
+       max_units = (int)rint((sf_rl / sa_rl) * (sf_cl / sa_cl));
+       if (units > max_units)
+-          G_fatal_error(_("Too many units to place"));
++          G_fatal_error("%s", _("Too many units to place"));
+       assigned = G_malloc(units * sizeof(int));
+       i = 0;
+       srandom(getpid());
+@@ -599,7 +599,7 @@
+       r_strat_len = (int)rint(g->rows / r_strat);
+       c_strat_len = (int)rint(g->cols / c_strat);
+       if (r_strat_len < g->rl || c_strat_len < g->cl)
+-          G_fatal_error(_("Too many strats for raster map"));
++          G_fatal_error("%s", _("Too many strats for raster map"));
+       loop = r_strat * c_strat;
+       srandom(getpid());
+       for (i = 0; i < loop; i++) {
+@@ -633,7 +633,7 @@
+       return NORMAL;
+     }
+     else {
+-      G_fatal_error(_("Illegal areas disposition"));
++      G_fatal_error("%s", _("Illegal areas disposition"));
+       return NORMAL;
+     }
+     return ERROR;
+@@ -702,7 +702,7 @@
+     off_t offset = (off_t) aid * sizeof(double);
+     if (lseek(fd, offset, SEEK_SET) != offset) {
+-      G_message(_("Cannot make lseek"));
++      G_message("%s", _("Cannot make lseek"));
+       return -1;
+     }
+--- grass-6.4.3/raster/r.li/r.li.daemon/list.c.orig    2011-12-24 11:52:05.000000000 +0100
++++ grass-6.4.3/raster/r.li/r.li.daemon/list.c 2014-06-04 17:14:21.986270969 +0200
+@@ -46,7 +46,7 @@
+       }
+     }
+     else
+-      G_message(_("Out of memory"));
++      G_message("%s", _("Out of memory"));
+     l->size++;
+ }
+--- grass-6.4.3/raster/r.in.gdal/main.c.orig   2013-07-15 14:15:28.000000000 +0200
++++ grass-6.4.3/raster/r.in.gdal/main.c        2014-05-24 21:47:40.435738479 +0200
+@@ -173,11 +173,11 @@
+     /* -------------------------------------------------------------------- */
+     if (parm.target->answer && parm.outloc->answer
+       && strcmp(parm.target->answer, parm.outloc->answer) == 0) {
+-      G_fatal_error(_("You have to specify a target location different from output location"));
++      G_fatal_error("%s", _("You have to specify a target location different from output location"));
+     }
+     if (flag_l->answer && G_projection() != PROJECTION_LL)
+-      G_fatal_error(_("The '-l' flag only works in Lat/Lon locations"));
++      G_fatal_error("%s", _("The '-l' flag only works in Lat/Lon locations"));
+     /* -------------------------------------------------------------------- */
+     /*      Fire up the engines.                                            */
+@@ -195,7 +195,7 @@
+     if (flag_f->answer) {
+       int iDr;
+-      G_message(_("Available GDAL Drivers:"));
++      G_message("%s", _("Available GDAL Drivers:"));
+       for (iDr = 0; iDr < GDALGetDriverCount(); iDr++) {
+           GDALDriverH hDriver = GDALGetDriver(iDr);
+           const char *pszRWFlag;
+@@ -219,7 +219,7 @@
+       G_fatal_error(_("Required parameter <%s> not set"), parm.input->key);
+     if (!output)
+-      G_fatal_error(_("Name for output raster map not specified"));
++      G_fatal_error("%s", _("Name for output raster map not specified"));
+     if (G_legal_filename(output) < 0)
+       G_fatal_error(_("<%s> is an illegal file name"), output);
+@@ -247,7 +247,7 @@
+       l1bdriver = 0;
+     else {
+       l1bdriver = 1;          /* AVHRR found, needs north south flip */
+-      G_warning(_("The polynomial rectification used in i.rectify does "
++      G_warning("%s", _("The polynomial rectification used in i.rectify does "
+                   "not work well with NOAA/AVHRR data. Try using gdalwarp with "
+                   "thin plate spline rectification instead. (-tps)"));
+     }
+@@ -263,7 +263,7 @@
+     if (GDALGetGeoTransform(hDS, adfGeoTransform) == CE_None) {
+       if (adfGeoTransform[2] != 0.0 || adfGeoTransform[4] != 0.0 ||
+           adfGeoTransform[1] <= 0.0 || adfGeoTransform[5] >= 0.0)
+-          G_fatal_error(_("Input raster map is flipped or rotated - cannot import. "
++          G_fatal_error("%s", _("Input raster map is flipped or rotated - cannot import. "
+                           "You may use 'gdalwarp' to transform the map to North-up."));
+       cellhd.north = adfGeoTransform[3];
+@@ -305,7 +305,7 @@
+       cellhd.ew_res3 = cellhd.ew_res;
+       cellhd.ns_res3 = cellhd.ns_res;
+-      G_warning(_("Map bounds have been constrained to geographic "
++      G_warning("%s", _("Map bounds have been constrained to geographic "
+           "coordinates. You will almost certainly want to check "
+           "map bounds and resolution with r.info and reset them "
+           "with r.region before going any further."));
+@@ -325,7 +325,7 @@
+        * assume the user has a terminal open */
+       if (GPJ_wkt_to_grass(&cellhd, &proj_info,
+                            &proj_units, GDALGetProjectionRef(hDS), 0) < 0) {
+-          G_fatal_error(_("Unable to convert input map projection to GRASS "
++          G_fatal_error("%s", _("Unable to convert input map projection to GRASS "
+                           "format; cannot create new location."));
+       }
+       else {
+@@ -338,7 +338,7 @@
+       /* Projection only required for checking so convert non-interactively */
+       if (GPJ_wkt_to_grass(&cellhd, &proj_info,
+                            &proj_units, GDALGetProjectionRef(hDS), 0) < 0)
+-          G_warning(_("Unable to convert input raster map projection information to "
++          G_warning("%s", _("Unable to convert input raster map projection information to "
+                      "GRASS format for checking"));
+       else {
+           /* -------------------------------------------------------------------- */
+@@ -354,7 +354,7 @@
+           if (flag_o->answer) {
+               cellhd.proj = loc_wind.proj;
+               cellhd.zone = loc_wind.zone;
+-              G_warning(_("Over-riding projection check"));
++              G_warning("%s", _("Over-riding projection check"));
+           }
+           else if (loc_wind.proj != cellhd.proj
+                    || (projcomp_error = G_compare_projections(loc_proj_info,
+@@ -443,16 +443,16 @@
+               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 "
++              G_message("%s", _("Projection of input dataset and current location "
+                          "appear to match"));
+           }
+       }
+     }
+-    G_verbose_message(_("Proceeding with import..."));
++    G_verbose_message("%s", _("Proceeding with import..."));
+     /* -------------------------------------------------------------------- */
+     /*      Set the active window to match the available data.              */
+@@ -569,7 +569,7 @@
+           if (parm.target->answer) {
+               SetupReprojector(GDALGetGCPProjection(hDS),
+                                parm.target->answer, &iproj, &oproj);
+-              G_message(_("Re-projecting GCPs table:"));
++              G_message("%s", _("Re-projecting GCPs table:"));
+               G_message(_("* Input projection for GCP table: %s"),
+                         iproj.proj);
+               G_message(_("* Output projection for GCP table: %s"),
+@@ -630,10 +630,10 @@
+       if (strcmp(G_mapset(), "PERMANENT") == 0) {
+           G__put_window(&cur_wind, "", "DEFAULT_WIND");
+-          G_message(_("Default region for this location updated"));
++          G_message("%s", _("Default region for this location updated"));
+       }
+       G_put_window(&cur_wind);
+-      G_message(_("Region for the current mapset updated"));
++      G_message("%s", _("Region for the current mapset updated"));
+     }
+     exit(EXIT_SUCCESS);
+@@ -661,7 +661,7 @@
+     GPJ_wkt_to_grass(&cellhd, &proj_info, &proj_units, pszSrcWKT, 0);
+     if (pj_get_kv(iproj, proj_info, proj_units) < 0)
+-      G_fatal_error(_("Unable to translate projection key values of input GCPs"));
++      G_fatal_error("%s", _("Unable to translate projection key values of input GCPs"));
+     /* -------------------------------------------------------------------- */
+     /*      Get the projection of the target location.                      */
+@@ -677,18 +677,18 @@
+       /* Get projection info from target location */
+       if ((out_proj_info = G_get_projinfo()) == NULL)
+-          G_fatal_error(_("Unable to get projection info of target location"));
++          G_fatal_error("%s", _("Unable to get projection info of target location"));
+       if ((out_unit_info = G_get_projunits()) == NULL)
+-          G_fatal_error(_("Unable to get projection units of target location"));
++          G_fatal_error("%s", _("Unable to get projection units of target location"));
+       if (pj_get_kv(oproj, out_proj_info, out_unit_info) < 0)
+-          G_fatal_error(_("Unable to get projection key values of target location"));
++          G_fatal_error("%s", _("Unable to get projection key values of target location"));
+     }
+     else {                    /* can't access target mapset */
+       sprintf(errbuf, _("Mapset <%s> in target location <%s> - "),
+               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 */
+--- grass-6.4.3/raster/r.out.gdal/export_band.c.orig   2011-06-04 11:52:09.000000000 +0200
++++ grass-6.4.3/raster/r.out.gdal/export_band.c        2014-05-24 21:50:37.025734798 +0200
+@@ -62,7 +62,7 @@
+     void *bufer = G_allocate_raster_buf(maptype);
+     if (bufer == NULL) {
+-      G_warning(_("Unable to allocate buffer for reading raster map"));
++      G_warning("%s", _("Unable to allocate buffer for reading raster map"));
+       return -1;
+     }
+@@ -251,7 +251,7 @@
+     GDALRasterBandH hBand = GDALGetRasterBand(hMEMDS, band);
+     if (hBand == NULL) {
+-      G_warning(_("Unable to get raster band"));
++      G_warning("%s", _("Unable to get raster band"));
+       return -1;
+     }
+@@ -370,7 +370,7 @@
+     void *bufer = G_allocate_raster_buf(maptype);
+     if (bufer == NULL) {
+-      G_warning(_("Unable to allocate buffer for reading raster map"));
++      G_warning("%s", _("Unable to allocate buffer for reading raster map"));
+       return -1;
+     }
+@@ -411,7 +411,7 @@
+           if (GDALRasterIO
+               (hBand, GF_Write, 0, row, cols, 1, bufer, cols, 1, datatype,
+                0, 0) >= CE_Failure) {
+-              G_warning(_("Unable to write GDAL raster file"));
++              G_warning("%s", _("Unable to write GDAL raster file"));
+               return -1;
+           }
+           G_percent(row + 1, rows, 2);
+@@ -444,7 +444,7 @@
+           if (GDALRasterIO
+               (hBand, GF_Write, 0, row, cols, 1, bufer, cols, 1, datatype,
+                0, 0) >= CE_Failure) {
+-              G_warning(_("Unable to write GDAL raster file"));
++              G_warning("%s", _("Unable to write GDAL raster file"));
+               return -1;
+           }
+           G_percent(row + 1, rows, 2);
+@@ -477,7 +477,7 @@
+           if (GDALRasterIO
+               (hBand, GF_Write, 0, row, cols, 1, bufer, cols, 1, datatype,
+                0, 0) >= CE_Failure) {
+-              G_warning(_("Unable to write GDAL raster file"));
++              G_warning("%s", _("Unable to write GDAL raster file"));
+               return -1;
+           }
+           G_percent(row + 1, rows, 2);
+@@ -495,7 +495,7 @@
+     switch (datatype) {
+     case GDT_Byte:
+       if (min < TYPE_BYTE_MIN || max > TYPE_BYTE_MAX) {
+-          G_warning(_("Selected GDAL datatype does not cover data range."));
++          G_warning("%s", _("Selected GDAL datatype does not cover data range."));
+           G_warning(_("GDAL datatype: %s, range: %d - %d"),
+                     GDALGetDataTypeName(datatype), TYPE_BYTE_MIN,
+                     TYPE_BYTE_MAX);
+@@ -507,7 +507,7 @@
+     case GDT_UInt16:
+       if (min < TYPE_UINT16_MIN || max > TYPE_UINT16_MAX) {
+-          G_warning(_("Selected GDAL datatype does not cover data range."));
++          G_warning("%s", _("Selected GDAL datatype does not cover data range."));
+           G_warning(_("GDAL datatype: %s, range: %d - %d"),
+                     GDALGetDataTypeName(datatype), TYPE_UINT16_MIN,
+                     TYPE_UINT16_MAX);
+@@ -520,7 +520,7 @@
+     case GDT_Int16:
+     case GDT_CInt16:
+       if (min < TYPE_INT16_MIN || max > TYPE_INT16_MAX) {
+-          G_warning(_("Selected GDAL datatype does not cover data range."));
++          G_warning("%s", _("Selected GDAL datatype does not cover data range."));
+           G_warning(_("GDAL datatype: %s, range: %d - %d"),
+                     GDALGetDataTypeName(datatype), TYPE_INT16_MIN,
+                     TYPE_INT16_MAX);
+@@ -533,7 +533,7 @@
+     case GDT_Int32:
+     case GDT_CInt32:
+       if (min < TYPE_INT32_MIN || max > TYPE_INT32_MAX) {
+-          G_warning(_("Selected GDAL datatype does not cover data range."));
++          G_warning("%s", _("Selected GDAL datatype does not cover data range."));
+           G_warning(_("GDAL datatype: %s, range: %d - %d"),
+                     GDALGetDataTypeName(datatype), TYPE_INT32_MIN,
+                     TYPE_INT32_MAX);
+@@ -545,7 +545,7 @@
+     case GDT_UInt32:
+       if (min < TYPE_UINT32_MIN || max > TYPE_UINT32_MAX) {
+-          G_warning(_("Selected GDAL datatype does not cover data range."));
++          G_warning("%s", _("Selected GDAL datatype does not cover data range."));
+           G_warning(_("GDAL datatype: %s, range: %u - %u"),
+                     GDALGetDataTypeName(datatype), TYPE_UINT32_MIN,
+                     TYPE_UINT32_MAX);
+@@ -558,7 +558,7 @@
+     case GDT_Float32:
+     case GDT_CFloat32:
+       if (min < TYPE_FLOAT32_MIN || max > TYPE_FLOAT32_MAX) {
+-          G_warning(_("Selected GDAL datatype does not cover data range."));
++          G_warning("%s", _("Selected GDAL datatype does not cover data range."));
+           G_warning(_("GDAL datatype: %s, range: %g - %g"),
+                     GDALGetDataTypeName(datatype), TYPE_FLOAT32_MIN,
+                     TYPE_FLOAT32_MAX);
+@@ -572,7 +572,7 @@
+     case GDT_CFloat64:
+       /* not possible because DCELL is FLOAT64, not 128bit floating point, but anyway... */
+       if (min < TYPE_FLOAT64_MIN || max > TYPE_FLOAT64_MAX) {
+-          G_warning(_("Selected GDAL datatype does not cover data range."));
++          G_warning("%s", _("Selected GDAL datatype does not cover data range."));
+           G_warning(_("GDAL datatype: %s, range: %g - %g"),
+                     GDALGetDataTypeName(datatype), TYPE_FLOAT64_MIN,
+                     TYPE_FLOAT64_MAX);
+--- grass-6.4.3/raster/r.out.gdal/main.c.orig  2012-06-16 11:52:16.000000000 +0200
++++ grass-6.4.3/raster/r.out.gdal/main.c       2014-06-04 17:16:01.836268888 +0200
+@@ -46,7 +46,7 @@
+     db_init_string(&gdal_formats);
+     if (*formats)
+-      fprintf(stdout, _("Supported formats:\n"));
++      fputs(_("Supported formats:\n"), stdout);
+     for (iDr = 0; iDr < GDALGetDriverCount(); iDr++) {
+@@ -269,7 +269,7 @@
+                     format->answer);
+           hMEMDriver = GDALGetDriverByName("MEM");
+           if (hMEMDriver == NULL)
+-              G_fatal_error(_("Unable to get in-memory raster driver"));
++              G_fatal_error("%s", _("Unable to get in-memory raster driver"));
+       }
+       else
+@@ -421,7 +421,7 @@
+       /* Check if raster data range is outside of the range of 
+        * given GDAL datatype, not even overlapping */
+       if (range_check(export_min, export_max, datatype))
+-          G_fatal_error(_("Raster export would result in complete data loss, aborting."));
++          G_fatal_error("%s", _("Raster export would result in complete data loss, aborting."));
+       /* Precision tests */
+       for (band = 0; band < ref.nfiles; band++) {
+@@ -479,7 +479,7 @@
+       default_nodataval = 0;
+       /* Check if given nodata value can be represented by selected GDAL datatype */
+       if (nodataval_check(nodataval, datatype)) {
+-          G_fatal_error(_("Raster export aborted."));
++          G_fatal_error("%s", _("Raster export aborted."));
+       }
+     }
+     /* Set reasonable default nodata value */
+@@ -489,7 +489,7 @@
+     }
+     /* exact range and nodata checks for each band */
+-    G_message(_("Checking GDAL data type and nodata value"));
++    G_message("%s", _("Checking GDAL data type and nodata value"));
+     for (band = 0; band < ref.nfiles; band++) {
+       if (ref.nfiles > 1) {
+           G_verbose_message(_("Checking options for raster map <%s> (band %d)..."),
+@@ -506,13 +506,13 @@
+       /* nodata value is present in the data to be exported */
+       if (retval == -1) {
+           if (flag_f->answer)
+-              G_warning(_("Forcing raster export."));
++              G_warning("%s", _("Forcing raster export."));
+           else
+-              G_fatal_error(_("Raster export aborted."));
++              G_fatal_error("%s", _("Raster export aborted."));
+       }
+       /* data don't fit into range of GDAL datatype */
+       else if (retval == -2) {
+-          G_fatal_error(_("Raster export aborted."));
++          G_fatal_error("%s", _("Raster export aborted."));
+       }
+     }
+@@ -533,13 +533,13 @@
+     GDALDatasetH hCurrDS = NULL, hMEMDS = NULL, hDstDS = NULL;
+     if (!output->answer)
+-      G_fatal_error(_("Output file name not specified"));
++      G_fatal_error("%s", _("Output file name not specified"));
+     if (hMEMDriver) {
+       hMEMDS =
+           GDALCreate(hMEMDriver, "", cellhead.cols, cellhead.rows,
+                      ref.nfiles, datatype, papszOptions);
+       if (hMEMDS == NULL)
+-          G_fatal_error(_("Unable to create dataset using "
++          G_fatal_error("%s", _("Unable to create dataset using "
+                           "memory raster driver"));
+       hCurrDS = hMEMDS;
+     }
+@@ -563,7 +563,7 @@
+     adfGeoTransform[4] = 0.0;
+     adfGeoTransform[5] = -1 * cellhead.ns_res;
+     if (GDALSetGeoTransform(hCurrDS, adfGeoTransform) >= CE_Failure)
+-      G_warning(_("Unable to set geo transform"));
++      G_warning("%s", _("Unable to set geo transform"));
+     /* Set Projection  */
+     CPLErr ret;
+@@ -571,13 +571,13 @@
+     if (srswkt)
+       ret = GDALSetProjection(hCurrDS, srswkt);
+     if (!srswkt || ret == CE_Failure)
+-      G_warning(_("Unable to set projection"));
++      G_warning("%s", _("Unable to set projection"));
+     /* Add metadata */
+     AttachMetadata(hCurrDS, metaopt->answers);
+     /* Export to GDAL raster */
+-    G_message(_("Exporting to GDAL raster"));
++    G_message("%s", _("Exporting to GDAL raster"));
+     for (band = 0; band < ref.nfiles; band++) {
+       if (ref.nfiles > 1) {
+           G_verbose_message(_("Exporting raster map <%s> (band %d)..."),
+@@ -628,7 +628,7 @@
+     switch (datatype) {
+     case GDT_Byte:
+       if (max < TYPE_BYTE_MIN || min > TYPE_BYTE_MAX) {
+-          G_warning(_("Selected GDAL datatype does not cover data range."));
++          G_warning("%s", _("Selected GDAL datatype does not cover data range."));
+           G_warning(_("GDAL datatype: %s, range: %d - %d"),
+                     GDALGetDataTypeName(datatype), TYPE_BYTE_MIN,
+                     TYPE_BYTE_MAX);
+@@ -640,7 +640,7 @@
+     case GDT_UInt16:
+       if (max < TYPE_UINT16_MIN || min > TYPE_UINT16_MAX) {
+-          G_warning(_("Selected GDAL datatype does not cover data range."));
++          G_warning("%s", _("Selected GDAL datatype does not cover data range."));
+           G_warning(_("GDAL datatype: %s, range: %d - %d"),
+                     GDALGetDataTypeName(datatype), TYPE_UINT16_MIN,
+                     TYPE_UINT16_MAX);
+@@ -666,7 +666,7 @@
+     case GDT_Int32:
+     case GDT_CInt32:
+       if (max < TYPE_INT32_MIN || min > TYPE_INT32_MAX) {
+-          G_warning(_("Selected GDAL datatype does not cover data range."));
++          G_warning("%s", _("Selected GDAL datatype does not cover data range."));
+           G_warning(_("GDAL datatype: %s, range: %d - %d"),
+                     GDALGetDataTypeName(datatype), TYPE_INT32_MIN,
+                     TYPE_INT32_MAX);
+@@ -678,7 +678,7 @@
+     case GDT_UInt32:
+       if (max < TYPE_UINT32_MIN || min > TYPE_UINT32_MAX) {
+-          G_warning(_("Selected GDAL datatype does not cover data range."));
++          G_warning("%s", _("Selected GDAL datatype does not cover data range."));
+           G_warning(_("GDAL datatype: %s, range: %u - %u"),
+                     GDALGetDataTypeName(datatype), TYPE_UINT32_MIN,
+                     TYPE_UINT32_MAX);
+@@ -691,7 +691,7 @@
+     case GDT_Float32:
+     case GDT_CFloat32:
+       if (max < TYPE_FLOAT32_MIN || min > TYPE_FLOAT32_MAX) {
+-          G_warning(_("Selected GDAL datatype does not cover data range."));
++          G_warning("%s", _("Selected GDAL datatype does not cover data range."));
+           G_warning(_("GDAL datatype: %s, range: %g - %g"),
+                     GDALGetDataTypeName(datatype), TYPE_FLOAT32_MIN,
+                     TYPE_FLOAT32_MAX);
+--- grass-6.4.3/raster/r.out.gdal/main.c.orig  2014-06-04 21:47:58.345928800 +0200
++++ grass-6.4.3/raster/r.out.gdal/main.c       2014-06-07 15:42:39.857649779 +0200
+@@ -653,7 +653,7 @@
+     case GDT_Int16:
+     case GDT_CInt16:
+       if (max < TYPE_INT16_MIN || min > TYPE_INT16_MAX) {
+-          G_warning(_("Selected GDAL datatype does not cover data range."));
++          G_warning("%s", _("Selected GDAL datatype does not cover data range."));
+           G_warning(_("GDAL datatype: %s, range: %d - %d"),
+                     GDALGetDataTypeName(datatype), TYPE_INT16_MIN,
+                     TYPE_INT16_MAX);
+--- grass-6.4.3/raster/r.surf.fractal/spec_syn.c.orig  2008-12-13 11:45:16.000000000 +0100
++++ grass-6.4.3/raster/r.surf.fractal/spec_syn.c       2014-05-24 22:13:49.592372440 +0200
+@@ -58,7 +58,7 @@
+     /* Calculate all the preliminary random coefficients. */
+     /* ================================================== */
+-    G_message(_("Preliminary surface calculations..."));
++    G_message("%s", _("Preliminary surface calculations..."));
+     data_reset(data, nn);
+     for (row = 0; row <= nn / 2; row++)
+--- grass-6.4.3/raster/r.surf.fractal/process.c.orig   2008-12-13 11:45:16.000000000 +0100
++++ grass-6.4.3/raster/r.surf.fractal/process.c        2014-06-04 18:59:43.916139199 +0200
+@@ -50,7 +50,7 @@
+     /*------------------------------------------------------------------*/
+     if (nn * nn * sizeof(double) < 1)
+-      G_fatal_error(_("Unable to allocate data buffer. "
++      G_fatal_error("%s", _("Unable to allocate data buffer. "
+                       "Check current region with g.region."));
+     
+     data[0] = (double *)G_malloc(nn * nn * sizeof(double));
+--- grass-6.4.3/raster/r.out.png/r.out.png.c.orig      2011-11-26 11:52:03.000000000 +0100
++++ grass-6.4.3/raster/r.out.png/r.out.png.c   2014-05-24 22:14:21.129038450 +0200
+@@ -156,7 +156,7 @@
+     /* please, remove before GRASS 7 released */
+     if (bequiet->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+@@ -449,14 +449,14 @@
+     int width = DBL_DIG;
+     FILE *ofile;
+-    G_verbose_message(_("Writing world file"));
++    G_verbose_message("%s", _("Writing world file"));
+     if (fname == NULL)
+-      G_fatal_error(_("Got null file name"));
++      G_fatal_error("%s", _("Got null file name"));
+     if (win == NULL)
+-      G_fatal_error(_("Got null region struct"));
++      G_fatal_error("%s", _("Got null region struct"));
+     if ((ofile = fopen(fname, "w")) == NULL)
+-      G_fatal_error(_("Unable to open world file for writing"));
++      G_fatal_error("%s", _("Unable to open world file for writing"));
+     fprintf(ofile, "%36.*f \n", width, win->ew_res);
+     fprintf(ofile, "%36.*f \n", width, 0.0);
+--- grass-6.4.3/raster/r.terraflow/main.cc.orig        2012-08-25 11:52:04.000000000 +0200
++++ grass-6.4.3/raster/r.terraflow/main.cc     2014-05-24 22:15:20.752370539 +0200
+@@ -178,7 +178,7 @@
+     const char *tmpdir = G_tempfile();
+     
+     if (G_mkdir(tmpdir) == -1)
+-      G_fatal_error(_("Unable to create temp dir"));
++      G_fatal_error("%s", _("Unable to create temp dir"));
+     opt->streamdir = G_store(tmpdir);
+   }
+   else
+@@ -188,7 +188,7 @@
+ /* please, remove before GRASS 7 released */
+   if(quiet->answer) {
+-    G_warning(_("The '-q' flag is superseded and will be removed "
++    G_warning("%s", _("The '-q' flag is superseded and will be removed "
+       "in future. Please use '--quiet' instead."));
+     G_putenv("GRASS_VERBOSE","0");
+     opt->verbose = FALSE;
+@@ -364,7 +364,7 @@
+     G_fatal_error (_("Raster map <%s> not found"), cellname);
+   }
+   if (G_read_range(cellname, mapset, &r) == -1) {
+-    G_fatal_error(_("cannot read range"));
++    G_fatal_error("%s", _("cannot read range"));
+   }
+   /*fprintf(stderr, "%s range is: min=%d, max=%d\n", cellname, r.min, r.max);*/
+   int v[6];
+@@ -386,7 +386,7 @@
+  
+   if (G_write_colors(cellname, mapset, &colors) == -1) {
+-    G_fatal_error(_("cannot write colors"));
++    G_fatal_error("%s", _("cannot write colors"));
+   }
+   G_free_colors(&colors);
+ }
+@@ -404,14 +404,14 @@
+     G_fatal_error (_("Raster map <%s> not found"), cellname);
+   }
+   if (G_read_range(cellname, mapset, &r) == -1) {
+-    G_fatal_error(_("cannot read range"));
++    G_fatal_error("%s", _("cannot read range"));
+   }
+   G_init_colors(&colors);
+   G_make_random_colors(&colors, 1, r.max);
+   if (G_write_colors(cellname, mapset, &colors) == -1) {
+-    G_fatal_error(_("cannot write colors"));
++    G_fatal_error("%s", _("cannot write colors"));
+   }
+   G_free_colors(&colors);
+ }
+--- grass-6.4.3/raster/r.out.tiff/r.out.tiff.c.orig    2008-11-25 02:30:48.000000000 +0100
++++ grass-6.4.3/raster/r.out.tiff/r.out.tiff.c 2014-05-24 22:39:30.332340326 +0200
+@@ -141,7 +141,7 @@
+     /* please, remove before GRASS 7 released */
+     if (vflag->answer) {
+       putenv("GRASS_VERBOSE=3");
+-      G_warning(_("The '-v' flag is superseded and will be removed "
++      G_warning("%s", _("The '-v' flag is superseded and will be removed "
+                   "in future. Please use '--verbose' instead."));
+     }
+@@ -170,7 +170,7 @@
+                     inopt->answer);
+     if ((G_get_window(&cellhd) < 0))
+-      G_fatal_error(_("Can't set window"));
++      G_fatal_error("%s", _("Can't set window"));
+     G_read_colors(inopt->answer, mapset, &colors);
+     if ((isfp = G_raster_map_is_fp(inopt->answer, mapset)))
+@@ -180,7 +180,7 @@
+     G_set_null_value_color(255, 255, 255, &colors);
+     if (palette && (colors.cmax - colors.cmin > 255))
+-      G_fatal_error(_("Color map for palette must have less "
++      G_fatal_error("%s", _("Color map for palette must have less "
+                       "than 256 colors for the available range of data"));
+     cell = G_allocate_cell_buf();
+@@ -280,7 +280,7 @@
+           for (i = 0; i < nrow; i++) {
+               if (G_get_c_raster_row(in, cells[i], row + i) < 0)
+-                  G_fatal_error(_("Reading raster map..."));
++                  G_fatal_error("%s", _("Reading raster map..."));
+           }
+           for (col = 0; col < imagewidth; col += tilewidth) {
+@@ -411,15 +411,15 @@
+     int width = DBL_DIG;
+     FILE *outfile;
+-    G_message(_("Writing TIFF World file"));
++    G_message("%s", _("Writing TIFF World file"));
+     if (fname == NULL)
+-      G_fatal_error(_("Got null file name"));
++      G_fatal_error("%s", _("Got null file name"));
+     if (win == NULL)
+-      G_fatal_error(_("Got null region struct"));
++      G_fatal_error("%s", _("Got null region struct"));
+     if ((outfile = fopen(fname, "w")) == NULL)
+-      G_fatal_error(_("Unable to open TIFF world file for writing"));
++      G_fatal_error("%s", _("Unable to open TIFF world file for writing"));
+     fprintf(outfile, "%36.*f \n", width, win->ew_res);
+     fprintf(outfile, "%36.*f \n", width, 0.0);
+--- grass-6.4.3/raster/r.digit/get_type.c.orig 2008-11-25 02:30:42.000000000 +0100
++++ grass-6.4.3/raster/r.digit/get_type.c      2014-05-24 22:46:20.848998435 +0200
+@@ -28,13 +28,13 @@
+     for (;;) {
+       G_clear_screen();
+-      fprintf(stdout, _("Please choose one of the following\n"));
+-      fprintf(stdout, _("   A define an area\n"));
+-      fprintf(stdout, _("   C define a circle\n"));
+-      fprintf(stdout, _("   L define a line\n"));
+-      fprintf(stdout, _("   X exit (and create map)\n"));
+-      fprintf(stdout, _("   Q quit (without creating map)\n"));
+-      fprintf(stdout, "> ");
++      fputs(_("Please choose one of the following\n"), stdout);
++      fputs(_("   A define an area\n"), stdout);
++      fputs(_("   C define a circle\n"), stdout);
++      fputs(_("   L define a line\n"), stdout);
++      fputs(_("   X exit (and create map)\n"), stdout);
++      fputs(_("   Q quit (without creating map)\n"), stdout);
++      fputs("> ", stdout);
+       if (!G_gets(buffer))
+           continue;
+       switch (buffer[0] & 0177) {
+--- grass-6.4.3/raster/r.digit/main.c.orig     2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/raster/r.digit/main.c  2014-06-04 19:00:20.709471766 +0200
+@@ -76,7 +76,7 @@
+     /* open the graphics and get it setup */
+     if (R_open_driver() != 0)
+-      G_fatal_error(_("No graphics device selected!"));
++      G_fatal_error("%s", _("No graphics device selected!"));
+     setup_graphics();
+     /* Do the digitizing and record the output into the polyfile */
+@@ -95,7 +95,7 @@
+     if (any)
+       create_map(mapname, polyfile);
+     else
+-      G_message(_("No map created"));
++      G_message("%s", _("No map created"));
+     unlink(polyfile);
+--- grass-6.4.3/raster/r.mapcalc/map3.c.orig   2008-11-25 02:30:49.000000000 +0100
++++ grass-6.4.3/raster/r.mapcalc/map3.c        2014-06-11 18:07:20.823598790 +0200
+@@ -121,7 +121,7 @@
+           if (G3d_putValue(handle, i, row, depth, (char *)&x, DCELL_TYPE) <
+               0)
+-              G_fatal_error(_("Error writing data"));
++              G_fatal_error("%s", _("Error writing data"));
+       }
+       break;
+     case FCELL_TYPE:
+@@ -135,7 +135,7 @@
+           if (G3d_putValue(handle, i, row, depth, (char *)&x, FCELL_TYPE) <
+               0)
+-              G_fatal_error(_("Error writing data"));
++              G_fatal_error("%s", _("Error writing data"));
+       }
+       break;
+     case DCELL_TYPE:
+@@ -149,7 +149,7 @@
+           if (G3d_putValue(handle, i, row, depth, (char *)&x, DCELL_TYPE) <
+               0)
+-              G_fatal_error(_("Error writing data"));
++              G_fatal_error("%s", _("Error writing data"));
+       }
+       break;
+     }
+@@ -602,7 +602,7 @@
+     void *handle = omaps[fd];
+     if (!G3d_closeCell(handle))
+-      G_fatal_error(_("Unable to close output raster map"));
++      G_fatal_error("%s", _("Unable to close output raster map"));
+ }
+ void unopen_output_map(int fd)
+--- grass-6.4.3/raster3d/r3.cross.rast/main.c.orig     2013-07-15 14:15:28.000000000 +0200
++++ grass-6.4.3/raster3d/r3.cross.rast/main.c  2014-05-24 22:47:24.542330441 +0200
+@@ -52,7 +52,7 @@
+     if (map != NULL) {
+       if (!G3d_closeCell(map))
+-          G3d_fatalError(_("Unable to close 3D raster map"));
++          G3d_fatalError("%s", _("Unable to close 3D raster map"));
+     }
+     /*unopen the output map */
+@@ -62,7 +62,7 @@
+     if (elevfd != -1)
+       close_output_map(elevfd);
+-    G3d_fatalError(errorMsg);
++    G3d_fatalError("%s", errorMsg);
+     exit(EXIT_FAILURE);
+ }
+@@ -74,7 +74,7 @@
+ void close_output_map(int fd)
+ {
+     if (G_close_cell(fd) < 0)
+-      G_fatal_error(_("Unable to close output map"));
++      G_fatal_error("%s", _("Unable to close output map"));
+ }
+@@ -295,7 +295,7 @@
+     /*If not equal, set the 2D windows correct */
+     if (rows != region.rows || cols != region.cols) {
+       G_message
+-          (_("The 2D and 3D region settings are different. Using the 3D raster map settings to adjust the 2D region."));
++          ("%s", _("The 2D and 3D region settings are different. Using the 3D raster map settings to adjust the 2D region."));
+       G_get_set_window(&window2d);
+       window2d.ns_res = region.ns_res;
+       window2d.ew_res = region.ew_res;
+@@ -349,7 +349,7 @@
+           fatal_error(map, elevfd, -1, _("Illegal output file name"));
+       if (G_find_cell2(param.output->answer, ""))
+-          G_message(_("Output map already exists. Will be overwritten!"));
++          G_message("%s", _("Output map already exists. Will be overwritten!"));
+       if (output_type == FCELL_TYPE) {
+           outfd = G_open_raster_new(param.output->answer, FCELL_TYPE);
+--- grass-6.4.3/raster3d/r3.in.ascii/main.c.orig       2013-02-09 11:52:05.000000000 +0100
++++ grass-6.4.3/raster3d/r3.in.ascii/main.c    2014-05-25 06:46:15.561731599 +0200
+@@ -56,7 +56,7 @@
+       G3d_closeCell(map);
+     }
+-    G3d_fatalError(errorMsg);
++    G3d_fatalError("%s", errorMsg);
+ }
+ /*---------------------------------------------------------------------------*/
+@@ -189,7 +189,7 @@
+                 if (fscanf(fp, "%s", buff) != 1) {
+                     if (feof(fp))
+-                        G_warning(_("End of file reached while still loading data."));
++                        G_warning("%s", _("End of file reached while still loading data."));
+                   G_debug(3,
+                           "missing data at col=%d row=%d depth=%d last_value=[%.4f]",
+                           x + 1, region->rows - y, z + 1, value);
+@@ -202,7 +202,7 @@
+               }
+               else {
+                   if (sscanf(buff, "%lf", &value) != 1) {
+-                        G_warning(_("Invalid value detected"));
++                        G_warning("%s", _("Invalid value detected"));
+                         G_debug(1, "invalid value at col=%d row=%d depth=%d last_value=[%s]",
+                               x + 1, region->rows - y, z + 1, buff);
+                       fatalError("asciiToG3d: read failed");
+--- grass-6.4.3/raster3d/r3.in.v5d/main.c.orig 2011-08-20 11:52:07.000000000 +0200
++++ grass-6.4.3/raster3d/r3.in.v5d/main.c      2014-05-25 06:46:33.068397883 +0200
+@@ -46,7 +46,7 @@
+       /* should unopen map here! */
+     }
+-    G3d_fatalError(errorMsg);
++    G3d_fatalError("%s", errorMsg);
+ }
+ /*---------------------------------------------------------------------------*/
+--- grass-6.4.3/raster3d/r3.gwflow/main.c.orig 2011-08-20 11:52:07.000000000 +0200
++++ grass-6.4.3/raster3d/r3.gwflow/main.c      2014-05-25 06:46:59.395064020 +0200
+@@ -186,11 +186,11 @@
+     solver = param.solver->answer;
+     if (strcmp(solver, N_SOLVER_DIRECT_LU) == 0 && param.sparse->answer)
+-      G_fatal_error(_("The direct LU solver do not work with sparse matrices"));
++      G_fatal_error("%s", _("The direct LU solver do not work with sparse matrices"));
+     if (strcmp(solver, N_SOLVER_DIRECT_GAUSS) == 0 && param.sparse->answer)
+-      G_fatal_error(_("The direct Gauss solver do not work with sparse matrices"));
++      G_fatal_error("%s", _("The direct Gauss solver do not work with sparse matrices"));
+     if (strcmp(solver, N_SOLVER_DIRECT_CHOLESKY) == 0 && param.sparse->answer)
+-      G_fatal_error(_("The direct Cholesky solver do not work with sparse matrices"));
++      G_fatal_error("%s", _("The direct Cholesky solver do not work with sparse matrices"));
+     /*Set the defaults */
+@@ -291,7 +291,7 @@
+       N_solver_cholesky(les);
+     if (les == NULL)
+-      G_fatal_error(_("Unable to create and solve the linear equation system"));
++      G_fatal_error("%s", _("Unable to create and solve the linear equation system"));
+     /*write the result to the output file and copy the values to the data->phead array */
+--- grass-6.4.3/raster3d/r3.out.ascii/main.c.orig      2011-08-20 11:52:07.000000000 +0200
++++ grass-6.4.3/raster3d/r3.out.ascii/main.c   2014-05-25 06:47:23.691730176 +0200
+@@ -59,7 +59,7 @@
+     }
+-    G3d_fatalError(errorMsg);
++    G3d_fatalError("%s", errorMsg);
+ }
+ /*---------------------------------------------------------------------------*/
+--- grass-6.4.3/raster3d/r3.out.v5d/main.c.orig        2011-08-27 11:52:04.000000000 +0200
++++ grass-6.4.3/raster3d/r3.out.v5d/main.c     2014-05-25 06:47:50.341729615 +0200
+@@ -54,7 +54,7 @@
+           fatalError(_("Unable to close 3D raster map"));
+     }
+-    G3d_fatalError(errorMsg);
++    G3d_fatalError("%s", errorMsg);
+ }
+ /*---------------------------------------------------------------------------*/
+@@ -261,7 +261,7 @@
+     /* Write the v5d file */
+     if (!v5dWrite(1, 1, g))
+-      G_fatal_error(_("Failed writing V5D file"));
++      G_fatal_error("%s", _("Failed writing V5D file"));
+     /* Close the v5d file */
+     v5dClose();
+--- grass-6.4.3/raster3d/r3.out.vtk/errorHandling.c.orig       2011-08-27 11:52:04.000000000 +0200
++++ grass-6.4.3/raster3d/r3.out.vtk/errorHandling.c    2014-05-25 06:48:11.781729174 +0200
+@@ -49,7 +49,7 @@
+ {
+     if (fd != -1)
+       if (G_close_cell(fd) < 0) {
+-          G_warning(_("Unable to close input raster map"));
++          G_warning("%s", _("Unable to close input raster map"));
+           return 1;
+       }
+@@ -104,7 +104,7 @@
+     free(in);
+     if (error > 0)
+-      G3d_fatalError(_("Unable to close input raster maps"));
++      G3d_fatalError("%s", _("Unable to close input raster maps"));
+     return;
+ }
+--- grass-6.4.3/raster3d/r3.out.vtk/writeVTKHead.c.orig        2008-11-25 02:30:13.000000000 +0100
++++ grass-6.4.3/raster3d/r3.out.vtk/writeVTKHead.c     2014-06-04 19:01:41.012803426 +0200
+@@ -35,7 +35,7 @@
+                                      G3D_Region region, int dp,
+                                      double scale)
+ {
+-    G_debug(3,
++    G_debug(3, "%s",
+           _("write_vtk_structured_point_header: Writing VTKStructuredPoint-Header"));
+     /*Simple vtk ASCII header */
+@@ -91,7 +91,7 @@
+ void write_vtk_structured_grid_header(FILE * fp, char *vtkFile,
+                                     G3D_Region region)
+ {
+-    G_debug(3,
++    G_debug(3, "%s",
+           _("write_vtk_structured_grid_header: Writing VTKStructuredGrid-Header"));
+     fprintf(fp, "# vtk DataFile Version 3.0\n");
+     fprintf(fp, "GRASS 6 Export\n");
+@@ -112,7 +112,7 @@
+ void write_vtk_unstructured_grid_header(FILE * fp, char *vtkFile,
+                                       G3D_Region region)
+ {
+-    G_debug(3,
++    G_debug(3, "%s",
+           _("write_vtk_unstructured_grid_header: Writing VTKUnstructuredGrid-Header"));
+     fprintf(fp, "# vtk DataFile Version 3.0\n");
+     fprintf(fp, "GRASS 6 Export\n");
+--- grass-6.4.3/raster3d/r3.out.vtk/main.c.orig        2012-09-01 11:52:10.000000000 +0200
++++ grass-6.4.3/raster3d/r3.out.vtk/main.c     2014-06-07 15:43:43.414315121 +0200
+@@ -115,7 +115,7 @@
+     if (param.structgrid->answer) {
+       if (!param.top->answer || !param.bottom->answer)
+-          G3d_fatalError(_("Specify top and bottom map"));
++          G3d_fatalError("%s", _("Specify top and bottom map"));
+       mapset = NULL;
+       name = NULL;
+@@ -154,7 +154,7 @@
+                                  param.rgbmaps->answers[i]);
+           }
+           else {
+-              G3d_fatalError(_("Please provide three RGB 3D raster maps"));
++              G3d_fatalError("%s", _("Please provide three RGB 3D raster maps"));
+           }
+       }
+     }
+@@ -168,14 +168,14 @@
+                                  param.vectormaps->answers[i]);
+           }
+           else {
+-              G3d_fatalError(_("Please provide three 3D raster maps for the xyz-vector maps [x,y,z]"));
++              G3d_fatalError("%s", _("Please provide three 3D raster maps for the xyz-vector maps [x,y,z]"));
+           }
+       }
+     }
+     if (param.input->answers == NULL && param.rgbmaps->answers == NULL &&
+       param.vectormaps->answers == NULL) {
+-      G_warning(_("No 3D raster data, RGB or xyz-vector maps are provided. Will only write the geometry"));
++      G_warning("%s", _("No 3D raster data, RGB or xyz-vector maps are provided. Will only write the geometry"));
+     }
+     return;
+@@ -386,9 +386,9 @@
+     /*The precision of the output */
+     if (param.decimals->answer) {
+       if (sscanf(param.decimals->answer, "%d", &dp) != 1)
+-          G_fatal_error(_("failed to interpret dp as an integer"));
++          G_fatal_error("%s", _("failed to interpret dp as an integer"));
+       if (dp > 20 || dp < 0)
+-          G_fatal_error(_("dp has to be from 0 to 20"));
++          G_fatal_error("%s", _("dp has to be from 0 to 20"));
+     }
+     else {
+       dp = 8;                 /*This value is taken from the lib settings in G_format_easting */
+@@ -448,7 +448,7 @@
+       /*If not equal, set the 2D windows correct */
+       if (rows != region.rows || cols != region.cols) {
+-          G_message(_("The 2D and 3D region settings are different. "
++          G_message("%s", _("The 2D and 3D region settings are different. "
+                       "Using the 2D window settings to adjust the 2D part of the 3D region."));
+           G_get_set_window(&window2d);
+           window2d.ns_res = region.ns_res;
+@@ -486,12 +486,12 @@
+       }
+       if (G_close_cell(in->top) < 0) {
+-          G_fatal_error(_("Unable to close top raster map"));
++          G_fatal_error("%s", _("Unable to close top raster map"));
+       }
+       in->top = -1;
+       if (G_close_cell(in->bottom) < 0) {
+-          G_fatal_error(_("Unable to close bottom raster map"));
++          G_fatal_error("%s", _("Unable to close bottom raster map"));
+       }
+       in->bottom = -1;
+     }
+--- grass-6.4.3/raster3d/r3.out.vtk/writeVTKData.c.orig        2011-08-27 11:52:04.000000000 +0200
++++ grass-6.4.3/raster3d/r3.out.vtk/writeVTKData.c     2014-06-07 22:36:11.993799282 +0200
+@@ -119,7 +119,7 @@
+     rast_top = G_allocate_raster_buf(in->topMapType);
+     rast_bottom = G_allocate_raster_buf(in->bottomMapType);
+-    G_debug(3, _("write_vtk_points: Writing point coordinates"));
++    G_debug(3, "%s", _("write_vtk_points: Writing point coordinates"));
+     for (z = 0; z < depths; z++) {
+@@ -253,7 +253,7 @@
+     cols = region.cols;
+     depths = region.depths;
+-    G_debug(3, _("write_vtk_unstructured_grid_cells: Writing the cells"));
++    G_debug(3, "%s", _("write_vtk_unstructured_grid_cells: Writing the cells"));
+     fprintf(fp, "CELLS %i %i\n", region.cols * region.rows * region.depths,
+           region.cols * region.rows * region.depths * 9);
+@@ -426,7 +426,7 @@
+                                                          0.0);
+                       /*Test of value range, the data should be 1 byte gray values */
+                       if (value > 255 || value < 0) {
+-                          G_warning(_("Wrong 3D raster map values: Values should in between 0 and 255\n"));
++                          G_warning("%s", _("Wrong 3D raster map values: Values should in between 0 and 255\n"));
+                           fprintf(fp, "0 ");
+                       }
+                       else {
+@@ -459,7 +459,7 @@
+                                                          0.0);
+                       /*Test of value range, the data should be 1 byte gray values */
+                       if (value > 255 || value < 0) {
+-                          G_warning(_("Wrong 3D raster map values: Values should in between 0 and 255\n"));
++                          G_warning("%s", _("Wrong 3D raster map values: Values should in between 0 and 255\n"));
+                           fprintf(fp, "0 ");
+                       }
+                       else {
+--- grass-6.4.3/raster3d/r3.stats/main.c.orig  2011-08-13 11:52:04.000000000 +0200
++++ grass-6.4.3/raster3d/r3.stats/main.c       2014-05-25 06:48:32.538395389 +0200
+@@ -603,7 +603,7 @@
+     /* break if the wrong number of subranges are given */
+     if (nsteps <= 0)
+-      G_fatal_error(_("The number of subranges has to be equal or greater than 1"));
++      G_fatal_error("%s", _("The number of subranges has to be equal or greater than 1"));
+     infile = inputfile->answer;
+@@ -662,7 +662,7 @@
+       if (eqvals) {
+             /* sort the equal values array */
+-            G_message(_("Sort non-null values"));
++            G_message("%s", _("Sort non-null values"));
+             heapsort_eqvals(eqvals, eqvals->count);
+             /* create the statistic table with equal values */
+--- grass-6.4.3/raster3d/r3.to.rast/main.c.orig        2013-07-15 14:15:28.000000000 +0200
++++ grass-6.4.3/raster3d/r3.to.rast/main.c     2014-05-25 06:48:59.265061526 +0200
+@@ -52,7 +52,7 @@
+     /* Close files and exit */
+     if (map != NULL) {
+       if (!G3d_closeCell(map))
+-          G3d_fatalError(_("Unable to close 3D raster map"));
++          G3d_fatalError("%s", _("Unable to close 3D raster map"));
+     }
+     if (fd != NULL) {
+@@ -60,7 +60,7 @@
+           G_unopen_cell(fd[i]);
+     }
+-    G3d_fatalError(errorMsg);
++    G3d_fatalError("%s", errorMsg);
+     exit(EXIT_FAILURE);
+ }
+@@ -191,7 +191,7 @@
+ void close_output_map(int fd)
+ {
+     if (G_close_cell(fd) < 0)
+-      G_fatal_error(_("Unable to close output map"));
++      G_fatal_error("%s", _("Unable to close output map"));
+ }
+ /* ************************************************************************* */
+@@ -264,7 +264,7 @@
+       /*If not equal, set the 3D window correct */
+       if (rows != region.rows || cols != region.cols) {
+-          G_message(_("The 2D and 3D region settings are different. "
++          G_message("%s", _("The 2D and 3D region settings are different. "
+                       "Using the 2D window settings to adjust the 2D part of the 3D region."));
+           G_get_set_window(&region2d);
+           region.ns_res = region2d.ns_res;
+--- grass-6.4.3/raster3d/base/r3.info.main.c.orig      2011-08-13 11:52:04.000000000 +0200
++++ grass-6.4.3/raster3d/base/r3.info.main.c   2014-05-25 06:53:44.541722239 +0200
+@@ -155,7 +155,7 @@
+            hist_ok ? hist.mapid : "??") > 0)
+           printline(line);
+       else
+-          G_fatal_error(_("Cannot allocate memory for string"));
++          G_fatal_error("%s", _("Cannot allocate memory for string"));
+       if (G_asprintf
+@@ -163,25 +163,25 @@
+            hist_ok ? hist.creator : "??") > 0)
+           printline(line);
+       else
+-          G_fatal_error(_("Cannot allocate memory for string"));
++          G_fatal_error("%s", _("Cannot allocate memory for string"));
+       if (G_asprintf(&line, "Location: %s", G_location()) > 0)
+           printline(line);
+       else
+-          G_fatal_error(_("Cannot allocate memory for string"));
++          G_fatal_error("%s", _("Cannot allocate memory for string"));
+       if (G_asprintf(&line, "DataBase: %s", G_gisdbase()) > 0)
+           printline(line);
+       else
+-          G_fatal_error(_("Cannot allocate memory for string"));
++          G_fatal_error("%s", _("Cannot allocate memory for string"));
+       if (G_asprintf
+           (&line, "Title:    %s ( %s )", cats_ok ? cats.title : "??",
+            hist_ok ? hist.title : "??") > 0)
+           printline(line);
+       else
+-          G_fatal_error(_("Cannot allocate memory for string"));
++          G_fatal_error("%s", _("Cannot allocate memory for string"));
+       /*This shows the TimeStamp */
+       if (time_ok && (first_time_ok || second_time_ok)) {
+@@ -192,13 +192,13 @@
+           if (G_asprintf(&line, "Timestamp: %s", timebuff) > 0)
+               printline(line);
+           else
+-              G_fatal_error(_("Cannot allocate memory for string"));
++              G_fatal_error("%s", _("Cannot allocate memory for string"));
+       }
+       else {
+           if (G_asprintf(&line, "Timestamp: none") > 0)
+               printline(line);
+           else
+-              G_fatal_error(_("Cannot allocate memory for string"));
++              G_fatal_error("%s", _("Cannot allocate memory for string"));
+       }
+@@ -214,45 +214,45 @@
+            "3d cell", cats_ok ? tmp1 : "??") > 0)
+           printline(line);
+       else
+-          G_fatal_error(_("Cannot allocate memory for string"));
++          G_fatal_error("%s", _("Cannot allocate memory for string"));
+       if (G_asprintf(&line, "  Data Type:    %s",
+                      (data_type == FCELL_TYPE ? "float" :
+                       (data_type == DCELL_TYPE ? "double" : "??"))) > 0)
+           printline(line);
+       else
+-          G_fatal_error(_("Cannot allocate memory for string"));
++          G_fatal_error("%s", _("Cannot allocate memory for string"));
+       if (head_ok) {
+           if (G_asprintf(&line, "  Rows:         %d", cellhd.rows) > 0)
+               printline(line);
+           else
+-              G_fatal_error(_("Cannot allocate memory for string"));
++              G_fatal_error("%s", _("Cannot allocate memory for string"));
+           if (G_asprintf(&line, "  Columns:      %d", cellhd.cols) > 0)
+               printline(line);
+           else
+-              G_fatal_error(_("Cannot allocate memory for string"));
++              G_fatal_error("%s", _("Cannot allocate memory for string"));
+           if (G_asprintf(&line, "  Depths:       %d", cellhd.depths) > 0)
+               printline(line);
+           else
+-              G_fatal_error(_("Cannot allocate memory for string"));
++              G_fatal_error("%s", _("Cannot allocate memory for string"));
+           if (G_asprintf
+               (&line, "  Total Cells:  %ld",
+                (long)cellhd.rows * cellhd.cols * cellhd.depths) > 0)
+               printline(line);
+           else
+-              G_fatal_error(_("Cannot allocate memory for string"));
++              G_fatal_error("%s", _("Cannot allocate memory for string"));
+           if (G_asprintf
+               (&line, "       Projection: %s (zone %d)",
+                G_database_projection_name(), G_zone()) > 0)
+               printline(line);
+           else
+-              G_fatal_error(_("Cannot allocate memory for string"));
++              G_fatal_error("%s", _("Cannot allocate memory for string"));
+           G_format_northing(cellhd.north, tmp1, cellhd.proj);
+           G_format_northing(cellhd.south, tmp2, cellhd.proj);
+@@ -262,7 +262,7 @@
+                tmp2, tmp3) > 0)
+               printline(line);
+           else
+-              G_fatal_error(_("Cannot allocate memory for string"));
++              G_fatal_error("%s", _("Cannot allocate memory for string"));
+           G_format_easting(cellhd.east, tmp1, cellhd.proj);
+           G_format_easting(cellhd.west, tmp2, cellhd.proj);
+@@ -272,7 +272,7 @@
+                tmp2, tmp3) > 0)
+               printline(line);
+           else
+-              G_fatal_error(_("Cannot allocate memory for string"));
++              G_fatal_error("%s", _("Cannot allocate memory for string"));
+           format_double(cellhd.top, tmp1);
+           format_double(cellhd.bottom, tmp2);
+@@ -282,7 +282,7 @@
+                tmp2, tmp3) > 0)
+               printline(line);
+           else
+-              G_fatal_error(_("Cannot allocate memory for string"));
++              G_fatal_error("%s", _("Cannot allocate memory for string"));
+           if (0 == G3d_range_load(g3map))
+               G_fatal_error(_("Unable to read range of 3D raster map <%s>"), name);
+@@ -295,7 +295,7 @@
+                tmp2) > 0)
+               printline(line);
+           else
+-              G_fatal_error(_("Cannot allocate memory for string"));
++              G_fatal_error("%s", _("Cannot allocate memory for string"));
+       }
+       printline("");
+@@ -305,12 +305,12 @@
+           if (G_asprintf(&line, "   %s", hist.datsrc_1) > 0)
+               printline(line);
+           else
+-              G_fatal_error(_("Cannot allocate memory for string"));
++              G_fatal_error("%s", _("Cannot allocate memory for string"));
+           if (G_asprintf(&line, "   %s", hist.datsrc_2) > 0)
+               printline(line);
+           else
+-              G_fatal_error(_("Cannot allocate memory for string"));
++              G_fatal_error("%s", _("Cannot allocate memory for string"));
+           printline("");
+@@ -318,7 +318,7 @@
+           if (G_asprintf(&line, "   %s", hist.keywrd) > 0)
+               printline(line);
+           else
+-              G_fatal_error(_("Cannot allocate memory for string"));
++              G_fatal_error("%s", _("Cannot allocate memory for string"));
+           printline("");
+           if (hist.edlinecnt) {
+@@ -331,7 +331,7 @@
+                   if (G_asprintf(&line, "   %s", hist.edhist[i]) > 0)
+                       printline(line);
+                   else
+-                      G_fatal_error(_("Cannot allocate memory for string"));
++                      G_fatal_error("%s", _("Cannot allocate memory for string"));
+               }
+           }
+@@ -401,7 +401,7 @@
+               }
+           }
+           else {
+-              G_fatal_error(_("Error while reading history file"));
++              G_fatal_error("%s", _("Error while reading history file"));
+           }
+       }                       /*Timestamp */
+       else if (timestampflag->answer) {
+--- grass-6.4.3/raster3d/base/r3.mask.main.c.orig      2011-08-13 11:52:04.000000000 +0200
++++ grass-6.4.3/raster3d/base/r3.mask.main.c   2014-06-11 18:08:08.633597793 +0200
+@@ -92,7 +92,7 @@
+                           tileX, tileY, tileZ);
+     if (mask == NULL)
+-      G3d_fatalError(_("Unable to open 3D raster mask file"));
++      G3d_fatalError("%s", _("Unable to open 3D raster mask file"));
+     G3d_minUnlocked(map, G3D_USE_CACHE_X);
+     G3d_autolockOn(map);
+@@ -121,12 +121,12 @@
+           if (!G3d_flushTilesInCube
+               (mask, 0, 0, MAX(0, z - tileZ), region.rows - 1,
+                region.cols - 1, z))
+-              G3d_fatalError(_("makeMask: error flushing tiles in cube"));
++              G3d_fatalError("%s", _("makeMask: error flushing tiles in cube"));
+       }
+     }
+     if (!G3d_flushAllTiles(mask))
+-      G3d_fatalError(_("makeMask: error flushing all tiles"));
++      G3d_fatalError("%s", _("makeMask: error flushing all tiles"));
+     G3d_autolockOff(map);
+     G3d_unlockAll(map);
+@@ -134,7 +134,7 @@
+     G3d_unlockAll(mask);
+     if (!G3d_closeCell(mask))
+-      G3d_fatalError(_("Unable to close 3D raster mask file"));
++      G3d_fatalError("%s", _("Unable to close 3D raster mask file"));
+     if (!G3d_closeCell(map))
+       G3d_fatalError(_("Unable to close raster map <%s>"), name);
+ }
+@@ -156,7 +156,7 @@
+     if (G3d_maskFileExists())
+-      G_fatal_error(_("Cannot create mask file: G3D_MASK already exists!\n Use 'g.remove rast3d=G3D_MASK' to remove the existing mask."));
++      G_fatal_error("%s", _("Cannot create mask file: G3D_MASK already exists!\n Use 'g.remove rast3d=G3D_MASK' to remove the existing mask."));
+     setParams();
+     if (G_parser(argc, argv))
+--- grass-6.4.3/raster3d/base/r3.null.main.c.orig      2011-08-13 11:52:04.000000000 +0200
++++ grass-6.4.3/raster3d/base/r3.null.main.c   2014-06-11 18:32:51.733566883 +0200
+@@ -85,7 +85,7 @@
+     *changeNull = (params.null->answer != NULL);
+     if (*changeNull)
+       if (sscanf(params.null->answer, "%lf", newNullVal) != 1)
+-          G3d_fatalError(_("Illegal value for null"));
++          G3d_fatalError("%s", _("Illegal value for null"));
+ }
+ /*-------------------------------------------------------------------------*/
+@@ -122,7 +122,7 @@
+                             doLzw, doRle, G3d_tilePrecisionMap(map), tileX,
+                             tileY, tileZ);
+     if (mapOut == NULL)
+-      G3d_fatalError(_("modifyNull: error opening tmp file"));
++      G3d_fatalError("%s", _("modifyNull: error opening tmp file"));
+     G3d_minUnlocked(map, G3D_USE_CACHE_X);
+     G3d_autolockOn(map);
+@@ -171,13 +171,13 @@
+           if (!G3d_flushTilesInCube
+               (mapOut, 0, 0, MAX(0, z - tileZ), region.rows - 1,
+                region.cols - 1, z))
+-              G3d_fatalError(_("modifyNull: error flushing tiles in cube"));
++              G3d_fatalError("%s", _("modifyNull: error flushing tiles in cube"));
+       }
+     }
+     if (!G3d_flushAllTiles(mapOut))
+-      G3d_fatalError(_("modifyNull: error flushing all tiles"));
++      G3d_fatalError("%s", _("modifyNull: error flushing all tiles"));
+     G3d_autolockOff(map);
+     G3d_unlockAll(map);
+@@ -185,9 +185,9 @@
+     G3d_unlockAll(mapOut);
+     if (!G3d_closeCell(map))
+-      G3d_fatalError(_("Unable to close raster map"));
++      G3d_fatalError("%s", _("Unable to close raster map"));
+     if (!G3d_closeCell(mapOut))
+-      G3d_fatalError(_("modifyNull: Unable to close tmp file"));
++      G3d_fatalError("%s", _("modifyNull: Unable to close tmp file"));
+ }
+ /*--------------------------------------------------------------------------*/
+--- grass-6.4.3/vector/v.buffer2/main.c.orig   2012-10-27 11:52:09.000000000 +0200
++++ grass-6.4.3/vector/v.buffer2/main.c        2014-05-25 06:55:45.248386391 +0200
+@@ -244,11 +244,11 @@
+     if (((dista_opt->answer || buffer_opt->answer) && bufcol_opt->answer) ||
+       (!(dista_opt->answer || buffer_opt->answer || bufcol_opt->answer)))
+-      G_fatal_error(_("Select a buffer distance/minordistance/angle "
++      G_fatal_error("%s", _("Select a buffer distance/minordistance/angle "
+                       "or column, but not both."));
+     if (bufcol_opt->answer)
+-      G_warning(_("The bufcol option may contain bugs during the cleaning "
++      G_warning("%s", _("The bufcol option may contain bugs during the cleaning "
+                   "step. If you encounter problems, use the debug "
+                   "option or clean manually with v.clean tool=break; "
+                   "v.category step=0; v.extract -d type=area"));
+@@ -259,17 +259,17 @@
+       field = -1;
+     if (bufcol_opt->answer && field == -1)
+-      G_fatal_error(_("The bufcol option requires a valid layer."));
++      G_fatal_error("%s", _("The bufcol option requires a valid layer."));
+     
+     if (buffer_opt->answer)
+-      G_warning(_("The buffer option has been replaced by the distance "
++      G_warning("%s", _("The buffer option has been replaced by the distance "
+                   "option and will be removed in future."));
+     if (buffer_opt->answer && dista_opt->answer)
+-      G_fatal_error(_("Use the distance option instead of the buffer option."));
++      G_fatal_error("%s", _("Use the distance option instead of the buffer option."));
+     tolerance = atof(tol_opt->answer);
+     if (tolerance <= 0)
+-      G_fatal_error(_("The tolerance must be > 0."));
++      G_fatal_error("%s", _("The tolerance must be > 0."));
+     if (adjust_tolerance(&tolerance))
+       G_warning(_("The tolerance was reset to %g"), tolerance);
+@@ -347,7 +347,7 @@
+       ctype = cvarr.ctype;
+       if (ctype != DB_C_TYPE_INT && ctype != DB_C_TYPE_DOUBLE)
+-          G_fatal_error(_("Column type not supported"));
++          G_fatal_error("%s", _("Column type not supported"));
+       db_close_database_shutdown_driver(Driver);
+@@ -377,7 +377,7 @@
+       nareas = Vect_get_num_areas(&In);
+     
+     if (nlines + nareas == 0) {
+-      G_warning(_("No features available for buffering. "
++      G_warning("%s", _("No features available for buffering. "
+                   "Check type option and features available in the input vector."));
+       exit(EXIT_SUCCESS);
+     }
+@@ -391,7 +391,7 @@
+     if (nlines > 0) {
+       int ltype;
+-      G_message(_("Buffering lines..."));
++      G_message("%s", _("Buffering lines..."));
+       nlines = Vect_get_num_lines(&In);
+@@ -465,7 +465,7 @@
+       int centroid;
+       if (nareas > 0) 
+-          G_message(_("Buffering areas..."));
++          G_message("%s", _("Buffering areas..."));
+       for (area = 1; area <= nareas; area++) {
+           int cat;
+@@ -521,7 +521,7 @@
+     }
+     /* write all buffer contours */
+-    G_message(_("Writing buffers..."));
++    G_message("%s", _("Writing buffers..."));
+     for (i = 1; i < buffers_count; i++) {
+       G_percent(i, buffers_count, 2);
+       Vect_write_line(&Out, GV_BOUNDARY, arr_bc[i].oPoints, BCats);
+@@ -537,26 +537,26 @@
+     /* Create areas */
+     /* Break lines */
+-    G_verbose_message(_("Building parts of topology..."));
++    G_verbose_message("%s", _("Building parts of topology..."));
+     Vect_build_partial(&Out, GV_BUILD_BASE);
+-    G_message(_("Snapping boundaries..."));
++    G_message("%s", _("Snapping boundaries..."));
+     Vect_snap_lines(&Out, GV_BOUNDARY, 1e-7, NULL);
+-    G_message(_("Breaking polygons..."));
++    G_message("%s", _("Breaking polygons..."));
+     Vect_break_polygons(&Out, GV_BOUNDARY, NULL);
+-    G_message(_("Removing duplicates..."));
++    G_message("%s", _("Removing duplicates..."));
+     Vect_remove_duplicates(&Out, GV_BOUNDARY, NULL);
+     do {
+-      G_message(_("Breaking boundaries..."));
++      G_message("%s", _("Breaking boundaries..."));
+       Vect_break_lines(&Out, GV_BOUNDARY, NULL);
+-      G_message(_("Removing duplicates..."));
++      G_message("%s", _("Removing duplicates..."));
+       Vect_remove_duplicates(&Out, GV_BOUNDARY, NULL);
+-      G_message(_("Cleaning boundaries at nodes"));
++      G_message("%s", _("Cleaning boundaries at nodes"));
+     } while (Vect_clean_small_angles_at_nodes(&Out, GV_BOUNDARY, NULL) > 0);
+@@ -571,13 +571,13 @@
+     Vect_remove_bridges(&Out, NULL);
+     */
+-    G_message(_("Attaching islands..."));
++    G_message("%s", _("Attaching islands..."));
+     Vect_build_partial(&Out, GV_BUILD_ATTACH_ISLES);
+     /* Calculate new centroids for all areas */
+     nareas = Vect_get_num_areas(&Out);
+     Areas = (char *)G_calloc(nareas + 1, sizeof(char));
+-    G_message(_("Calculating centroids for areas..."));
++    G_message("%s", _("Calculating centroids for areas..."));
+     G_percent(0, nareas, 2);
+     for (area = 1; area <= nareas; area++) {
+       double x, y;
+@@ -591,7 +591,7 @@
+       ret = Vect_get_point_in_area(&Out, area, &x, &y);
+       if (ret < 0) {
+-          G_warning(_("Cannot calculate area centroid"));
++          G_warning("%s", _("Cannot calculate area centroid"));
+           continue;
+       }
+@@ -608,7 +608,7 @@
+     G_debug(3, "nlines = %d", nlines);
+     Lines = (char *)G_calloc(nlines + 1, sizeof(char));
+-    G_message(_("Generating list of boundaries to be deleted..."));
++    G_message("%s", _("Generating list of boundaries to be deleted..."));
+     for (line = 1; line <= nlines; line++) {
+       int j, side[2], areas[2];
+@@ -641,7 +641,7 @@
+     G_free(Areas);
+     /* Delete boundaries */
+-    G_message(_("Deleting boundaries..."));
++    G_message("%s", _("Deleting boundaries..."));
+     for (line = 1; line <= nlines; line++) {
+       G_percent(line, nlines, 2);
+       
+@@ -670,7 +670,7 @@
+     Vect_cat_set(Cats, 1, 1);
+     nareas = Vect_get_num_areas(&Out);
+-    G_message(_("Calculating centroids for areas..."));    
++    G_message("%s", _("Calculating centroids for areas..."));    
+     for (area = 1; area <= nareas; area++) {
+       double x, y;
+@@ -683,7 +683,7 @@
+       ret = Vect_get_point_in_area(&Out, area, &x, &y);
+       if (ret < 0) {
+-          G_warning(_("Cannot calculate area centroid"));
++          G_warning("%s", _("Cannot calculate area centroid"));
+           continue;
+       }
+--- grass-6.4.3/vector/v.build.polylines/main.c.orig   2012-08-25 11:52:04.000000000 +0200
++++ grass-6.4.3/vector/v.build.polylines/main.c        2014-05-25 06:56:52.391718324 +0200
+@@ -230,7 +230,7 @@
+     /* Copy (all linked) tables if needed */
+     if (copy_tables) {
+         if (Vect_copy_tables(&map, &Out, 0))
+-            G_warning(_("Failed to copy attribute table to output map"));
++            G_warning("%s", _("Failed to copy attribute table to output map"));
+     }
+     /* Tidy up */
+--- grass-6.4.3/vector/v.category/main.c.orig  2013-02-23 11:52:07.000000000 +0100
++++ grass-6.4.3/vector/v.category/main.c       2014-05-25 07:01:13.058379558 +0200
+@@ -134,7 +134,7 @@
+       break;
+     case ('c'):
+       option = O_CHFIELD;
+-      G_warning(_("Database connection and attribute tables for concerned layers are not changed"));
++      G_warning("%s", _("Database connection and attribute tables for concerned layers are not changed"));
+       break;
+     case ('s'):
+       option = O_SUM;
+@@ -179,7 +179,7 @@
+     otype = Vect_option_to_types(type_opt);
+     if (cat < 0 && option == O_ADD)
+-      G_fatal_error(_("Invalid category number (must be equal to or greater than 0). "
++      G_fatal_error("%s", _("Invalid category number (must be equal to or greater than 0). "
+                       "Normally category number starts at 1."));
+     
+     /* collect ids */
+@@ -209,14 +209,14 @@
+       i++;
+     }
+     if (nfields > 1 && option != O_PRN && option != O_CHFIELD)
+-      G_fatal_error(_("Too many layers for this operation"));
++      G_fatal_error("%s", _("Too many layers for this operation"));
+     if (nfields != 2 && option == O_CHFIELD)
+-      G_fatal_error(_("2 layers must be specified"));
++      G_fatal_error("%s", _("2 layers must be specified"));
+     if ((option != O_REP) && (option != O_PRN)) {
+       if (out_opt->answer == NULL) {
+-          G_fatal_error(_("Output vector wasn't entered"));
++          G_fatal_error("%s", _("Output vector wasn't entered"));
+       }
+       Vect_check_input_output_name(in_opt->answer, out_opt->answer,
+                                    GV_FATAL_EXIT);
+@@ -255,7 +255,7 @@
+     if (option == O_ADD || option == O_DEL || option == O_CHFIELD ||
+       option == O_SUM) {
+-      G_message(_("Processing features..."));
++      G_message("%s", _("Processing features..."));
+     }
+     
+     switch (option) {
+@@ -287,7 +287,7 @@
+                   continue;   /* Centroid exists and may be processed as line */
+               ret = Vect_get_point_in_area(&In, i, &x, &y);
+               if (ret < 0) {
+-                  G_warning(_("Unable to calculate area centroid"));
++                  G_warning("%s", _("Unable to calculate area centroid"));
+                   continue;
+               }
+               Vect_reset_line(Points);
+@@ -477,7 +477,7 @@
+               else {
+                   fprintf(stdout, "%s: %d\n", _("Layer"), freps[i]->field);
+               }
+-              fprintf(stdout, _("type       count        min        max\n"));
++              fputs(_("type       count        min        max\n"), stdout);
+               fprintf(stdout, "%s    %7d %10d %10d\n", _("point"),
+                       freps[i]->count[FR_POINT],
+                       (freps[i]->min[FR_POINT] < 0) ? 0 : freps[i]->min[FR_POINT],
+@@ -551,9 +551,9 @@
+     if (option == O_ADD || option == O_DEL || option == O_CHFIELD ||
+       option == O_SUM) {
+-      G_message(_("Copying attribute table(s)..."));
++      G_message("%s", _("Copying attribute table(s)..."));
+         if (Vect_copy_tables(&In, &Out, 0))
+-            G_warning(_("Failed to copy attribute table to output map"));
++            G_warning("%s", _("Failed to copy attribute table to output map"));
+       Vect_build(&Out);
+       Vect_close(&Out);
+       
+--- grass-6.4.3/vector/v.class/main.c.orig     2011-06-04 11:52:09.000000000 +0200
++++ grass-6.4.3/vector/v.class/main.c  2014-05-25 07:11:14.445033690 +0200
+@@ -102,7 +102,7 @@
+     Fi = Vect_get_field(&Map, ofield);
+     if (Fi == NULL) {
+-      G_fatal_error(_("Unable to get layer info for vector map"));
++      G_fatal_error("%s", _("Unable to get layer info for vector map"));
+     }
+     Vect_close(&Map);
+@@ -120,10 +120,10 @@
+     ctype = Cvarr.ctype;
+     if (ctype != DB_C_TYPE_INT && ctype != DB_C_TYPE_DOUBLE)
+-      G_fatal_error(_("Column type not supported"));
++      G_fatal_error("%s", _("Column type not supported"));
+     if (nrec < 0)
+-      G_fatal_error(_("Unable to select data from table"));
++      G_fatal_error("%s", _("Unable to select data from table"));
+     db_close_database_shutdown_driver(Driver);
+@@ -163,7 +163,7 @@
+     if (G_strcasecmp(algo_opt->answer, "dis") == 0 && finfo < 3.84148)
+-      G_warning(_("The discontinuities algorithm indicates that some class breaks are not statistically significant at alpha=0.05. You are advised to reduce the number of classes."));
++      G_warning("%s", _("The discontinuities algorithm indicates that some class breaks are not statistically significant at alpha=0.05. You are advised to reduce the number of classes."));
+     /*output to be piped to other modules ? */
+     if (shell_flag->answer) {
+@@ -215,7 +215,7 @@
+       fprintf(stdout, "%15.5f%15.5f%15i\n",
+               classbreaks[nbreaks - 1], max, frequencies[nbreaks]);
+-      fprintf(stdout, _("\nNote: Minimum of first class is including\n\n"));
++      fputs(_("\nNote: Minimum of first class is including\n\n"), stdout);
+     }
+--- grass-6.4.3/vector/v.clean/main.c.orig     2013-07-09 21:05:43.000000000 +0200
++++ grass-6.4.3/vector/v.clean/main.c  2014-05-25 07:12:49.628365039 +0200
+@@ -118,7 +118,7 @@
+     ntools = 0;
+     i = 0;
+     if (strlen(tool_opt->answer) < 1)
+-      G_fatal_error(_("You must select at least one tool"));
++      G_fatal_error("%s", _("You must select at least one tool"));
+     while (tool_opt->answers[i]) {
+       if (i + 1 >= atools) {
+           atools += 20;
+@@ -153,7 +153,7 @@
+       else if (strcmp(tool_opt->answers[i], "rmline") == 0)
+           tools[ntools] = TOOL_RMLINE;
+       else
+-          G_fatal_error(_("Tool doesn't exist"));
++          G_fatal_error("%s", _("Tool doesn't exist"));
+       ntools++;
+       i++;
+@@ -182,7 +182,7 @@
+     /* Print tool table */
+     G_message(SEP);
+-    G_message(_("Tool: Threshold"));
++    G_message("%s", _("Tool: Threshold"));
+     for (i = 0; i < ntools; i++) {
+       switch (tools[i]) {
+@@ -270,7 +270,7 @@
+     }
+     /* Copy input to output */
+-    G_message(_("Copying vector lines..."));
++    G_message("%s", _("Copying vector lines..."));
+     Vect_copy_head_data(&In, &Out);
+     Vect_hist_copy(&In, &Out);
+     Vect_hist_command(&Out);
+@@ -278,7 +278,7 @@
+     /* This works for both level 1 and 2 */
+     Vect_copy_map_lines(&In, &Out);
+     if (Vect_copy_tables(&In, &Out, 0))
+-        G_warning(_("Failed to copy attribute table to output map"));
++        G_warning("%s", _("Failed to copy attribute table to output map"));
+     Vect_set_release_support(&In);
+     Vect_close(&In);
+@@ -292,7 +292,7 @@
+               Vect_build_partial(&Out, GV_BUILD_CENTROIDS);
+           }
+           else {
+-              G_important_message(_("Rebuilding parts of topology..."));
++              G_important_message("%s", _("Rebuilding parts of topology..."));
+               Vect_build_partial(&Out, GV_BUILD_CENTROIDS);
+               G_message(SEP);
+           }
+@@ -302,7 +302,7 @@
+               Vect_build_partial(&Out, GV_BUILD_BASE);
+           }
+           else {
+-              G_important_message(_("Rebuilding parts of topology..."));
++              G_important_message("%s", _("Rebuilding parts of topology..."));
+               Vect_build_partial(&Out, GV_BUILD_BASE);
+               G_message(SEP);
+           }
+@@ -310,59 +310,59 @@
+       switch (tools[i]) {
+       case TOOL_BREAK:
+-          G_message(_("Tool: Break lines at intersections"));
++          G_message("%s", _("Tool: Break lines at intersections"));
+           Vect_break_lines(&Out, otype, pErr);
+           break;
+       case TOOL_RMDUPL:
+-          G_message(_("Tool: Remove duplicates"));
++          G_message("%s", _("Tool: Remove duplicates"));
+           Vect_remove_duplicates(&Out, otype, pErr);
+           break;
+       case TOOL_RMDANGLE:
+-          G_message(_("Tool: Remove dangles"));
++          G_message("%s", _("Tool: Remove dangles"));
+           Vect_remove_dangles(&Out, otype, threshs[i], pErr);
+           break;
+       case TOOL_CHDANGLE:
+-          G_message(_("Tool: Change type of boundary dangles"));
++          G_message("%s", _("Tool: Change type of boundary dangles"));
+           Vect_chtype_dangles(&Out, threshs[i], pErr);
+           break;
+       case TOOL_RMBRIDGE:
+-          G_message(_("Tool: Remove bridges"));
++          G_message("%s", _("Tool: Remove bridges"));
+           Vect_remove_bridges(&Out, pErr);
+           break;
+       case TOOL_CHBRIDGE:
+-          G_message(_("Tool: Change type of boundary bridges"));
++          G_message("%s", _("Tool: Change type of boundary bridges"));
+           Vect_chtype_bridges(&Out, pErr);
+           break;
+       case TOOL_RMDAC:
+-          G_message(_("Tool: Remove duplicate area centroids"));
++          G_message("%s", _("Tool: Remove duplicate area centroids"));
+           count = rmdac(&Out, pErr);
+           break;
+       case TOOL_SNAP:
+-          G_message(_("Tool: Snap line to vertex in threshold"));
++          G_message("%s", _("Tool: Snap line to vertex in threshold"));
+           Vect_snap_lines(&Out, otype, threshs[i], pErr);
+           break;
+       case TOOL_BPOL:
+-          G_message(_("Tool: Break polygons"));
++          G_message("%s", _("Tool: Break polygons"));
+           Vect_break_polygons(&Out, otype, pErr);
+           break;
+       case TOOL_PRUNE:
+-          G_message(_("Tool: Prune lines/boundaries"));
++          G_message("%s", _("Tool: Prune lines/boundaries"));
+           prune(&Out, otype, threshs[i], pErr);
+           break;
+       case TOOL_RMAREA:
+-          G_message(_("Tool: Remove small areas"));
++          G_message("%s", _("Tool: Remove small areas"));
+           count =
+               Vect_remove_small_areas(&Out, threshs[i], pErr, &size);
+           G_message(_("%d areas of total size %g removed"), count, size);
+           break;
+       case TOOL_RMSA:
+-          G_message(_("Tool: Remove small angles at nodes"));
++          G_message("%s", _("Tool: Remove small angles at nodes"));
+           count =
+               Vect_clean_small_angles_at_nodes(&Out, otype, pErr);
+           G_message(_("%d modifications done"), count);
+           break;
+       case TOOL_RMLINE:
+-          G_message(_("Tool: Remove all lines and boundaries of zero length"));
++          G_message("%s", _("Tool: Remove all lines and boundaries of zero length"));
+           count = remove_zero_line(&Out, otype, pErr);
+           G_message(_("%d lines / boundaries removed"), count);
+           break;
+@@ -372,7 +372,7 @@
+     }
+     if (!no_build_flag->answer) {
+-      G_important_message(_("Rebuilding topology for output vector map..."));
++      G_important_message("%s", _("Rebuilding topology for output vector map..."));
+       Vect_build_partial(&Out, GV_BUILD_NONE);
+       Vect_build(&Out);
+     }
+@@ -383,7 +383,7 @@
+     if (pErr) {
+       G_message(SEP);
+-      G_important_message(_("Building topology for error vector map..."));
++      G_important_message("%s", _("Building topology for error vector map..."));
+       Vect_build(pErr);
+       Vect_close(pErr);
+     }
+--- grass-6.4.3/vector/v.convert/read.c.orig   2008-11-25 02:30:56.000000000 +0100
++++ grass-6.4.3/vector/v.convert/read.c        2014-05-25 07:21:07.345021331 +0200
+@@ -38,7 +38,7 @@
+     /* Version 3 dig files were not portable and some version 4 
+      * files may be also non portable */
+-    G_message(_("Reading dig file..."));
++    G_message("%s", _("Reading dig file..."));
+     /* read and copy head */
+     dig_fseek(&gvf, 0L, SEEK_SET);    /* set to beginning */
+@@ -79,11 +79,11 @@
+     if (buf[0] != '%' || buf[1] != '%') {     /* Version3.0 */
+       In_head.Version_Major = 3;
+       portable = 0;           /* input vector is not portable format */
+-      G_message(_("Input file is version 3."));
++      G_message("%s", _("Input file is version 3."));
+     }
+     else {
+       In_head.Version_Major = 4;
+-      G_message(_("Input file is version 4."));
++      G_message("%s", _("Input file is version 4."));
+       /* determine if in portable format or not */
+       if (buf[6] == 1 && (~buf[6] & 0xff) == (buf[7] & 0xff)) {       /* portable ? */
+           portable = 1;       /* input vector is portable format */
+@@ -93,10 +93,10 @@
+       }
+     }
+     if (portable == 1) {
+-      G_message(_("Input file is portable."));
++      G_message("%s", _("Input file is portable."));
+     }
+     else {
+-      G_warning(_("Input file is not portable. "
++      G_warning("%s", _("Input file is not portable. "
+                   "We will attempt to convert anyway but conversion may fail. "
+                   "Please read manual for detail information."));
+     }
+@@ -238,7 +238,7 @@
+     double x, y;
+     struct Categ *cats;
+-    G_message(_("Reading dig_att file..."));
++    G_message("%s", _("Reading dig_att file..."));
+     ctalloc = 0;
+     cats = NULL;
+--- grass-6.4.3/vector/v.convert/old2new.c.orig        2008-11-25 02:30:56.000000000 +0100
++++ grass-6.4.3/vector/v.convert/old2new.c     2014-06-04 19:02:39.959468863 +0200
+@@ -28,7 +28,7 @@
+     /* open input dig file */
+     if ((Digin = G_fopen_old("dig", in, mapset)) == NULL) {
+-      G_fatal_error(_("Failed opening input dig file."));
++      G_fatal_error("%s", _("Failed opening input dig file."));
+     }
+     /* open new output file */
+@@ -43,11 +43,11 @@
+     /* open input dig_att file if exists */
+     att = FALSE;
+     if (NULL == G_find_file("dig_att", in, mapset)) {
+-      G_warning(_("dig_att file doesn't exist."));
++      G_warning("%s", _("dig_att file doesn't exist."));
+     }
+     else {
+       if (NULL == (Attin = G_fopen_old("dig_att", in, mapset))) {
+-          G_warning(_("Failed opening input dig_att file."));
++          G_warning("%s", _("Failed opening input dig_att file."));
+       }
+       else {
+           att = TRUE;
+@@ -69,7 +69,7 @@
+      * If cat is already attached but new one is nearer
+      * set cat to new one.  */
+-    G_message(_("Attaching categories..."));
++    G_message("%s", _("Attaching categories..."));
+     for (i = 0; i < ncats; i++) {
+       G_percent(i, ncats - 1, 1);
+@@ -100,7 +100,7 @@
+     }
+     /* Write to new file */
+-    G_message(_("Writing new file..."));
++    G_message("%s", _("Writing new file..."));
+     pnt_out = Vect_new_line_struct();
+     cat_out = Vect_new_cats_struct();
+--- grass-6.4.3/vector/v.convert/att.c.orig    2008-12-06 11:45:17.000000000 +0100
++++ grass-6.4.3/vector/v.convert/att.c 2014-06-07 15:47:15.874310693 +0200
+@@ -33,12 +33,12 @@
+     /* Find dig_cats if exists */
+     if (NULL == G_find_file("dig_cats", in, mapset)) {
+-      G_message(_("No category labels (dig_cats) found, no table created"));
++      G_message("%s", _("No category labels (dig_cats) found, no table created"));
+       return 0;
+     }
+     if (G_read_vector_cats(in, mapset, &Cats) == -1) {
+-      G_warning(_("Unable to open dig_cats file"));
++      G_warning("%s", _("Unable to open dig_cats file"));
+       return -1;
+     }
+@@ -60,7 +60,7 @@
+           fi->table, clen);
+     db_append_string(&sql, buf);
+-    G_debug(1, db_get_string(&sql));
++    G_debug(1, "%s", db_get_string(&sql));
+     driver = db_start_driver(fi->driver);
+     if (driver == NULL)
+@@ -102,7 +102,7 @@
+       sprintf(buf, "insert into %s values ( %d, '%s')", fi->table, cat,
+               db_get_string(&lab));
+       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(driver);
+--- grass-6.4.3/vector/v.db.connect/main.c.orig        2011-05-21 11:52:09.000000000 +0200
++++ grass-6.4.3/vector/v.db.connect/main.c     2014-05-25 07:52:05.978315925 +0200
+@@ -150,7 +150,7 @@
+       Vect_open_old(&Map, inopt->answer, mapset);
+     else {
+       if (Vect_open_update_head(&Map, inopt->answer, G_mapset()) < 1)
+-          G_fatal_error(_("Unable to modify vector map stored in other mapset"));
++          G_fatal_error("%s", _("Unable to modify vector map stored in other mapset"));
+       Vect_hist_command(&Map);
+     }
+@@ -172,7 +172,7 @@
+               }
+               for (i = 0; i < num_dblinks; i++) {
+                   if ((fi = Vect_get_dblink(&Map, i)) == NULL)
+-                      G_fatal_error(_("Database connection not defined"));
++                      G_fatal_error("%s", _("Database connection not defined"));
+                   if (limit_layer->answer && fi->number != field)
+                       continue;
+@@ -287,7 +287,7 @@
+                       if (db_column_Ctype
+                           (driver, dbtable->answer,
+                            dbkey->answer) != DB_C_TYPE_INT)
+-                          G_fatal_error(_("Data type of key column must be integer"));
++                          G_fatal_error("%s", _("Data type of key column must be integer"));
+                       ret = Vect_map_del_dblink(&Map, field);
+                       if (Vect_map_add_dblink(&Map, field,
+@@ -328,7 +328,7 @@
+                       if (db_create_index2(driver, fi->table, fi->key) !=
+                           DB_OK)
+-                          G_warning(_("Cannot create index"));
++                          G_warning("%s", _("Cannot create index"));
+                       if (db_grant_on_table
+                           (driver, fi->table, DB_PRIV_SELECT,
+@@ -336,14 +336,14 @@
+                           G_warning(_("Cannot grant privileges on table %s"),
+                                     fi->table);
+-                      G_important_message(_("Select privileges were granted on the table"));
++                      G_important_message("%s", _("Select privileges were granted on the table"));
+                       db_close_database_shutdown_driver(driver);
+                   }
+               }
+           }
+           else                /* incomplete parameters given */
+-              G_fatal_error(_("For defining a new connection you have "
++              G_fatal_error("%s", _("For defining a new connection you have "
+                               "to specify these parameters: "
+                               "driver, database, table [, key [, layer]]"));
+       }
+--- grass-6.4.3/vector/v.db.select/main.c.orig 2011-10-01 11:52:04.000000000 +0200
++++ grass-6.4.3/vector/v.db.select/main.c      2014-05-25 07:52:22.821648907 +0200
+@@ -173,7 +173,7 @@
+     }
+     if (db_open_select_cursor(driver, &sql, &cursor, DB_SEQUENTIAL) != DB_OK)
+-      G_fatal_error(_("Unable to open select cursor"));
++      G_fatal_error("%s", _("Unable to open select cursor"));
+     table = db_get_cursor_table(&cursor);
+     ncols = db_get_table_number_of_columns(table);
+--- grass-6.4.3/vector/v.delaunay2/memory.c.orig       2010-02-06 11:53:15.000000000 +0100
++++ grass-6.4.3/vector/v.delaunay2/memory.c    2014-05-25 10:47:16.181430193 +0200
+@@ -61,17 +61,17 @@
+     /* Sites storage. */
+     sites = (struct vertex *)G_calloc(n, sizeof(struct vertex));
+     if (sites == NULL)
+-      G_fatal_error(_("Not enough memory."));
++      G_fatal_error("%s", _("Not enough memory."));
+     /* Edges. Euler's formula - at most 3n edges on a set of n sites */
+     n_free_e = 3 * n;
+     edges = e = (struct edge *)G_calloc(n_free_e, sizeof(struct edge));
+     if (edges == NULL)
+-      G_fatal_error(_("Not enough memory."));
++      G_fatal_error("%s", _("Not enough memory."));
+     free_list_e = (struct edge **)G_calloc(n_free_e, sizeof(struct edge *));
+     if (free_list_e == NULL)
+-      G_fatal_error(_("Not enough memory."));
++      G_fatal_error("%s", _("Not enough memory."));
+     for (i = 0; i < n_free_e; i++, e++)
+       free_list_e[i] = e;
+ }
+@@ -81,7 +81,7 @@
+     /* Sites storage. */
+     sites = (struct vertex *)G_calloc(n, sizeof(struct vertex));
+     if (sites == NULL)
+-      G_fatal_error(_("Not enough memory."));
++      G_fatal_error("%s", _("Not enough memory."));
+ }
+ void realloc_sites(unsigned int n)
+@@ -89,7 +89,7 @@
+     /* Sites storage. */
+     sites = (struct vertex *)G_realloc(sites, n * sizeof(struct vertex));
+     if (sites == NULL)
+-      G_fatal_error(_("Not enough memory."));
++      G_fatal_error("%s", _("Not enough memory."));
+ }
+ void alloc_edges(unsigned int n)
+@@ -101,11 +101,11 @@
+     n_free_e = 3 * n;
+     edges = e = (struct edge *)G_calloc(n_free_e, sizeof(struct edge));
+     if (edges == NULL)
+-      G_fatal_error(_("Not enough memory."));
++      G_fatal_error("%s", _("Not enough memory."));
+     free_list_e = (struct edge **)G_calloc(n_free_e, sizeof(struct edge *));
+     if (free_list_e == NULL)
+-      G_fatal_error(_("Not enough memory."));
++      G_fatal_error("%s", _("Not enough memory."));
+     for (i = 0; i < n_free_e; i++, e++)
+       free_list_e[i] = e;
+ }
+@@ -121,7 +121,7 @@
+ struct edge *get_edge()
+ {
+     if (n_free_e < 1)
+-      G_fatal_error(_("All allocated edges have been used."));
++      G_fatal_error("%s", _("All allocated edges have been used."));
+     return (free_list_e[--n_free_e]);
+ }
+--- grass-6.4.3/vector/v.delaunay2/main.c.orig 2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/vector/v.delaunay2/main.c      2014-06-04 19:55:39.149402602 +0200
+@@ -138,7 +138,7 @@
+     Vect_close(&In);
+     if (n < 3)
+-      G_fatal_error(_("no points to triangulate"));
++      G_fatal_error("%s", _("no points to triangulate"));
+     /* sort sites */
+     qsort(sites, n, sizeof(struct vertex), cmp);
+@@ -146,10 +146,10 @@
+     remove_duplicates(&n);
+     /* triangulate */
+-    G_verbose_message(_("Delaunay triangulation..."));
++    G_verbose_message("%s", _("Delaunay triangulation..."));
+     divide(0, n - 1, &l_cw, &r_ccw);
+-    G_verbose_message(_("Writing edges..."));
++    G_verbose_message("%s", _("Writing edges..."));
+     output_edges(n, mode3d, Type, Out);
+     free_memory();
+@@ -159,7 +159,7 @@
+       nareas = Vect_get_num_areas(&Out);
+       G_debug(3, "nareas = %d", nareas);
+       /*  assign centroid to each area */
+-      G_verbose_message(_("Calculate area centroids..."));
++      G_verbose_message("%s", _("Calculate area centroids..."));
+       for (area = 1; area <= nareas; area++) {
+           double x, y, z, angle, slope;
+           int ret;
+@@ -169,13 +169,13 @@
+           Vect_reset_cats(Cats);
+           ret = Vect_get_point_in_area(&Out, area, &x, &y);
+           if (ret < 0) {
+-              G_warning(_("Unable to calculate area centroid"));
++              G_warning("%s", _("Unable to calculate area centroid"));
+               continue;
+           }
+           ret = Vect_tin_get_z(&Out, x, y, &z, &angle, &slope);
+           G_debug(3, "area centroid z: %f", z);
+           if (ret < 0) {
+-              G_warning(_("Unable to calculate area centroid z coordinate"));
++              G_warning("%s", _("Unable to calculate area centroid z coordinate"));
+               continue;
+           }
+           Vect_append_point(Points, x, y, z);
+--- grass-6.4.3/vector/v.distance/main.c.orig  2012-10-06 11:52:04.000000000 +0200
++++ grass-6.4.3/vector/v.distance/main.c       2014-05-25 17:19:27.370939736 +0200
+@@ -277,7 +277,7 @@
+           Upload[i].upload = TO_ANGLE;
+       else if (strcmp(upload_opt->answers[i], "to_attr") == 0) {
+           if (!(to_column_opt->answer)) {
+-              G_fatal_error(_("to_column option missing"));
++              G_fatal_error("%s", _("to_column option missing"));
+           }
+           Upload[i].upload = TO_ATTR;
+       }
+@@ -289,14 +289,14 @@
+     i = 0;
+     while (column_opt->answers[i]) {
+       if (Upload[i].upload == END) {
+-          G_warning(_("Too many column names"));
++          G_warning("%s", _("Too many column names"));
+           break;
+       }
+       Upload[i].column = G_store(column_opt->answers[i]);
+       i++;
+     }
+     if (Upload[i].upload != END)
+-      G_fatal_error(_("Not enough column names"));
++      G_fatal_error("%s", _("Not enough column names"));
+     /* Open 'from' vector */
+     if ((mapset = G_find_vector2(from_opt->answer, "")) == NULL)
+@@ -384,7 +384,7 @@
+       else {
+           driver = db_start_driver_open_database(NULL, NULL);
+           if (driver == NULL)
+-              G_fatal_error(_("Unable to open default database"));
++              G_fatal_error("%s", _("Unable to open default database"));
+       }
+     }
+@@ -448,7 +448,7 @@
+                    && (fctype == DB_C_TYPE_STRING ||
+                        fctype == DB_C_TYPE_DATETIME))
+                   ) {
+-                  G_fatal_error(_("Incompatible column types"));
++                  G_fatal_error("%s", _("Incompatible column types"));
+               }
+           }
+       }
+@@ -521,7 +521,7 @@
+       else {
+           LLPoints = NULL;
+       }
+-      G_verbose_message(_("Finding nearest lines..."));
++      G_verbose_message("%s", _("Finding nearest lines..."));
+       for (fline = 1; fline <= nfrom; fline++) {
+           int tmp_tcat;
+           double tmp_tangle, tangle;
+@@ -651,7 +651,7 @@
+     /* Find nearest areas */
+     if (to_type & GV_AREA) {
+-      G_verbose_message(_("Finding nearest areas..."));
++      G_verbose_message("%s", _("Finding nearest areas..."));
+       for (fline = 1; fline <= nfrom; fline++) {
+           G_debug(3, "fline = %d", fline);
+           G_percent(fline, nfrom, 2);
+@@ -869,7 +869,7 @@
+       G_debug(3, "selected values = %d", nrec);
+       if (cvarr.ctype == DB_C_TYPE_DATETIME) {
+-          G_warning(_("DATETIME type not yet supported, no attributes will be uploaded"));
++          G_warning("%s", _("DATETIME type not yet supported, no attributes will be uploaded"));
+       }
+       db_close_database_shutdown_driver(to_driver);
+     }
+--- grass-6.4.3/vector/v.drape/main.c.orig     2008-11-25 02:30:58.000000000 +0100
++++ grass-6.4.3/vector/v.drape/main.c  2014-05-27 20:57:46.653731674 +0200
+@@ -217,7 +217,7 @@
+     layer = atoi(layer_opt->answer);
+     if (layer == 0)
+-      G_fatal_error(_("Layer 0 not supported"));
++      G_fatal_error("%s", _("Layer 0 not supported"));
+     if (null_opt->answer)
+       null_val = atof(null_opt->answer);
+@@ -302,7 +302,7 @@
+           db_select_int(driver, Fi->table, Fi->key, where_opt->answer,
+                         &cats);
+       if (ncats < 1)
+-          G_fatal_error(_("No features match Your query"));
++          G_fatal_error("%s", _("No features match Your query"));
+       G_debug(3, "Number of features matching query: %d", ncats);
+     }
+@@ -404,7 +404,7 @@
+         for (i = 0; i < Out.plus.n_cidx; i++) {
+             new_cats = (int *)G_malloc(Out.plus.cidx[i].n_cats * sizeof(int));
+             if (!new_cats) {
+-                G_warning(_("Due to error attribute data to new map are not transferred"));
++                G_warning("%s", _("Due to error attribute data to new map are not transferred"));
+                 break;
+             }
+             /* Vect_copy_table_by_cats does not accept Map.plus.cidx[].cat array as input.
+@@ -414,7 +414,7 @@
+             }
+             if (0 > Vect_copy_table_by_cats(&In, &Out, In.plus.cidx[i].field, Out.plus.cidx[i].field,
+                     NULL, otype, new_cats, Out.plus.cidx[i].n_cats))
+-                    G_warning(_("Due to error attribute data to new map are not transferred"));
++                    G_warning("%s", _("Due to error attribute data to new map are not transferred"));
+         }
+       /* close output vector */
+       Vect_close(&Out);
+@@ -422,7 +422,7 @@
+     else {
+         /* close input vector */
+         Vect_close(&In);
+-      G_warning(_("No features drapped. Check Your computational region and input raster map."));
++      G_warning("%s", _("No features drapped. Check Your computational region and input raster map."));
+       exit(EXIT_FAILURE);
+     }
+     /* close input vector */
+--- grass-6.4.3/vector/v.edit/a2b.c.orig       2008-11-25 02:30:52.000000000 +0100
++++ grass-6.4.3/vector/v.edit/a2b.c    2014-05-27 21:33:57.103686436 +0200
+@@ -133,7 +133,7 @@
+       /* Collect the points */
+       for (i = 0; i < n_coors; i++) {
+           if (G_getl2(buff, BUFFSIZE - 1, ascii) == 0) {
+-              G_warning(_("End of ASCII file reached before end of coordinates"));
++              G_warning("%s", _("End of ASCII file reached before end of coordinates"));
+               return -1;
+           }
+           if (buff[0] == '\0') {
+@@ -175,7 +175,7 @@
+       /* Collect the cats */
+       for (i = 0; i < n_cats; i++) {
+           if (G_getl2(buff, BUFFSIZE - 1, ascii) == 0) {
+-              G_warning(_("End of ascii file reached before end of categories"));
++              G_warning("%s", _("End of ascii file reached before end of categories"));
+               return -1;
+           }
+           if (buff[0] == '\0') {
+@@ -195,7 +195,7 @@
+       /* Allocation is handled for line_pnts */
+       if (0 >
+           Vect_copy_xyz_to_pnts(Points, xarray, yarray, zarray, n_points))
+-          G_fatal_error(_("Out of memory"));
++          G_fatal_error("%s", _("Out of memory"));
+       if (type > 0) {
+           newline = Vect_write_line(Map, type, Points, Cats);
+--- grass-6.4.3/vector/v.edit/main.c.orig      2013-07-15 14:15:29.000000000 +0200
++++ grass-6.4.3/vector/v.edit/main.c   2014-06-04 19:56:05.136068724 +0200
+@@ -96,7 +96,7 @@
+       }
+       if (! db_get_default_driver_name() ) {
+-          G_message(_("Creating new DB connection based on default mapset settings..."));
++          G_message("%s", _("Creating new DB connection based on default mapset settings..."));
+           db_set_default_connection();
+       }
+@@ -206,7 +206,7 @@
+     if (action_mode != MODE_CREATE && action_mode != MODE_ADD) {
+       /* select lines */
+       List = Vect_new_list();
+-      G_message(_("Selecting features..."));
++      G_message("%s", _("Selecting features..."));
+       if (action_mode == MODE_COPY && BgMap && BgMap[0]) {
+           List = select_lines(BgMap[0], action_mode, &params, thresh, List);
+       }
+@@ -218,7 +218,7 @@
+     if ((action_mode != MODE_CREATE && action_mode != MODE_ADD &&
+        action_mode != MODE_SELECT)) {
+       if (List->n_values < 1) {
+-          G_warning(_("No features selected, nothing to edit"));
++          G_warning("%s", _("No features selected, nothing to edit"));
+           action_mode = MODE_NONE;
+           ret = 0;
+       }
+@@ -393,12 +393,12 @@
+               G_message(_("%d features converted"), ret);
+           }
+           else {
+-              G_message(_("No feature modified"));
++              G_message("%s", _("No feature modified"));
+           }
+           break;
+       }
+     default:
+-      G_warning(_("Operation not implemented"));
++      G_warning("%s", _("Operation not implemented"));
+       ret = -1;
+       break;
+     }
+--- grass-6.4.3/vector/v.edit/args.c.orig      2008-12-06 11:45:17.000000000 +0100
++++ grass-6.4.3/vector/v.edit/args.c   2014-06-07 15:49:18.724308132 +0200
+@@ -230,7 +230,7 @@
+       while (params->poly->answers[i++]) ;
+       if (i < 6)
+-          G_fatal_error(_("Polygon must have at least 3 coordinate pairs"));
++          G_fatal_error("%s", _("Polygon must have at least 3 coordinate pairs"));
+     }
+     /*
+--- grass-6.4.3/vector/v.edit/select.c.orig    2012-10-27 11:52:08.000000000 +0200
++++ grass-6.4.3/vector/v.edit/select.c 2014-06-07 22:36:27.677132290 +0200
+@@ -498,7 +498,7 @@
+     cat_list = Vect_new_cat_list();
+     if (layer < 1) {
+-      G_fatal_error(_("Layer must be > 0 for 'where'"));
++      G_fatal_error("%s", _("Layer must be > 0 for 'where'"));
+     }
+     Fi = Vect_get_field(Map, layer);
+--- grass-6.4.3/vector/v.extract/main.c.orig   2009-08-15 11:52:40.000000000 +0200
++++ grass-6.4.3/vector/v.extract/main.c        2014-05-27 21:34:51.890351961 +0200
+@@ -172,7 +172,7 @@
+     if (nrandopt->answer != NULL)
+       c++;
+     if (c > 1)
+-      G_fatal_error(_("List, file, where and random options are exclusive. "
++      G_fatal_error("%s", _("List, file, where and random options are exclusive. "
+                       "Please specify only one of them"));
+     c = 0;
+@@ -201,7 +201,7 @@
+     field = atoi(fieldopt->answer);
+     if (field == 0)
+-      G_fatal_error(_("Layer 0 not supported"));
++      G_fatal_error("%s", _("Layer 0 not supported"));
+     if (!newopt->answer)
+       new_cat = 0;
+@@ -271,7 +271,7 @@
+     }
+     else if (whereopt->answer != NULL) {
+       if (field < 1) {
+-          G_fatal_error(_("'layer' must be > 0 for 'where'."));
++          G_fatal_error("%s", _("'layer' must be > 0 for 'where'."));
+       }
+       Fi = Vect_get_field(&In, field);
+       if (!Fi) {
+@@ -310,13 +310,13 @@
+       /* We operate on layer's CAT's and thus valid layer is required */
+       if (Vect_cidx_get_field_index(&In, field) < 0)
+-          G_fatal_error(_("This map has no categories attached. "
++          G_fatal_error("%s", _("This map has no categories attached. "
+                           "Use v.category to attach categories to this vector map."));
+       /* Don't do any processing, if user input is wrong */
+       nrandom = atoi(nrandopt->answer);
+       if (nrandom < 1)
+-          G_fatal_error(_("Please specify random number larger than 0"));
++          G_fatal_error("%s", _("Please specify random number larger than 0"));
+       nfeatures = Vect_cidx_get_type_count(&In, field, type);
+       if (nrandom >= nfeatures)
+@@ -380,7 +380,7 @@
+     /* Read and write header info */
+     Vect_copy_head_data(&In, &Out);
+     
+-    G_message(_("Extracting features..."));
++    G_message("%s", _("Extracting features..."));
+     xtract_line(cat_count, cat_array, &In, &Out, new_cat, type, dissolve,
+               field, type_only, r_flag->answer ? 1 : 0);
+@@ -425,7 +425,7 @@
+       }
+       /* Copy tables */
+-      G_message(_("Writing attributes..."));
++      G_message("%s", _("Writing attributes..."));
+       /* Number of output tabs */
+       for (i = 0; i < Vect_get_num_dblinks(&In); i++) {
+@@ -463,7 +463,7 @@
+           /* Make a list of categories */
+           IFi = Vect_get_field(&In, fields[i]);
+           if (!IFi) {         /* no table */
+-              G_verbose_message(_("No table"));
++              G_verbose_message("%s", _("No table"));
+               continue;
+           }
+@@ -478,7 +478,7 @@
+                                     nocats[i]);
+           if (ret == DB_FAILED) {
+-              G_warning(_("Unable to copy table"));
++              G_warning("%s", _("Unable to copy table"));
+           }
+           else {
+               Vect_map_add_dblink(&Out, OFi->number, OFi->name, OFi->table,
+@@ -495,7 +495,7 @@
+     if (dissolve) {
+       int line, nlines, ltype, area;
+-      G_message(_("Removing duplicate centroids..."));
++      G_message("%s", _("Removing duplicate centroids..."));
+       nlines = Vect_get_num_lines(&Out);
+       for (line = 1; line <= nlines; line++) {
+           if (!Vect_line_alive(&Out, line))
+--- grass-6.4.3/vector/v.extrude/main.c.orig   2012-01-28 11:52:06.000000000 +0100
++++ grass-6.4.3/vector/v.extrude/main.c        2014-05-27 21:35:09.573684925 +0200
+@@ -191,7 +191,7 @@
+       nelements = Vect_get_num_areas(&In);
+       G_debug(2, "n_areas = %d", nelements);
+       if (nelements > 0)
+-          G_message(_("Extruding areas..."));
++          G_message("%s", _("Extruding areas..."));
+       for (areanum = 1; areanum <= nelements; areanum++) {
+           G_debug(3, "area = %d", areanum);
+@@ -255,7 +255,7 @@
+       i = 1;
+       /* loop through each line in the dataset */
+       nelements = Vect_get_num_lines(&In);
+-      G_message(_("Extruding vector primitives..."));
++      G_message("%s", _("Extruding vector primitives..."));
+       for (line = 1; line <= nelements; line++) {
+           /* read line */
+--- grass-6.4.3/vector/v.generalize/displacement.c.orig        2012-10-27 11:52:08.000000000 +0200
++++ grass-6.4.3/vector/v.generalize/displacement.c     2014-05-27 21:35:32.903684439 +0200
+@@ -76,7 +76,7 @@
+     /* read points 
+      * TODO: some better/faster method for determining whether two points are the same */
+     G_percent_reset();
+-    G_message(_("Reading data..."));
++    G_message("%s", _("Reading data..."));
+     index = 0;
+     pindex = 0;
+     for (i = 1; i <= n_lines; i++) {
+@@ -194,12 +194,12 @@
+     matrix_mult_scalar(0.0, &dy);
+     /*calculate the inverse */
+-    G_message(_("Inverting matrix..."));
++    G_message("%s", _("Inverting matrix..."));
+     if (!matrix_inverse(k, &kinv, 1))
+-      G_fatal_error(_("Unable to calculate the inverse matrix"));
++      G_fatal_error("%s", _("Unable to calculate the inverse matrix"));
+     G_percent_reset();
+-    G_message(_("Resolving conflicts..."));
++    G_message("%s", _("Resolving conflicts..."));
+     for (iter = 0; iter < iterations; iter++) {
+       int conflicts = 0;
+--- grass-6.4.3/vector/v.generalize/smoothing.c.orig   2012-10-27 11:52:08.000000000 +0200
++++ grass-6.4.3/vector/v.generalize/smoothing.c        2014-06-04 19:57:08.742734067 +0200
+@@ -83,7 +83,7 @@
+     half = look_ahead / 2;
+     if (look_ahead % 2 == 0) {
+-      G_fatal_error(_("Look ahead parameter must be odd"));
++      G_fatal_error("%s", _("Look ahead parameter must be odd"));
+       return n;
+     }
+@@ -92,7 +92,7 @@
+     res = G_malloc(sizeof(POINT) * n);
+     if (!res) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return n;
+     }
+@@ -143,13 +143,13 @@
+     n = Points->n_points;
+     if (look_ahead % 2 == 0) {
+-      G_fatal_error(_("Look ahead parameter must be odd"));
++      G_fatal_error("%s", _("Look ahead parameter must be odd"));
+       return n;
+     }
+     res = (POINT *) G_malloc(sizeof(POINT) * n);
+     if (!res) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return n;
+     }
+@@ -250,7 +250,7 @@
+     point_list_add(cur, p0); /* always keep last point */
+     if (point_list_copy_to_line_pnts(head, Points) == -1) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+     }
+     point_list_free(head);
+     return Points->n_points;
+@@ -374,7 +374,7 @@
+     point_list_add(last, p0);
+     if (point_list_copy_to_line_pnts(head, Points) == -1)
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+     point_list_free(head);
+     return Points->n_points;
+@@ -403,31 +403,31 @@
+     int plus = 4;
+     if (!matrix_init(n + 2 * plus, n + 2 * plus, &g)) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return n;
+     }
+     if (!matrix_init(n + 2 * plus, 1, &xcoord)) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return n;
+     }
+     if (!matrix_init(n + 2 * plus, 1, &ycoord)) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return n;
+     }
+     if (!matrix_init(n + 2 * plus, 1, &zcoord)) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return n;
+     }
+     if (!matrix_init(n + 2 * plus, 1, &xout)) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return n;
+     }
+     if (!matrix_init(n + 2 * plus, 1, &yout)) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return n;
+     }
+     if (!matrix_init(n + 2 * plus, 1, &zout)) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return n;
+     }
+@@ -478,14 +478,14 @@
+     /* find its inverse */
+     if (!matrix_inverse(g, &ginv, 0)) {
+-      G_fatal_error(_("Unable to find the inverse matrix"));
++      G_fatal_error("%s", _("Unable to find the inverse matrix"));
+       return n;
+     }
+     if (!matrix_mult(ginv, xcoord, &xout)
+       || !matrix_mult(ginv, ycoord, &yout)
+       || !matrix_mult(ginv, zcoord, &zout)) {
+-      G_fatal_error(_("Unable to calculate the output vectors"));
++      G_fatal_error("%s", _("Unable to calculate the output vectors"));
+       return n;
+     }
+--- grass-6.4.3/vector/v.generalize/main.c.orig        2012-10-27 11:52:08.000000000 +0200
++++ grass-6.4.3/vector/v.generalize/main.c     2014-06-07 15:49:45.617640905 +0200
+@@ -260,7 +260,7 @@
+       mask_type = GV_LINE;
+     }
+     else {
+-      G_fatal_error(_("Unknown method"));
++      G_fatal_error("%s", _("Unknown method"));
+       exit(EXIT_FAILURE);
+     }
+@@ -320,7 +320,7 @@
+     if (method == DISPLACEMENT) {
+       /* modifies only lines, all other features including boundaries are preserved */
+       /* options where, cats, and layer are respected */
+-      G_message(_("Displacement..."));
++      G_message("%s", _("Displacement..."));
+       snakes_displacement(&In, &Out, thresh, alpha, beta, 1.0, 10.0,
+                           iterations, varray);
+     }
+@@ -329,7 +329,7 @@
+     if (method == NETWORK) {
+       /* extracts lines of selected type, all other features are discarded */
+       /* options where, cats, and layer are ignored */
+-      G_message(_("Network generalization..."));
++      G_message("%s", _("Network generalization..."));
+       total_output =
+           graph_generalization(&In, &Out, mask_type, degree_thresh, 
+                                closeness_thresh, betweeness_thresh);
+@@ -344,7 +344,7 @@
+           Vect_copy_tables(&In, &Out, -1);
+     }
+     else if (where_opt->answer && method < NETWORK) {
+-      G_warning(_("Attributes are needed for 'where' option, copying table"));
++      G_warning("%s", _("Attributes are needed for 'where' option, copying table"));
+       Vect_copy_tables(&In, &Out, -1);
+     }
+--- grass-6.4.3/vector/v.generalize/simplification.c.orig      2008-11-25 02:30:54.000000000 +0100
++++ grass-6.4.3/vector/v.generalize/simplification.c   2014-06-07 22:36:54.893798391 +0200
+@@ -30,14 +30,14 @@
+     int *stack = G_malloc(sizeof(int) * Points->n_points * 2);
+     if (!stack) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return Points->n_points;
+     }
+     int *index = G_malloc(sizeof(int) * Points->n_points);    /* Indices of points in output line */
+     if (!index) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       G_free(stack);
+       return Points->n_points;
+     }
+@@ -306,7 +306,7 @@
+     int *sel;
+     sel = G_calloc(sizeof(int), n);
+     if (sel == NULL) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return n;
+     }
+@@ -314,7 +314,7 @@
+     int *index;
+     index = G_malloc(sizeof(int) * 3 * n);
+     if (index == NULL) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       G_free(sel);
+       return n;
+     }
+@@ -338,7 +338,7 @@
+     binary_heap pq;
+     if (!binary_heap_init(n, &pq)) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       G_free(sel);
+       G_free(index);
+       return n;
+--- grass-6.4.3/vector/v.generalize/network.c.orig     2012-10-27 11:52:08.000000000 +0200
++++ grass-6.4.3/vector/v.generalize/network.c  2014-06-08 09:29:34.569648845 +0200
+@@ -91,7 +91,7 @@
+     /* build own graph by edge<->vertex */
+     /* each vertex represents undirected edge */
+     if (!graph_init(&g, dglGet_EdgeCount(gr) / 2 + 1)) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return 0;
+     }
+@@ -126,7 +126,7 @@
+                   G_malloc(sizeof(int) * (to_degree + from_degree));
+               if (!g.edge[id]) {
+                   graph_free(&g);
+-                  G_fatal_error(_("Out of memory"));
++                  G_fatal_error("%s", _("Out of memory"));
+                   return 0;
+               }
+           }
+@@ -161,7 +161,7 @@
+     /* run BFS from each vertex and find the sum
+      * of the shortest paths from each vertex */
+     G_percent_reset();
+-    G_message(_("Calculating centrality measures..."));
++    G_message("%s", _("Calculating centrality measures..."));
+     for (i = 1; i < g.vertices; i++) {
+       int front, back, j;
+--- grass-6.4.3/vector/v.generalize/matrix.c.orig      2012-10-27 11:52:08.000000000 +0200
++++ grass-6.4.3/vector/v.generalize/matrix.c   2014-06-08 10:16:10.496257235 +0200
+@@ -142,7 +142,7 @@
+     /* initialize output matrix to the identity matrix */
+     if (!matrix_init(a.rows, a.rows, res)) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       return 0;
+     }
+     for (i = 0; i < a.rows; i++) {
+--- grass-6.4.3/vector/v.generalize/point.c.orig       2012-10-27 11:52:08.000000000 +0200
++++ grass-6.4.3/vector/v.generalize/point.c    2014-06-08 10:55:05.136208575 +0200
+@@ -118,7 +118,7 @@
+     pl = G_malloc(sizeof(POINT_LIST));
+     if (!pl) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+     }
+     pl->next = NULL;
+--- grass-6.4.3/vector/v.generalize/misc.c.orig        2013-07-09 21:05:43.000000000 +0200
++++ grass-6.4.3/vector/v.generalize/misc.c     2014-06-08 12:02:44.152790640 +0200
+@@ -124,7 +124,7 @@
+     }
+     /* Copy tables */
+-    G_message(_("Writing attributes..."));
++    G_message("%s", _("Writing attributes..."));
+     /* Number of output tabs */
+     for (i = 0; i < Vect_get_num_dblinks(In); i++) {
+@@ -207,13 +207,13 @@
+       if (layer < 1)
+           G_fatal_error(_("'%s' must be > 0 for '%s'"), "layer", "where");
+       if (cats)
+-          G_warning(_("'where' and 'cats' parameters were supplied, cat will be ignored"));
++          G_warning("%s", _("'where' and 'cats' parameters were supplied, cat will be ignored"));
+       *chcat = 1;
+       varray = Vect_new_varray(Vect_get_num_lines(Map));
+       if (Vect_set_varray_from_db
+           (Map, layer, where, mask_type, 1, varray) == -1) {
+-          G_warning(_("Unable to load data from database"));
++          G_warning("%s", _("Unable to load data from database"));
+       }
+     }
+     else if (cats) {
+@@ -224,7 +224,7 @@
+       if (Vect_set_varray_from_cat_string
+           (Map, layer, cats, mask_type, 1, varray) == -1) {
+-          G_warning(_("Problem loading category values"));
++          G_warning("%s", _("Problem loading category values"));
+       }
+     }
+     else if (layer > 0) {
+--- grass-6.4.3/vector/v.hull/main.c.orig      2010-04-10 11:53:03.000000000 +0200
++++ grass-6.4.3/vector/v.hull/main.c   2014-05-27 21:35:53.103684018 +0200
+@@ -138,7 +138,7 @@
+     /* make 3D hull */
+     error = make3DHull(px, py, pz, numPoints, Map);
+     if (error < 0) {
+-      G_fatal_error(_("Simple planar hulls not implemented yet"));
++      G_fatal_error("%s", _("Simple planar hulls not implemented yet"));
+     }
+     
+     G_free(px);
+@@ -315,7 +315,7 @@
+                     G_fully_qualified_name(sitefile, mapset));
+     if (numSitePoints < 3)
+-      G_fatal_error(_("Convex hull calculation requires at least three points. Exiting."));
++      G_fatal_error("%s", _("Convex hull calculation requires at least three points. Exiting."));
+     G_verbose_message(_("%d points read from vector map <%s>"),
+                     numSitePoints, G_fully_qualified_name(sitefile, mapset));
+--- grass-6.4.3/vector/v.info/main.c.orig      2012-01-28 11:52:06.000000000 +0100
++++ grass-6.4.3/vector/v.info/main.c   2014-05-27 21:36:25.643683340 +0200
+@@ -331,7 +331,7 @@
+           format_double(Vect_get_thresh(&Map), tmp1);
+           sprintf(line, _("  Digitization threshold: %s"), tmp1);
+           printline(line);
+-          sprintf(line, _("  Comments:"));
++          strcpy(line, _("  Comments:"));
+           printline(line);
+           sprintf(line, "    %s", Vect_get_comment(&Map));
+           printline(line);
+@@ -385,7 +385,7 @@
+       /* Note: check for dead lines is not needed, because they are skipped by V1_read_next_line_nat() */
+       if (type == -1) {
+-          G_warning(_("Unable to read vector map"));
++          G_warning("%s", _("Unable to read vector map"));
+           return 0;
+       }
+       else if (type == -2) {
+--- grass-6.4.3/vector/v.in.ascii/in.c.orig    2010-09-25 11:52:07.000000000 +0200
++++ grass-6.4.3/vector/v.in.ascii/in.c 2014-05-27 21:37:44.270348368 +0200
+@@ -178,10 +178,10 @@
+     skip_lines = atoi(skip_opt->answer);
+     if (skip_lines < 0)
+-      G_fatal_error(_("Please specify reasonable number of lines to skip"));
++      G_fatal_error("%s", _("Please specify reasonable number of lines to skip"));
+     if (zcoorf->answer && format == FORMAT_POINT && !zcol_opt->answer)
+-      G_fatal_error(_("Please specify z column"));
++      G_fatal_error("%s", _("Please specify z column"));
+     xcol = atoi(xcol_opt->answer) - 1;
+     ycol = atoi(ycol_opt->answer) - 1;
+@@ -192,12 +192,12 @@
+       zcoorf->answer = TRUE;
+     if (zcoorf->answer && format == FORMAT_POINT && zcol < 0)
+-      G_fatal_error(_("Please specify reasonable z column"));
++      G_fatal_error("%s", _("Please specify reasonable z column"));
+     catcol = atoi(catcol_opt->answer) - 1;
+     if (xcol+1 < 1 || ycol+1 < 1 || zcol+1 < 0 || catcol+1 < 0)
+-      G_fatal_error(_("Column numbers must not be negative"));
++      G_fatal_error("%s", _("Column numbers must not be negative"));
+     if ( (old->answer != NULL) && (strcmp(old->answer, "-") != 0) ) {
+       if ((ascii = fopen(old->answer, "r")) == NULL) {
+@@ -260,38 +260,38 @@
+       /* check column numbers */
+       if (xcol >= minncols) {
+           Vect_delete(new->answer);
+-          G_fatal_error(_("x column number > minimum last column number\n(incorrect field separator?)"));
++          G_fatal_error("%s", _("x column number > minimum last column number\n(incorrect field separator?)"));
+       }
+       if (ycol >= minncols) {
+           Vect_delete(new->answer);
+-          G_fatal_error(_("y column number > minimum last column number\n(incorrect field separator?)"));
++          G_fatal_error("%s", _("y column number > minimum last column number\n(incorrect field separator?)"));
+       }
+       if (zcol >= minncols) {
+           Vect_delete(new->answer);
+-          G_fatal_error(_("z column number > minimum last column number "
++          G_fatal_error("%s", _("z column number > minimum last column number "
+                           "(incorrect field separator?)"));
+       }
+       if (catcol >= minncols) {
+           Vect_delete(new->answer);
+-          G_fatal_error(_("cat column number > minimum last column number "
++          G_fatal_error("%s", _("cat column number > minimum last column number "
+                           "(incorrect field separator?)"));
+       }
+       if (coltype[xcol] == DB_C_TYPE_STRING) {
+           Vect_delete(new->answer);
+-          G_fatal_error(_("x column is not of number type"));
++          G_fatal_error("%s", _("x column is not of number type"));
+       }
+       if (coltype[ycol] == DB_C_TYPE_STRING) {
+           Vect_delete(new->answer);
+-          G_fatal_error(_("y column is not of number type"));
++          G_fatal_error("%s", _("y column is not of number type"));
+       }
+       if (zcol >= 0 && coltype[zcol] == DB_C_TYPE_STRING) {
+           Vect_delete(new->answer);
+-          G_fatal_error(_("z column is not of number type"));
++          G_fatal_error("%s", _("z column is not of number type"));
+       }
+       if (catcol >= 0 && coltype[catcol] == DB_C_TYPE_STRING) {
+           Vect_delete(new->answer);
+-          G_fatal_error(_("cat column is not of number type"));
++          G_fatal_error("%s", _("cat column is not of number type"));
+       }
+       /* Create table */
+@@ -333,7 +333,7 @@
+               }
+               if (catcol == i && coltype[i] != DB_C_TYPE_INT) {
+                   Vect_delete(new->answer);
+-                  G_fatal_error(_("Category column is not of integer type"));
++                  G_fatal_error("%s", _("Category column is not of integer type"));
+               }
+               switch (coltype[i]) {
+@@ -380,7 +380,7 @@
+                               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) {
+               Vect_delete(new->answer);
+               G_fatal_error(_("Unable to create table: %s"),
+@@ -520,14 +520,14 @@
+                     coltype2, xcol, ycol, zcol, catcol, skip_lines);
+       if (driver) {
+-          G_message(_("Populating table..."));
++          G_message("%s", _("Populating table..."));
+           db_commit_transaction(driver);
+           if(db_close_database_shutdown_driver(driver) == DB_FAILED)
+ #ifdef __MINGW32__
+               G_debug(1, "FIXME: db_close_database_shutdown_driver() fails on WinGrass. Ignoring...");
+ #else
+-              G_fatal_error(_("Could not close attribute table. The DBMI driver did not accept all attributes"));
++              G_fatal_error("%s", _("Could not close attribute table. The DBMI driver did not accept all attributes"));
+ #endif
+       }
+       fclose(tmpascii);
+--- grass-6.4.3/vector/v.in.ascii/a2b.c.orig   2010-09-25 11:52:07.000000000 +0200
++++ grass-6.4.3/vector/v.in.ascii/a2b.c        2014-06-04 19:57:32.352733575 +0200
+@@ -100,7 +100,7 @@
+       /* Collect the points */
+       for (i = 0; i < n_coors; i++) {
+           if (G_getl2(buff, BUFFSIZE - 1, ascii) == 0)
+-              G_fatal_error(_("End of ASCII file reached before end of coordinates"));
++              G_fatal_error("%s", _("End of ASCII file reached before end of coordinates"));
+           if (buff[0] == '\0') {
+               G_debug(3, "a2b: skipping blank line while reading vertices");
+@@ -151,7 +151,7 @@
+       /* Collect the cats */
+       for (i = 0; i < n_cats; i++) {
+           if (G_getl2(buff, BUFFSIZE - 1, ascii) == 0)
+-              G_fatal_error(_("End of ASCII file reached before end of categories"));
++              G_fatal_error("%s", _("End of ASCII file reached before end of categories"));
+           if (buff[0] == '\0') {
+               G_debug(3,
+@@ -169,7 +169,7 @@
+       /* Allocation is handled for line_pnts */
+       if (0 >
+           Vect_copy_xyz_to_pnts(Points, xarray, yarray, zarray, n_points))
+-          G_fatal_error(_("Out of memory"));
++          G_fatal_error("%s", _("Out of memory"));
+       if (type > 0)
+           Vect_write_line(Map, type, Points, Cats);
+--- grass-6.4.3/vector/v.in.ascii/points.c.orig        2010-09-25 11:52:07.000000000 +0200
++++ grass-6.4.3/vector/v.in.ascii/points.c     2014-06-07 15:51:57.734304817 +0200
+@@ -80,7 +80,7 @@
+     tmp_token = (char *)G_malloc(256);
+     sav_buf = NULL;
+-    G_message(_("Scanning input for column types..."));
++    G_message("%s", _("Scanning input for column types..."));
+     /* fetch projection for LatLong test */
+     G_get_window(&window);
+@@ -290,7 +290,7 @@
+     dbString sql, val;
+     struct Cell_head window;
+-    G_message(_("Importing points..."));
++    G_message("%s", _("Importing points..."));
+     /* fetch projection for LatLong test */
+     G_get_window(&window);
+@@ -399,7 +399,7 @@
+               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"),
+--- grass-6.4.3/vector/v.in.db/main.c.orig     2009-01-17 11:45:20.000000000 +0100
++++ grass-6.4.3/vector/v.in.db/main.c  2014-05-27 21:38:12.533681112 +0200
+@@ -138,7 +138,7 @@
+       G_fatal_error(_("Missing column <%s> in table <%s>"),
+                     keycol_opt->answer, table_opt->answer);
+     if (coltype != DB_C_TYPE_INT)
+-      G_fatal_error(_("Data type of key column must be integer"));
++      G_fatal_error("%s", _("Data type of key column must be integer"));
+     /* Open select cursor */
+     sprintf(buf, "select %s, %s, %s", keycol_opt->answer, xcol_opt->answer,
+@@ -170,14 +170,14 @@
+     G_debug(2, "%d points selected", nrows);
+     
+     count = 0;
+-    G_message(_("Writing features..."));
++    G_message("%s", _("Writing features..."));
+     while (db_fetch(&cursor, DB_NEXT, &more) == DB_OK && more) {
+       G_percent(count, nrows, 2);
+       /* key column */
+       column = db_get_table_column(table, 0);
+       ctype = db_sqltype_to_Ctype(db_get_column_sqltype(column));
+       if (ctype != DB_C_TYPE_INT)
+-          G_fatal_error(_("Key column must be integer"));
++          G_fatal_error("%s", _("Key column must be integer"));
+       value = db_get_column_value(column);
+       cat = db_get_value_int(value);
+@@ -185,7 +185,7 @@
+           column = db_get_table_column(table, i + 1);
+           ctype = db_sqltype_to_Ctype(db_get_column_sqltype(column));
+           if (ctype != DB_C_TYPE_INT && ctype != DB_C_TYPE_DOUBLE)
+-              G_fatal_error(_("x/y/z column must be integer or double"));
++              G_fatal_error("%s", _("x/y/z column must be integer or double"));
+           value = db_get_column_value(column);
+           if (ctype == DB_C_TYPE_INT)
+               coor[i] = (double)db_get_value_int(value);
+@@ -209,7 +209,7 @@
+     db_close_database_shutdown_driver(driver);
+     /* Copy table */
+-    G_message(_("Copying attributes..."));
++    G_message("%s", _("Copying attributes..."));
+     if (where_opt->answer)
+       ret =
+           db_copy_table_where(driver_opt->answer, database_opt->answer,
+@@ -222,7 +222,7 @@
+                         fi->table);
+     if (ret == DB_FAILED) {
+-      G_warning(_("Unable to copy table"));
++      G_warning("%s", _("Unable to copy table"));
+     }
+     else {
+       Vect_map_add_dblink(&Map, 1, NULL, fi->table, keycol_opt->answer,
+--- grass-6.4.3/vector/v.in.dxf/add_polyline.c.orig    2010-02-27 11:53:05.000000000 +0100
++++ grass-6.4.3/vector/v.in.dxf/add_polyline.c 2014-05-27 21:38:30.033680747 +0200
+@@ -42,7 +42,7 @@
+           vert_flag = atoi(dxf_buf);
+           if (vert_flag != 1) /* flag must always be 1 */
+               if (warn_flag66) {
+-                  G_warning(_("vertices following flag missing"));
++                  G_warning("%s", _("vertices following flag missing"));
+                   warn_flag66 = 0;
+               }
+           break;
+--- grass-6.4.3/vector/v.in.dxf/main.c.orig    2008-11-25 02:30:52.000000000 +0100
++++ grass-6.4.3/vector/v.in.dxf/main.c 2014-06-04 19:57:51.836066499 +0200
+@@ -186,13 +186,13 @@
+           if (Vect_open_old(Map, output, G_mapset())) {
+               if (!flag_topo)
+                   if (!Vect_build(Map))
+-                      G_warning(_("Building topology failed"));
++                      G_warning("%s", _("Building topology failed"));
+               Vect_close(Map);
+           }
+       }
+       else {
+           Vect_delete(output);
+-          G_fatal_error(_("Failed to import DXF file!"));
++          G_fatal_error("%s", _("Failed to import DXF file!"));
+       }
+       G_free(output);
+--- grass-6.4.3/vector/v.in.dxf/read_dxf.c.orig        2008-11-25 02:30:52.000000000 +0100
++++ grass-6.4.3/vector/v.in.dxf/read_dxf.c     2014-06-07 15:52:20.770971003 +0200
+@@ -54,7 +54,7 @@
+           return strcmp(dxf_buf, "HEADER") == 0;
+     }
+-    G_fatal_error(_("end of file while looking for HEADER"));
++    G_fatal_error("%s", _("end of file while looking for HEADER"));
+     return -1;
+ }
+--- grass-6.4.3/vector/v.in.dxf/write_vect.c.orig      2009-04-11 11:52:22.000000000 +0200
++++ grass-6.4.3/vector/v.in.dxf/write_vect.c   2014-06-07 22:37:11.880464703 +0200
+@@ -75,7 +75,7 @@
+     int i;
+     if (!(found_layers = (num_fields > 0))) {
+-      G_warning(_("No DXF layers found!"));
++      G_warning("%s", _("No DXF layers found!"));
+       return;
+     }
+@@ -84,7 +84,7 @@
+       db_close_database_shutdown_driver(driver);
+     }
+-    G_message(_("Following DXF layers found:"));
++    G_message("%s", _("Following DXF layers found:"));
+     for (i = 0; i < num_fields; i++) {
+       /* capital column names are a pain in SQL */
+       G_str_to_lower(field_names[i]);
+--- grass-6.4.3/vector/v.in.sites/main.c.orig  2008-11-25 02:30:54.000000000 +0100
++++ grass-6.4.3/vector/v.in.sites/main.c       2014-05-27 21:39:14.013679831 +0200
+@@ -86,19 +86,19 @@
+       G_fatal_error(_("Unable to open site file <%s@%s>"), sname, mapset);
+     if (G_oldsite_describe(site, &dims, &map_type, &strs, &dbls) != 0)
+-      G_fatal_error(_("Unable to guess site_list format"));
++      G_fatal_error("%s", _("Unable to guess site_list format"));
+     if ((s = G_site_new_struct(map_type, dims, strs, dbls)) == NULL)
+-      G_fatal_error(_("Failed to allocate site structure"));
++      G_fatal_error("%s", _("Failed to allocate site structure"));
+     G_verbose_message(_("Input format: dimension: %d strings: %d FP: %d"),
+                     dims, strs, dbls);
+     if (map_type == FCELL_TYPE || map_type == DCELL_TYPE) {
+-      G_message(_("Floating point category values, using sequential integer for category"));
++      G_message("%s", _("Floating point category values, using sequential integer for category"));
+     }
+     else if (map_type != CELL_TYPE) {
+-      G_message(_("No category values, using sequential integer for category"));
++      G_message("%s", _("No category values, using sequential integer for category"));
+     }
+     clen = (int *)G_calloc(strs, sizeof(int));
+@@ -151,7 +151,7 @@
+     }
+     db_append_string(&sql, ")");
+-    G_debug(1, db_get_string(&sql));
++    G_debug(1, "%s", db_get_string(&sql));
+     driver = db_start_driver(fi->driver);
+     if (driver == NULL)
+@@ -180,7 +180,7 @@
+                     fi->table);
+     /* Convert */
+-    G_verbose_message(_("Transferring sites to vector point map..."));
++    G_verbose_message("%s", _("Transferring sites to vector point map..."));
+     count = 0;
+     rewind(site);
+@@ -232,7 +232,7 @@
+       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);
+--- grass-6.4.3/vector/v.kcv/main.c.orig       2011-08-20 11:52:10.000000000 +0200
++++ grass-6.4.3/vector/v.kcv/main.c    2014-05-27 21:39:28.683679525 +0200
+@@ -158,7 +158,7 @@
+     /* Copy tables */
+     if (Vect_copy_tables(&In, &Out, 0))
+-      G_warning(_("Failed to copy attribute table to output map"));
++      G_warning("%s", _("Failed to copy attribute table to output map"));
+     /* Add column */
+     db_init_string(&sql);
+--- grass-6.4.3/vector/v.kernel/function.c.orig        2011-04-16 11:52:08.000000000 +0200
++++ grass-6.4.3/vector/v.kernel/function.c     2014-05-27 21:39:39.990345956 +0200
+@@ -217,7 +217,7 @@
+ double kernelFunction(int function, int dimension, double bandwidth, double x)
+ {
+     if (dimension > 2 && function != KERNEL_GAUSSIAN) {
+-      G_fatal_error(_("Dimension > 2 supported only by gaussian function"));
++      G_fatal_error("%s", _("Dimension > 2 supported only by gaussian function"));
+     }
+     switch (function) {
+     case KERNEL_UNIFORM:
+--- grass-6.4.3/vector/v.kernel/main.c.orig    2013-07-15 14:15:30.000000000 +0200
++++ grass-6.4.3/vector/v.kernel/main.c 2014-06-04 19:58:26.166065786 +0200
+@@ -222,7 +222,7 @@
+     else if (strcmp(node_opt->answer, "split") == 0)
+       node_method = NODE_EQUAL_SPLIT;
+     else
+-      G_fatal_error(_("Unknown node method"));
++      G_fatal_error("%s", _("Unknown node method"));
+     kernel_function = KERNEL_GAUSSIAN;
+     if (strcmp(kernel_opt->answer, "uniform") == 0)
+@@ -240,17 +240,17 @@
+     else if (strcmp(kernel_opt->answer, "cosine") == 0)
+       kernel_function = KERNEL_COSINE;
+     else
+-      G_fatal_error(_("Unknown kernel function"));
++      G_fatal_error("%s", _("Unknown kernel function"));
+     if (flag_o->answer) {
+       if (net_opt->answer) {
+           if (node_method != NODE_NONE ||
+               kernel_function != KERNEL_GAUSSIAN) {
+-              G_fatal_error(_("Optimal standard deviation calculation is supported only for node method 'none' and kernel function 'gaussian'."));
++              G_fatal_error("%s", _("Optimal standard deviation calculation is supported only for node method 'none' and kernel function 'gaussian'."));
+           }
+       }
+       else if (kernel_function != KERNEL_GAUSSIAN) {
+-          G_fatal_error(_("Optimal standard deviation calculation is supported only for kernel function 'gaussian'."));
++          G_fatal_error("%s", _("Optimal standard deviation calculation is supported only for kernel function 'gaussian'."));
+       }
+     }
+@@ -521,7 +521,7 @@
+           G_percent(row, window.rows, 2);
+           if (mask) {
+               if (G_get_map_row(maskfd, mask, row) < 0)
+-                  G_fatal_error(_("Unable to read MASK"));
++                  G_fatal_error("%s", _("Unable to read MASK"));
+           }
+           for (col = 0; col < window.cols; col++) {
+--- grass-6.4.3/vector/v.label/main.c.orig     2008-11-25 02:30:58.000000000 +0100
++++ grass-6.4.3/vector/v.label/main.c  2014-05-27 21:40:24.267011700 +0200
+@@ -231,7 +231,7 @@
+       /* don't bother if Space was explicitly given (bypasses xmon req) */
+       if (Along_flag->answer && !Space->answer) {
+           if (R_open_driver() != 0)   /* connect to the driver */
+-              G_fatal_error(_("No graphics device selected"));
++              G_fatal_error("%s", _("No graphics device selected"));
+           /* Read in the map region associated with graphics window */
+           D_setup(0);
+@@ -249,7 +249,7 @@
+     if (Along_flag->answer && !fontsize &&
+       (size / space >= 2 || size / space <= 0.5))
+-      G_warning(_("size and space options vary significantly which may lead to crummy output"));
++      G_warning("%s", _("size and space options vary significantly which may lead to crummy output"));
+     /* parse reference answers */
+@@ -257,7 +257,7 @@
+     strcpy(ref_pt, "");
+     while (Reference->answers[i]) {
+       if (i > 1)
+-          G_fatal_error(_("Too many parameters for <reference>"));
++          G_fatal_error("%s", _("Too many parameters for <reference>"));
+       if (i > 0)
+           strcat(ref_pt, " ");
+       strncat(ref_pt, Reference->answers[i], 7);
+@@ -275,7 +275,7 @@
+     field = atoi(Fieldopt->answer);
+     fi = Vect_get_field(&Map, field);
+     if (fi == NULL)
+-      G_fatal_error(_("Unable to get layer info for vector map"));
++      G_fatal_error("%s", _("Unable to get layer info for vector map"));
+     driver = db_start_driver_open_database(fi->driver, fi->database);
+     if (driver == NULL)
+@@ -294,7 +294,7 @@
+     while (1) {
+       ltype = Vect_read_next_line(&Map, Points, Cats);
+       if (ltype == -1)
+-          G_fatal_error(_("Unable to read vector map"));
++          G_fatal_error("%s", _("Unable to read vector map"));
+       if (ltype == -2)
+           break;              /* EOF */
+       if (!(type & ltype))
+@@ -320,7 +320,7 @@
+       if (db_open_select_cursor(driver, &stmt, &cursor, DB_SEQUENTIAL) !=
+           DB_OK)
+-          G_fatal_error(_("Unable to select attributes"));
++          G_fatal_error("%s", _("Unable to select attributes"));
+       nrows = db_get_num_rows(&cursor);
+       if (nrows < 1) {
+--- grass-6.4.3/vector/v.lrs/v.lrs.create/main.c.orig  2012-10-27 11:52:09.000000000 +0200
++++ grass-6.4.3/vector/v.lrs/v.lrs.create/main.c       2014-05-28 17:05:53.388887491 +0200
+@@ -274,10 +274,10 @@
+     /* Open the database for lines and points */
+     Lfi = Vect_get_field(&In, lfield);
+     if (Lfi == NULL)
+-      G_fatal_error(_("Cannot get layer info for lines"));
++      G_fatal_error("%s", _("Cannot get layer info for lines"));
+     Pfi = Vect_get_field(&PMap, pfield);
+     if (Pfi == NULL)
+-      G_fatal_error(_("Cannot get layer info for points"));
++      G_fatal_error("%s", _("Cannot get layer info for points"));
+     db_init_handle(&lhandle);
+     db_init_string(&lstmt);
+@@ -301,7 +301,7 @@
+     rsdriver = db_start_driver(driver_opt->answer);
+     db_set_handle(&rshandle, database_opt->answer, NULL);
+     if (db_open_database(rsdriver, &rshandle) != DB_OK)
+-      G_fatal_error(_("Unable to open database for reference table"));
++      G_fatal_error("%s", _("Unable to open database for reference table"));
+     /* Create new reference table */
+     /* perhaps drop table to be conditionalized upon --o ? */
+@@ -341,7 +341,7 @@
+     lccoltype = db_sqltype_to_Ctype(lcoltype);
+     if (lccoltype != DB_C_TYPE_INT)
+-      G_fatal_error(_("Line id column must be integer"));
++      G_fatal_error("%s", _("Line id column must be integer"));
+     lvalue = db_get_column_value(lcolumn);
+@@ -352,7 +352,7 @@
+     Lid_int = (int *)G_malloc(aLid * sizeof(int));
+     while (1) {
+       if (db_fetch(&lcursor, DB_NEXT, &more) != DB_OK)
+-          G_fatal_error(_("Unable to fetch line id from line table"));
++          G_fatal_error("%s", _("Unable to fetch line id from line table"));
+       if (!more)
+           break;
+@@ -454,7 +454,7 @@
+           double mp_tmp, mp_tmp2, off_tmp, off_tmp2;
+           if (db_fetch(&pcursor, DB_NEXT, &more) != DB_OK)
+-              G_fatal_error(_("Unable to fetch line id from line table"));
++              G_fatal_error("%s", _("Unable to fetch line id from line table"));
+           if (!more)
+               break;
+@@ -860,13 +860,13 @@
+     Vect_close(&In);
+     Vect_close(&PMap);
+-    G_message(_("Building topology for output (out_lines) map..."));
++    G_message("%s", _("Building topology for output (out_lines) map..."));
+     Vect_build(&Out);
+     Vect_close(&Out);
+     /* Write errors */
+     if (err_opt->answer) {
+-      G_message(_("Building topology for error (err) map..."));
++      G_message("%s", _("Building topology for error (err) map..."));
+       Vect_build(&EMap);
+       Vect_close(&EMap);
+     }
+--- grass-6.4.3/vector/v.lrs/v.lrs.segment/main.c.orig 2008-11-25 02:30:59.000000000 +0100
++++ grass-6.4.3/vector/v.lrs/v.lrs.segment/main.c      2014-05-28 17:06:28.188886765 +0200
+@@ -148,7 +148,7 @@
+     rsdriver = db_start_driver(driver_opt->answer);
+     db_set_handle(&rshandle, database_opt->answer, NULL);
+     if (db_open_database(rsdriver, &rshandle) != DB_OK)
+-      G_fatal_error(_("Unable to open database for reference table"));
++      G_fatal_error("%s", _("Unable to open database for reference table"));
+     points_read = 0;
+     lines_read = 0;
+@@ -279,7 +279,7 @@
+           }
+           /* Check if both points are at the same line */
+           if (lcat1 != lcat2) {
+-              G_warning(_("Segment over 2 (or more) segments, not yet supported"));
++              G_warning("%s", _("Segment over 2 (or more) segments, not yet supported"));
+               break;
+           }
+           G_debug(2, "segment: lcat = %d : %f -  %f", lcat1, map_offset1,
+--- grass-6.4.3/vector/v.lrs/v.lrs.label/main.c.orig   2012-09-22 11:52:12.000000000 +0200
++++ grass-6.4.3/vector/v.lrs/v.lrs.label/main.c        2014-05-28 17:07:11.485552529 +0200
+@@ -305,7 +305,7 @@
+     rsdriver = db_start_driver(driver_opt->answer);
+     db_set_handle(&rshandle, database_opt->answer, NULL);
+     if (db_open_database(rsdriver, &rshandle) != DB_OK)
+-      G_fatal_error(_("Unable to open database for reference table"));
++      G_fatal_error("%s", _("Unable to open database for reference table"));
+     /* For each line select all existeng reference segments, sort them along the line
+      *  and fcreate stationing. */
+@@ -344,7 +344,7 @@
+       nrseg = 0;
+       while (1) {
+           if (db_fetch(&cursor, DB_NEXT, &more) != DB_OK)
+-              G_fatal_error(_("Unable to fetch data from table"));
++              G_fatal_error("%s", _("Unable to fetch data from table"));
+           if (!more)
+               break;
+@@ -425,11 +425,11 @@
+               G_debug(1, "      get offset");
+               if (ret == 0) {
+-                  G_warning(_("No record in LR table"));
++                  G_warning("%s", _("No record in LR table"));
+                   break;
+               }
+               if (ret == -1) {
+-                  G_warning(_("More than one record in LR table"));
++                  G_warning("%s", _("More than one record in LR table"));
+                   break;
+               }
+               G_debug(2, "map_offset = %f", map_offset);
+--- grass-6.4.3/vector/v.lrs/v.lrs.where/main.c.orig   2008-11-25 02:30:59.000000000 +0100
++++ grass-6.4.3/vector/v.lrs/v.lrs.where/main.c        2014-05-28 17:07:34.472218717 +0200
+@@ -142,7 +142,7 @@
+     rsdriver = db_start_driver(driver_opt->answer);
+     db_set_handle(&rshandle, database_opt->answer, NULL);
+     if (db_open_database(rsdriver, &rshandle) != DB_OK)
+-      G_fatal_error(_("Unable to open database for reference table"));
++      G_fatal_error("%s", _("Unable to open database for reference table"));
+     n_points = n_outside = n_found = n_no_record = n_many_records = 0;
+--- grass-6.4.3/vector/v.proj/main.c.orig      2013-04-20 11:52:15.000000000 +0200
++++ grass-6.4.3/vector/v.proj/main.c   2014-05-28 17:08:44.705550586 +0200
+@@ -146,7 +146,7 @@
+       gbase = G_store(G_gisdbase());
+     if (!ibaseopt->answer && strcmp(iloc_name, G_location()) == 0)
+-      G_fatal_error(_("Input and output locations can not be the same"));
++      G_fatal_error("%s", _("Input and output locations can not be the same"));
+     /* Change the location here and then come back */
+@@ -267,7 +267,7 @@
+     /* Cycle through all lines */
+     Vect_rewind(&Map);
+     i = 0;
+-    fprintf(stderr, _("Reprojecting primitives: "));
++    fputs(_("Reprojecting primitives: "), stderr);
+     while (1) {
+       ++i;
+       if (i % 1000 == 0) {
+@@ -278,13 +278,13 @@
+           continue;           /* Dead */
+       if (type == -1)
+-          G_fatal_error(_("Reading input vector map"));
++          G_fatal_error("%s", _("Reading input vector map"));
+       if (type == -2)
+           break;
+       if (pj_do_transform(Points->n_points, Points->x, Points->y,
+                           flag.transformz->answer ? Points->z : NULL,
+                           &info_in, &info_out) < 0) {
+-          G_fatal_error(_("Error in pj_do_transform"));
++          G_fatal_error("%s", _("Error in pj_do_transform"));
+       }
+       Vect_write_line(&Out_Map, type, Points, Cats);  /* write line */
+@@ -293,7 +293,7 @@
+     /* Copy tables */
+     if (Vect_copy_tables(&Map, &Out_Map, 0))
+-        G_warning(_("Failed to copy attribute table to output map"));
++        G_warning("%s", _("Failed to copy attribute table to output map"));
+     Vect_close(&Map);
+--- grass-6.4.3/vector/v.mkgrid/write_grid.c.orig      2010-09-25 11:52:07.000000000 +0200
++++ grass-6.4.3/vector/v.mkgrid/write_grid.c   2014-05-28 17:09:11.832216688 +0200
+@@ -39,7 +39,7 @@
+     x_cols = cols * (1. * nbreaks);
+     /* write out all the vector lengths (x vectors) of the entire grid  */
+-    G_verbose_message(_("Writing out vector rows..."));
++    G_verbose_message("%s", _("Writing out vector rows..."));
+     y = grid_info->origin_y;
+     for (i = 0; i < num_v_rows; ++i) {
+@@ -76,7 +76,7 @@
+     }
+     /* write out all the vector widths (y vectors) of the entire grid  */
+-    G_verbose_message(_("Writing out vector columns..."));
++    G_verbose_message("%s", _("Writing out vector columns..."));
+     x = grid_info->origin_x;
+     for (k = 0; k < num_v_cols; ++k) {
+       y = grid_info->origin_y;
+@@ -128,7 +128,7 @@
+     yarray[1] = y2;
+     if (0 > Vect_copy_xyz_to_pnts(Points, xarray, yarray, NULL, NUM_POINTS))
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+     Vect_write_line(Map, GV_BOUNDARY, Points, Cats);
+--- grass-6.4.3/vector/v.mkgrid/main.c.orig    2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/vector/v.mkgrid/main.c 2014-06-04 20:16:08.599376975 +0200
+@@ -138,7 +138,7 @@
+     /* please, remove before GRASS 7 released */
+     if (q->answer) {
+       putenv("GRASS_VERBOSE=0");
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+@@ -186,24 +186,24 @@
+     }
+     else {
+       if (!coord->answer)
+-          G_fatal_error(_("'coor' option missing"));
++          G_fatal_error("%s", _("'coor' option missing"));
+       if (!box->answer)
+-          G_fatal_error(_("'box' option missing"));
++          G_fatal_error("%s", _("'box' option missing"));
+       if (!G_scan_easting
+           (coord->answers[0], &(grid_info.origin_x), window.proj))
+-          G_fatal_error(_("Invalid easting"));;
++          G_fatal_error("%s", _("Invalid easting"));;
+       if (!G_scan_northing
+           (coord->answers[1], &(grid_info.origin_y), window.proj))
+-          G_fatal_error(_("Invalid northing"));;
++          G_fatal_error("%s", _("Invalid northing"));;
+       if (!G_scan_resolution
+           (box->answers[0], &(grid_info.length), window.proj))
+-          G_fatal_error(_("Invalid distance"));;
++          G_fatal_error("%s", _("Invalid distance"));;
+       if (!G_scan_resolution
+           (box->answers[1], &(grid_info.width), window.proj))
+-          G_fatal_error(_("Invalid distance"));;
++          G_fatal_error("%s", _("Invalid distance"));;
+     }
+@@ -256,7 +256,7 @@
+     }
+     if (db_create_index2(Driver, Fi->table, Fi->key) != DB_OK)
+-      G_warning(_("Unable to create index"));
++      G_warning("%s", _("Unable to create index"));
+     if (db_grant_on_table
+       (Driver, Fi->table, DB_PRIV_SELECT, DB_GROUP | DB_PUBLIC) != DB_OK)
+@@ -269,7 +269,7 @@
+     }
+     /* Create a grid of label points at the centres of the grid cells */
+-    G_verbose_message(_("Creating centroids..."));
++    G_verbose_message("%s", _("Creating centroids..."));
+     /* Write out centroids and attributes */
+     attCount = 0;
+--- grass-6.4.3/vector/v.net/main.c.orig       2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/vector/v.net/main.c    2014-05-28 17:09:52.298882511 +0200
+@@ -117,24 +117,24 @@
+     else if (strcmp(action->answer, "nreport") == 0)
+       act = TOOL_NREPORT;
+     else
+-      G_fatal_error(_("Unknown operation"));
++      G_fatal_error("%s", _("Unknown operation"));
+     if (act == TOOL_NODES || act == TOOL_CONNECT) {
+       if (output->answer == NULL)
+-          G_fatal_error(_("Output vector map must be specified"));
++          G_fatal_error("%s", _("Output vector map must be specified"));
+     }
+     if (act == TOOL_CONNECT) {
+       if (points->answer == NULL)
+-          G_fatal_error(_("Point vector map must be specified"));
++          G_fatal_error("%s", _("Point vector map must be specified"));
+       if (thresh_opt->answer == NULL)
+-          G_fatal_error(_("Threshold value must be specified"));
++          G_fatal_error("%s", _("Threshold value must be specified"));
+       thresh = atof(thresh_opt->answer);
+       if (thresh < 0.0)
+-          G_fatal_error(_("Threshold value must be >= 0"));
++          G_fatal_error("%s", _("Threshold value must be >= 0"));
+     }
+     /* open input map */
+@@ -194,7 +194,7 @@
+       }
+         if (Vect_copy_tables(&In, &Out, 0))
+-            G_warning(_("Failed to copy attribute table to output map"));
++            G_warning("%s", _("Failed to copy attribute table to output map"));
+       /* support */
+       Vect_build_partial(&Out, GV_BUILD_NONE);
+--- grass-6.4.3/vector/v.net.alloc/main.c.orig 2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/vector/v.net.alloc/main.c      2014-05-28 17:10:29.238881741 +0200
+@@ -186,7 +186,7 @@
+     G_message(_("Number of centres: [%d] (nlayer: [%d])"), ncentres, nfield);
+     if (ncentres == 0)
+-      G_warning(_("Not enough centres for selected nlayer. "
++      G_warning("%s", _("Not enough centres for selected nlayer. "
+                   "Nothing will be allocated."));
+     /* alloc and reset space for all nodes */
+@@ -197,7 +197,7 @@
+     /* Fill Nodes by neares centre and costs from that centre */
+-    G_message(_("Calculating costs from centres ..."));
++    G_message("%s", _("Calculating costs from centres ..."));
+     for (centre = 0; centre < ncentres; centre++) {
+       G_percent(centre, ncentres, 1);
+@@ -337,7 +337,7 @@
+                   /* First segment */
+                   ret = Vect_line_segment(Points, 0, l1, SPoints);
+                   if (ret == 0) {
+-                      G_warning(_("Cannot get line segment, segment out of line"));
++                      G_warning("%s", _("Cannot get line segment, segment out of line"));
+                   }
+                   else {
+                       cat = Centers[centre1].cat;
+@@ -348,7 +348,7 @@
+                   /* Second segment */
+                   ret = Vect_line_segment(Points, l1, l, SPoints);
+                   if (ret == 0) {
+-                      G_warning(_("Cannot get line segment, segment out of line"));
++                      G_warning("%s", _("Cannot get line segment, segment out of line"));
+                   }
+                   else {
+                       Vect_reset_cats(Cats);
+--- grass-6.4.3/vector/v.net.allpairs/main.c.orig      2012-04-21 11:52:03.000000000 +0200
++++ grass-6.4.3/vector/v.net.allpairs/main.c   2014-05-28 17:11:30.235547136 +0200
+@@ -119,7 +119,7 @@
+     if (geo_f->answer) {
+       geo = 1;
+       if (G_projection() != PROJECTION_LL)
+-          G_warning(_("The current projection is not longitude-latitude"));
++          G_warning("%s", _("The current projection is not longitude-latitude"));
+     }
+     else
+       geo = 0;
+@@ -146,7 +146,7 @@
+           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);
+@@ -171,7 +171,7 @@
+     spnode = (struct _spnode *)G_calloc(npoints + 1, sizeof(struct _spnode));
+     if (!spnode)
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+     for (i = 0; i < npoints; i++) {
+       spnode[i].cat = -1;
+@@ -206,7 +206,7 @@
+     }
+     max_cat++;
+     if (newpoints_f->answer) {
+-      G_important_message(_("New points are excluded from shortest path calculations."));
++      G_important_message("%s", _("New points are excluded from shortest path calculations."));
+       for (i = 0; i < npoints; i++) {
+           if (spnode[i].cat == -1) {
+               Vect_reset_cats(Cats);
+@@ -216,7 +216,7 @@
+           }
+       }
+     }
+-    G_message(_("Writing data into the table..."));
++    G_message("%s", _("Writing data into the table..."));
+     G_percent_reset();
+     for (i = 0; i < nnodes; i++) {
+       G_percent(i, nnodes, 1);
+@@ -234,7 +234,7 @@
+           sprintf(buf, "insert into %s values (%d, %d, %f)",
+                   Fi->table, 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);
+--- grass-6.4.3/vector/v.net.centrality/main.c.orig    2012-11-03 10:52:04.000000000 +0100
++++ grass-6.4.3/vector/v.net.centrality/main.c 2014-05-28 17:30:50.712189615 +0200
+@@ -198,7 +198,7 @@
+     if (geo_f->answer) {
+       geo = 1;
+       if (G_projection() != PROJECTION_LL)
+-          G_warning(_("The current projection is not longitude-latitude"));
++          G_warning("%s", _("The current projection is not longitude-latitude"));
+     }
+     else
+       geo = 0;
+@@ -233,7 +233,7 @@
+           "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) {
+       db_close_database_shutdown_driver(driver);
+@@ -241,7 +241,7 @@
+     }
+     if (db_create_index2(driver, Fi->table, "cat") != DB_OK)
+-      G_warning(_("Cannot create index"));
++      G_warning("%s", _("Cannot create index"));
+     if (db_grant_on_table
+       (driver, Fi->table, DB_PRIV_SELECT, DB_GROUP | DB_PUBLIC) != DB_OK)
+@@ -262,53 +262,53 @@
+     covered = (char *)G_calloc(nnodes + 1, sizeof(char));
+     if (!covered)
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+     if (deg_opt->answer) {
+       deg = (double *)G_calloc(nnodes + 1, sizeof(double));
+       if (!deg)
+-          G_fatal_error(_("Out of memory"));
++          G_fatal_error("%s", _("Out of memory"));
+     }
+     if (close_opt->answer) {
+       closeness = (double *)G_calloc(nnodes + 1, sizeof(double));
+       if (!closeness)
+-          G_fatal_error(_("Out of memory"));
++          G_fatal_error("%s", _("Out of memory"));
+     }
+     if (betw_opt->answer) {
+       betw = (double *)G_calloc(nnodes + 1, sizeof(double));
+       if (!betw)
+-          G_fatal_error(_("Out of memory"));
++          G_fatal_error("%s", _("Out of memory"));
+     }
+     if (eigen_opt->answer) {
+       eigen = (double *)G_calloc(nnodes + 1, sizeof(double));
+       if (!eigen)
+-          G_fatal_error(_("Out of memory"));
++          G_fatal_error("%s", _("Out of memory"));
+     }
+     if (deg_opt->answer) {
+-      G_message(_("Computing degree centrality measure"));
++      G_message("%s", _("Computing degree centrality measure"));
+       NetA_degree_centrality(graph, deg);
+     }
+     if (betw_opt->answer || close_opt->answer) {
+-      G_message(_("Computing betweenness and/or closeness centrality measure"));
++      G_message("%s", _("Computing betweenness and/or closeness centrality measure"));
+       NetA_betweenness_closeness(graph, betw, closeness);
+       if (closeness)
+           for (i = 1; i <= nnodes; i++)
+               closeness[i] /= (double)In.cost_multip;
+     }
+     if (eigen_opt->answer) {
+-      G_message(_("Computing eigenvector centrality measure"));
++      G_message("%s", _("Computing eigenvector centrality measure"));
+       NetA_eigenvector_centrality(graph, atoi(iter_opt->answer),
+                                   atof(error_opt->answer), eigen);
+     }
+     nlines = Vect_get_num_lines(&In);
+-    G_message(_("Writing data into the table..."));
++    G_message("%s", _("Writing data into the table..."));
+     G_percent_reset();
+     for (i = 1; i <= nlines; i++) {
+       G_percent(i, nlines, 1);
+--- grass-6.4.3/vector/v.net.components/main.c.orig    2011-04-16 11:52:08.000000000 +0200
++++ grass-6.4.3/vector/v.net.components/main.c 2014-05-28 17:36:42.452182284 +0200
+@@ -31,7 +31,7 @@
+     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);
+@@ -124,7 +124,7 @@
+     component = (int *)G_calloc(nnodes + 1, sizeof(int));
+     covered = (char *)G_calloc(nnodes + 1, sizeof(char));
+     if (!component || !covered) {
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+       exit(EXIT_FAILURE);
+     }
+     /* Create table */
+@@ -140,7 +140,7 @@
+     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);
+@@ -148,7 +148,7 @@
+     }
+     if (db_create_index2(driver, Fi->table, "cat") != DB_OK)
+-      G_warning(_("Cannot create index"));
++      G_warning("%s", _("Cannot create index"));
+     if (db_grant_on_table
+       (driver, Fi->table, DB_PRIV_SELECT, DB_GROUP | DB_PUBLIC) != DB_OK)
+--- grass-6.4.3/vector/v.net.connectivity/main.c.orig  2011-04-16 11:52:08.000000000 +0200
++++ grass-6.4.3/vector/v.net.connectivity/main.c       2014-05-28 17:36:59.478848595 +0200
+@@ -162,7 +162,7 @@
+     if (ncol->answer) {
+       node_costs = (int *)G_calloc(nnodes + 1, sizeof(int));
+       if (!node_costs)
+-          G_fatal_error(_("Out of memory"));
++          G_fatal_error("%s", _("Out of memory"));
+       NetA_get_node_costs(&In, layer, ncol->answer, node_costs);
+       nedges = NetA_split_vertices(graph, &vg, node_costs);
+       G_free(node_costs);
+@@ -178,7 +178,7 @@
+     flow = (int *)G_calloc(nedges + 1, sizeof(int));
+     if (!flow)
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+     total_flow = NetA_flow(graph, set1_list, set2_list, flow);
+     G_debug(3, "Connectivity: %d", total_flow);
+--- grass-6.4.3/vector/v.net.distance/main.c.orig      2011-04-16 11:52:08.000000000 +0200
++++ grass-6.4.3/vector/v.net.distance/main.c   2014-05-28 17:37:37.278847808 +0200
+@@ -150,7 +150,7 @@
+     if (geo_f->answer) {
+       geo = 1;
+       if (G_projection() != PROJECTION_LL)
+-          G_warning(_("The current projection is not longitude-latitude"));
++          G_warning("%s", _("The current projection is not longitude-latitude"));
+     }
+     else
+       geo = 0;
+@@ -165,7 +165,7 @@
+     on_path =
+       (struct line_cats **)G_calloc(nlines + 1, sizeof(struct line_cats *));
+     if (!dst || !prev || !nodes_to_features || !on_path)
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+     for (i = 1; i <= nlines; i++)
+       on_path[i] = Vect_new_cats_struct();
+@@ -201,7 +201,7 @@
+           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);
+@@ -209,7 +209,7 @@
+     }
+     if (db_create_index2(driver, Fi->table, "cat") != DB_OK)
+-      G_warning(_("Cannot create index"));
++      G_warning("%s", _("Cannot create index"));
+     if (db_grant_on_table
+       (driver, Fi->table, DB_PRIV_SELECT, DB_GROUP | DB_PUBLIC) != DB_OK)
+@@ -250,7 +250,7 @@
+                   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) {
+               db_close_database_shutdown_driver(driver);
+               G_fatal_error(_("Cannot insert new record: %s"),
+--- grass-6.4.3/vector/v.net.flow/main.c.orig  2011-04-16 11:52:08.000000000 +0200
++++ grass-6.4.3/vector/v.net.flow/main.c       2014-05-28 17:40:45.018843894 +0200
+@@ -161,7 +161,7 @@
+           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);
+@@ -169,7 +169,7 @@
+     }
+     if (db_create_index2(driver, Fi->table, "cat") != DB_OK)
+-      G_warning(_("Cannot create index"));
++      G_warning("%s", _("Cannot create index"));
+     if (db_grant_on_table
+       (driver, Fi->table, DB_PRIV_SELECT, DB_GROUP | DB_PUBLIC) != DB_OK)
+@@ -196,10 +196,10 @@
+     NetA_varray_to_nodes(&In, varray_sink, sink_list, NULL);
+     if (source_list->n_values == 0)
+-      G_fatal_error(_("No sources"));
++      G_fatal_error("%s", _("No sources"));
+     if (sink_list->n_values == 0)
+-      G_fatal_error(_("No sinks"));
++      G_fatal_error("%s", _("No sinks"));
+     Vect_copy_head_data(&In, &Out);
+     Vect_hist_copy(&In, &Out);
+@@ -211,7 +211,7 @@
+     nlines = Vect_get_num_lines(&In);
+     flow = (int *)G_calloc(nlines + 1, sizeof(int));
+     if (!flow)
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+     total_flow = NetA_flow(graph, source_list, sink_list, flow);
+     G_debug(3, "Max flow: %d", total_flow);
+@@ -221,7 +221,7 @@
+       G_debug(3, "Min cut: %d", total_flow);
+     }
+-    G_message(_("Writing the output..."));
++    G_message("%s", _("Writing the output..."));
+     G_percent_reset();
+     for (i = 1; i <= nlines; i++) {
+       G_percent(i, nlines, 1);
+@@ -237,7 +237,7 @@
+           sprintf(buf, "insert into %s values (%d, %f)", Fi->table, cat,
+                   flow[i] / (double)In.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);
+--- grass-6.4.3/vector/v.net.iso/main.c.orig   2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/vector/v.net.iso/main.c        2014-05-28 18:23:45.908790101 +0200
+@@ -168,7 +168,7 @@
+     /* Should not happen: */
+     if (niso < 2)
+-      G_warning(_("Not enough costs, everything reachable falls to first band"));
++      G_warning("%s", _("Not enough costs, everything reachable falls to first band"));
+     if (geo_f->answer)
+       geo = 1;
+@@ -202,7 +202,7 @@
+           if (Vect_cat_in_cat_list(cat, catlist)) {
+               Vect_net_get_node_cost(&Map, node, &n1cost);
+               if (n1cost == -1) {     /* closed */
+-                  G_warning(_("Centre at closed node (costs = -1) ignored"));
++                  G_warning("%s", _("Centre at closed node (costs = -1) ignored"));
+               }
+               else {
+                   if (acentres == ncentres) {
+@@ -224,7 +224,7 @@
+     G_message(_("Number of centres: %d (nlayer %d)"), ncentres, nfield);
+     if (ncentres == 0)
+-      G_warning(_("Not enough centres for selected nlayer. Nothing will be allocated."));
++      G_warning("%s", _("Not enough centres for selected nlayer. Nothing will be allocated."));
+     /* alloc and reset space for all nodes */
+     Nodes = (NODE *) G_calloc((nnodes + 1), sizeof(NODE));
+@@ -505,7 +505,7 @@
+                   Vect_line_segment(Points, pnts1[i - 1].distance,
+                                     pnts1[i].distance, SPoints);
+               if (ret == 0) {
+-                  G_warning(_("Cannot get line segment, segment out of line"));
++                  G_warning("%s", _("Cannot get line segment, segment out of line"));
+               }
+               else {
+                   Vect_reset_cats(Cats);
+--- grass-6.4.3/vector/v.net.path/path.c.orig  2008-12-06 11:45:17.000000000 +0100
++++ grass-6.4.3/vector/v.net.path/path.c       2014-05-28 18:24:11.512122900 +0200
+@@ -102,7 +102,7 @@
+           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);
+@@ -110,7 +110,7 @@
+     }
+     if (db_create_index2(driver, Fi->table, "cat") != DB_OK)
+-      G_warning(_("Cannot create index"));
++      G_warning("%s", _("Cannot create index"));
+     if (db_grant_on_table
+       (driver, Fi->table, DB_PRIV_SELECT, DB_GROUP | DB_PUBLIC) != DB_OK)
+@@ -302,7 +302,7 @@
+               "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) {
+           db_close_database_shutdown_driver(driver);
+--- grass-6.4.3/vector/v.net.path/main.c.orig  2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/vector/v.net.path/main.c       2014-06-04 20:16:18.942710093 +0200
+@@ -117,7 +117,7 @@
+     if (geo_f->answer) {
+       geo = 1;
+       if (G_projection() != PROJECTION_LL)
+-          G_warning(_("The current projection is not longitude-latitude"));
++          G_warning("%s", _("The current projection is not longitude-latitude"));
+     }
+     else
+       geo = 0;
+--- grass-6.4.3/vector/v.net.salesman/main.c.orig      2011-06-18 11:52:04.000000000 +0200
++++ grass-6.4.3/vector/v.net.salesman/main.c   2014-05-28 18:25:41.328787695 +0200
+@@ -192,7 +192,7 @@
+     ncities = TList->n_values;
+     G_message(_("Number of cities: [%d]"), ncities);
+     if (ncities < 2)
+-      G_fatal_error(_("Not enough cities (< 2)"));
++      G_fatal_error("%s", _("Not enough cities (< 2)"));
+     /* Alloc memory */
+     cities = (int *)G_malloc(ncities * sizeof(int));
+--- grass-6.4.3/vector/v.net.spanningtree/main.c.orig  2011-04-16 11:52:08.000000000 +0200
++++ grass-6.4.3/vector/v.net.spanningtree/main.c       2014-05-28 18:25:57.358787361 +0200
+@@ -90,7 +90,7 @@
+     if (geo_f->answer) {
+       geo = 1;
+       if (G_projection() != PROJECTION_LL)
+-          G_warning(_("The current projection is not longitude-latitude"));
++          G_warning("%s", _("The current projection is not longitude-latitude"));
+     }
+     else
+       geo = 0;
+--- grass-6.4.3/vector/v.net.steiner/main.c.orig       2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/vector/v.net.steiner/main.c    2014-05-28 18:26:34.228786592 +0200
+@@ -450,13 +450,13 @@
+     fprintf(stdout, "Number of terminals: %d\n", nterms);
+     if (nterms < 2)
+-      G_fatal_error(_("Not enough terminals (< 2)"));
++      G_fatal_error("%s", _("Not enough terminals (< 2)"));
+     /* Number of steiner points */
+     nsp = atoi(nsp_opt->answer);
+     if (nsp > nterms - 2) {
+       nsp = nterms - 2;
+-      G_warning(_("Requested number of Steiner points > than possible"));
++      G_warning("%s", _("Requested number of Steiner points > than possible"));
+     }
+     else if (nsp == -1) {
+       nsp = nterms - 2;
+@@ -568,7 +568,7 @@
+                   NULL, NULL, 0, 1);
+       }
+       else {                  /* no steiner found */
+-          G_message(_("No Steiner point found -> leaving cycle"));
++          G_message("%s", _("No Steiner point found -> leaving cycle"));
+           break;
+       }
+     }
+--- grass-6.4.3/vector/v.net.timetable/main.c.orig     2011-04-16 11:52:08.000000000 +0200
++++ grass-6.4.3/vector/v.net.timetable/main.c  2014-05-28 18:31:12.298780797 +0200
+@@ -96,7 +96,7 @@
+     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);
+@@ -104,7 +104,7 @@
+     }
+     if (db_create_index2(*driver, (*Fi)->table, "cat") != DB_OK)
+-      G_warning(_("Cannot create index"));
++      G_warning("%s", _("Cannot create index"));
+     if (db_grant_on_table
+       (*driver, (*Fi)->table, DB_PRIV_SELECT,
+@@ -128,7 +128,7 @@
+     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 @@
+           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));
+@@ -342,7 +342,7 @@
+       (&In, layer, atoi(walk_layer_opt->answer), route_id_opt->answer,
+        stop_time_opt->answer, to_stop_opt->answer, walk_length_opt->answer,
+        &timetable, &route_ids, &stop_ids) != 0)
+-      G_fatal_error(_("Could not initialize the timetables"));
++      G_fatal_error("%s", _("Could not initialize the timetables"));
+     stop_x = (double *)G_calloc(timetable.stops, sizeof(double));
+     stop_y = (double *)G_calloc(timetable.stops, sizeof(double));
+@@ -350,7 +350,7 @@
+     found = (int *)G_calloc(timetable.stops, sizeof(int));
+     if (!stop_x || !stop_y || !stop_z || !found)
+-      G_fatal_error(_("Out of memory"));
++      G_fatal_error("%s", _("Out of memory"));
+     if (path_layer > 0) {
+       nnodes = Vect_get_num_nodes(&In);
+@@ -360,7 +360,7 @@
+                                     sizeof(struct ilist *));
+       edges = (int *)G_calloc(nnodes + 1, sizeof(int));
+       if (!edges || !stop_node || !lines)
+-          G_fatal_error(_("Out of memory"));
++          G_fatal_error("%s", _("Out of memory"));
+       for (i = 0; i < timetable.routes; i++)
+           lines[i] = Vect_new_list();
+@@ -464,7 +464,7 @@
+       }
+       if (from_stop == to_stop) {
+-          G_warning(_("'From' and 'To' stops are the same"));
++          G_warning("%s", _("'From' and 'To' stops are the same"));
+           continue;
+       }
+@@ -473,7 +473,7 @@
+                                        start_time, min_change, max_changes,
+                                        walking_change, &result);
+       if (ret == -1) {
+-          G_warning(_("No path between the stops"));
++          G_warning("%s", _("No path between the stops"));
+           continue;
+       }
+       head.next = NULL;
+--- grass-6.4.3/vector/v.net.visibility/main.c.orig    2009-04-18 11:52:32.000000000 +0200
++++ grass-6.4.3/vector/v.net.visibility/main.c 2014-05-28 18:31:33.855447014 +0200
+@@ -101,7 +101,7 @@
+     if (G_projection() == PROJECTION_LL)
+-      G_warning(_("Lat-long projection"));
++      G_warning("%s", _("Lat-long projection"));
+     /* counting how many points and lines we have to allocate */
+--- grass-6.4.3/vector/v.normal/main.c.orig    2011-08-20 11:52:10.000000000 +0200
++++ grass-6.4.3/vector/v.normal/main.c 2014-05-28 19:17:03.758723447 +0200
+@@ -151,7 +151,7 @@
+       G_fatal_error("Column type not supported");
+     if (nrecords < 0)
+-      G_fatal_error(_("Unable to select data from table"));
++      G_fatal_error("%s", _("Unable to select data from table"));
+     G_message(_("%d records selected from table"), nrecords);
+     db_close_database_shutdown_driver(Driver);
+@@ -220,7 +220,7 @@
+               "WARNING: I'm not so sure of myself for small samples\n");
+     if (flag.l->answer) {
+-      G_message(_("Doing log transformation"));
++      G_message("%s", _("Doing log transformation"));
+       warn_once = 0;
+       for (i = 0; i < nsites; ++i) {
+           if (z[i] > 1.0e-10)
+--- grass-6.4.3/vector/v.out.ascii/out.c.orig  2012-03-10 11:52:03.000000000 +0100
++++ grass-6.4.3/vector/v.out.ascii/out.c       2014-05-28 19:17:31.592056201 +0200
+@@ -116,11 +116,11 @@
+       ver = 4;
+     if (ver == 4 && format == FORMAT_POINT) {
+-      G_fatal_error(_("Format 'point' is not supported for old version"));
++      G_fatal_error("%s", _("Format 'point' is not supported for old version"));
+     }
+     if (ver == 4 && output->answer == NULL) {
+-      G_fatal_error(_("'output' must be given for old version"));
++      G_fatal_error("%s", _("'output' must be given for old version"));
+     }
+     /* the field separator */
+@@ -137,7 +137,7 @@
+     /*The precision of the output */
+     if (dp_opt->answer) {
+       if (sscanf(dp_opt->answer, "%d", &dp) != 1)
+-          G_fatal_error(_("Failed to interpret 'dp' parameter as an integer"));
++          G_fatal_error("%s", _("Failed to interpret 'dp' parameter as an integer"));
+     }
+@@ -182,7 +182,7 @@
+     att = NULL;
+     if (ver == 4 && !pnt) {
+       if (G_find_file("dig_att", output->answer, G_mapset()) != NULL)
+-          G_fatal_error(_("dig_att file already exist"));
++          G_fatal_error("%s", _("dig_att file already exist"));
+       if ((att = G_fopen_new("dig_att", output->answer)) == NULL)
+           G_fatal_error(_("Unable to open dig_att file <%s>"),
+--- grass-6.4.3/vector/v.out.svg/main.c.orig   2013-05-11 11:52:04.000000000 +0200
++++ grass-6.4.3/vector/v.out.svg/main.c        2014-05-28 19:18:00.215388937 +0200
+@@ -127,10 +127,10 @@
+     /* override coordinate precision if any */
+     precision = atof(prec_opt->answer);
+     if (precision < 0) {
+-      G_fatal_error(_("Precision must not be negative"));
++      G_fatal_error("%s", _("Precision must not be negative"));
+     }
+     if (precision > 15) {
+-      G_fatal_error(_("Precision must not be higher than 15"));
++      G_fatal_error("%s", _("Precision must not be higher than 15"));
+     }
+     /* parse field number */
+@@ -394,7 +394,7 @@
+     }
+     else {
+       if (db_fetch(&cursor, DB_NEXT, &more) != DB_OK) {
+-          G_fatal_error(_("Unable to fetch data from table"));
++          G_fatal_error("%s", _("Unable to fetch data from table"));
+       }
+       /* extract attribs and data if wanted */
+--- grass-6.4.3/vector/v.out.vtk/writeVTK.c.orig       2012-10-27 11:52:09.000000000 +0200
++++ grass-6.4.3/vector/v.out.vtk/writeVTK.c    2014-05-28 19:37:48.715364165 +0200
+@@ -185,7 +185,7 @@
+      */
+     /*break if nothing to generate */
+     if (info->maxnumpoints == 0)
+-      G_fatal_error(_("No coordinates to generate the output! Maybe an empty vector type chosen?"));
++      G_fatal_error("%s", _("No coordinates to generate the output! Maybe an empty vector type chosen?"));
+     /************************************************/
+@@ -577,7 +577,7 @@
+     }
+     
+     if(db_fetch (&cursor, DB_NEXT, &more) != DB_OK) 
+-      G_fatal_error (_("Unable to fetch data from table"));
++      G_fatal_error ("%s", _("Unable to fetch data from table"));
+     
+     Table = db_get_cursor_table (&cursor);
+     
+@@ -620,7 +620,7 @@
+  
+     if ( layer < 1 ) {
+-      G_warning(_("Cannot export attribute table fields for layer < 1. Skipping export"));
++      G_warning("%s", _("Cannot export attribute table fields for layer < 1. Skipping export"));
+       return 1;
+     }
+     
+@@ -628,7 +628,7 @@
+     db_init_string(&dbstring);
+     Fi = Vect_get_field( Map, layer); 
+     if ( Fi == NULL ) {
+-      G_fatal_error (_("No attribute table found"));
++      G_fatal_error ("%s", _("No attribute table found"));
+     }
+     Driver = db_start_driver(Fi->driver);
+     if (Driver == NULL)
+@@ -660,7 +660,7 @@
+        
+     }
+     if ( num_atts < 1 ) {
+-      G_warning(_("No numerical attributes found. Skipping export"));
++      G_warning("%s", _("No numerical attributes found. Skipping export"));
+       db_close_database(Driver);
+       db_shutdown_driver(Driver);     
+       return 1;       
+--- grass-6.4.3/vector/v.out.vtk/main.c.orig   2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/vector/v.out.vtk/main.c        2014-06-04 20:17:13.366042290 +0200
+@@ -183,9 +183,9 @@
+     /*The precision of the output */
+     if (dp_opt->answer) {
+       if (sscanf(dp_opt->answer, "%d", &dp) != 1)
+-          G_fatal_error(_("Failed to interpret 'dp' parameter as an integer"));
++          G_fatal_error("%s", _("Failed to interpret 'dp' parameter as an integer"));
+       if (dp > 8 || dp < 0)
+-          G_fatal_error(_("dp has to be from 0 to 8"));
++          G_fatal_error("%s", _("dp has to be from 0 to 8"));
+     }
+     else {
+       dp = 8;                 /*This value is taken from the lib settings in G_feature_easting */
+@@ -194,7 +194,7 @@
+     /*The Layer */
+     if (layer_opt->answer) {
+       if (sscanf(layer_opt->answer, "%d", &layer) != 1)
+-          G_fatal_error(_("Failed to interpret 'layer' parameter as an integer"));
++          G_fatal_error("%s", _("Failed to interpret 'layer' parameter as an integer"));
+     }
+     else {
+       layer = 1;
+--- grass-6.4.3/vector/v.out.vtk/head.c.orig   2008-11-25 02:30:57.000000000 +0100
++++ grass-6.4.3/vector/v.out.vtk/head.c        2014-06-07 15:52:44.550970508 +0200
+@@ -24,7 +24,7 @@
+ int write_vtk_head(FILE * fp, struct Map_info *Map)
+ {
+-    G_debug(3, _("writeVTKHeader: Writing VTK-Header"));
++    G_debug(3, "%s", _("writeVTKHeader: Writing VTK-Header"));
+     fprintf(fp, "# vtk DataFile Version 3.0\n");
+     fprintf(fp, "GRASS 6 vector map: %s\n", Map->name);
+     fprintf(fp, "ASCII\n");
+--- grass-6.4.3/vector/v.overlay/line_area.c.orig      2012-12-08 11:52:05.000000000 +0100
++++ grass-6.4.3/vector/v.overlay/line_area.c   2014-05-28 19:38:26.908696703 +0200
+@@ -66,9 +66,9 @@
+     OCats = Vect_new_cats_struct();
+     db_init_string(&stmt);
+-    G_message(_("Breaking lines..."));
++    G_message("%s", _("Breaking lines..."));
+     Vect_break_lines_list(Out, NULL, BList, GV_LINE | GV_BOUNDARY, NULL);
+-    G_message(_("Merging lines..."));
++    G_message("%s", _("Merging lines..."));
+     Vect_merge_lines(Out, GV_LINE, NULL, NULL);
+     nlines = Vect_get_num_lines(Out);
+@@ -80,7 +80,7 @@
+      */
+     /* Check if the line is inside or outside binput area */
+-    G_message(_("Selecting lines..."));
++    G_message("%s", _("Selecting lines..."));
+     ncat = 1;
+     for (line = 1; line <= nlines; line++) {
+       int ltype;
+@@ -159,7 +159,7 @@
+                               if (attr[0].columns) {
+                                   at = find_attr(&(attr[0]), Cats->cat[i]);
+                                   if (!at)
+-                                      G_fatal_error(_("Attribute not found"));
++                                      G_fatal_error("%s", _("Attribute not found"));
+                                   if (at->values)
+                                       db_append_string(&stmt, at->values);
+@@ -187,7 +187,7 @@
+                               if (attr[1].columns) {
+                                   at = find_attr(&(attr[1]), ACats->cat[j]);
+                                   if (!at)
+-                                      G_fatal_error(_("Attribute not found"));
++                                      G_fatal_error("%s", _("Attribute not found"));
+                                   if (at->values)
+                                       db_append_string(&stmt, at->values);
+@@ -212,7 +212,7 @@
+                           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'"),
+--- grass-6.4.3/vector/v.overlay/main.c.orig   2013-04-20 11:52:15.000000000 +0200
++++ grass-6.4.3/vector/v.overlay/main.c        2014-06-04 20:17:52.549374807 +0200
+@@ -324,7 +324,7 @@
+       G_debug(3, "%d cats read from index", attr[input].n);
+-      G_message(_("Collecting input attributes..."));
++      G_message("%s", _("Collecting input attributes..."));
+       attr[input].null_values = NULL;
+       attr[input].columns = NULL;
+@@ -359,7 +359,7 @@
+           if (db_open_select_cursor(in_driver, &sql, &cursor, DB_SEQUENTIAL)
+               != DB_OK)
+-              G_fatal_error(_("Unable to select attributes"));
++              G_fatal_error("%s", _("Unable to select attributes"));
+           Table = db_get_cursor_table(&cursor);
+           ncol = db_get_table_number_of_columns(Table);
+@@ -423,7 +423,7 @@
+               ATTR *at;
+               if (db_fetch(&cursor, DB_NEXT, &more) != DB_OK)
+-                  G_fatal_error(_("Unable to fetch data from table"));
++                  G_fatal_error("%s", _("Unable to fetch data from table"));
+               if (!more)
+                   break;
+@@ -517,7 +517,7 @@
+       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);
+@@ -527,7 +527,7 @@
+       }
+       
+       if (db_create_index2(driver, Fi->table, "cat") != DB_OK)
+-          G_warning(_("Unable to create index"));
++          G_warning("%s", _("Unable to create index"));
+       if (db_grant_on_table
+           (driver, Fi->table, DB_PRIV_SELECT,
+@@ -548,7 +548,7 @@
+       line_area(In, field, &Out, Fi, driver, operator, ofield, attr, BList);
+     }
+-    G_message(_("Rebuilding topology..."));
++    G_message("%s", _("Rebuilding topology..."));
+     Vect_build_partial(&Out, GV_BUILD_NONE);
+     Vect_build(&Out);
+     /* Build topology to show the final result and prepare for Vect_close() */
+--- grass-6.4.3/vector/v.overlay/area_area.c.orig      2012-12-08 11:52:05.000000000 +0100
++++ grass-6.4.3/vector/v.overlay/area_area.c   2014-06-07 16:05:54.997620699 +0200
+@@ -107,14 +107,14 @@
+      * are created. We must call Vect_break_lines(), Vect_remove_duplicates()
+      * and Vect_clean_small_angles_at_nodes() until no more small dangles are found */
+     do {
+-      G_message(_("Breaking lines..."));
++      G_message("%s", _("Breaking lines..."));
+       Vect_break_lines_list(Out, NULL, BList, GV_BOUNDARY, NULL);
+       /* Probably not necessary for LINE x AREA */
+-      G_message(_("Removing duplicates..."));
++      G_message("%s", _("Removing duplicates..."));
+       Vect_remove_duplicates(Out, GV_BOUNDARY, NULL);
+-      G_message(_("Cleaning boundaries at nodes..."));
++      G_message("%s", _("Cleaning boundaries at nodes..."));
+       nmodif =
+           Vect_clean_small_angles_at_nodes(Out, GV_BOUNDARY, NULL);
+     } while (nmodif > 0);
+@@ -150,11 +150,11 @@
+     Vect_build_partial(Out, GV_BUILD_NONE);
+     Vect_build_partial(Out, GV_BUILD_BASE);
+     G_set_verbose(verbose);
+-    G_message(_("Merging lines..."));
++    G_message("%s", _("Merging lines..."));
+     Vect_merge_lines(Out, GV_BOUNDARY, NULL, NULL);
+     /* Attach islands */
+-    G_message(_("Attaching islands..."));
++    G_message("%s", _("Attaching islands..."));
+     Vect_build_partial(Out, GV_BUILD_NONE);
+     Vect_build_partial(Out, GV_BUILD_ATTACH_ISLES);
+@@ -168,7 +168,7 @@
+           Vect_get_point_in_area(Out, area, &(Centr[area].x),
+                                  &(Centr[area].y));
+       if (ret < 0) {
+-          G_warning(_("Cannot calculate area centroid"));
++          G_warning("%s", _("Cannot calculate area centroid"));
+           Centr[area].valid = 0;
+       }
+       else {
+@@ -205,7 +205,7 @@
+                           /* Mark as used */
+                           at = find_attr(&(attr[input]), Cats->cat[i]);
+                           if (!at)
+-                              G_fatal_error(_("Attribute not found"));
++                              G_fatal_error("%s", _("Attribute not found"));
+                           at->used = 1;
+                       }
+@@ -215,7 +215,7 @@
+       }
+     }
+-    G_message(_("Writing centroids..."));
++    G_message("%s", _("Writing centroids..."));
+     db_init_string(&stmt);
+     out_cat = 1;
+@@ -287,7 +287,7 @@
+                               at = find_attr(&(attr[0]),
+                                              Centr[area].cat[0]->cat[i]);
+                               if (!at)
+-                                  G_fatal_error(_("Attribute not found"));
++                                  G_fatal_error("%s", _("Attribute not found"));
+                               if (at->values)
+                                   db_append_string(&stmt, at->values);
+@@ -315,7 +315,7 @@
+                               at = find_attr(&(attr[1]),
+                                              Centr[area].cat[1]->cat[j]);
+                               if (!at)
+-                                  G_fatal_error(_("Attribute not found"));
++                                  G_fatal_error("%s", _("Attribute not found"));
+                               if (at->values)
+                                   db_append_string(&stmt, at->values);
+@@ -339,7 +339,7 @@
+                       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'"),
+@@ -369,7 +369,7 @@
+     }
+     /* Build topology and remove boundaries with area without centroid on both sides */
+-    G_message(_("Attaching centroids..."));
++    G_message("%s", _("Attaching centroids..."));
+     Vect_build_partial(Out, GV_BUILD_ALL);
+     /* Create a list of lines to be deleted */
+--- grass-6.4.3/vector/v.patch/main.c.orig     2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/vector/v.patch/main.c  2014-05-28 20:50:59.945272640 +0200
+@@ -186,17 +186,17 @@
+               if (!table_in ||
+                   (table_out && !table_in) || (!table_out && table_in)) {
+-                  G_fatal_error(_("Missing table"));
++                  G_fatal_error("%s", _("Missing table"));
+               }
+               if (G_strcasecmp(fi_in->key, key) != 0) {
+-                  G_fatal_error(_("Key columns differ"));
++                  G_fatal_error("%s", _("Key columns differ"));
+               }
+               ncols = db_get_table_number_of_columns(table_out);
+               if (ncols != db_get_table_number_of_columns(table_in)) {
+-                  G_fatal_error(_("Number of columns differ"));
++                  G_fatal_error("%s", _("Number of columns differ"));
+               }
+               for (col = 0; col < ncols; col++) {
+@@ -208,7 +208,7 @@
+                   if (G_strcasecmp(db_get_column_name(column_in),
+                                    db_get_column_name(column_out)) != 0) {
+-                      G_fatal_error(_("Column names differ"));
++                      G_fatal_error("%s", _("Column names differ"));
+                   }
+                   ctype_in =
+                       db_sqltype_to_Ctype(db_get_column_sqltype(column_in));
+@@ -216,12 +216,12 @@
+                       db_sqltype_to_Ctype(db_get_column_sqltype
+                                           (column_out));
+                   if (ctype_in != ctype_out) {
+-                      G_fatal_error(_("Column types differ"));
++                      G_fatal_error("%s", _("Column types differ"));
+                   }
+                   if (ctype_in == DB_C_TYPE_STRING &&
+                       db_get_column_length(column_in) !=
+                       db_get_column_length(column_out)) {
+-                      G_fatal_error(_("Length of string columns differ"));
++                      G_fatal_error("%s", _("Length of string columns differ"));
+                   }
+                   if (G_strcasecmp(key,
+                                    db_get_column_name(column_out)) == 0) {
+@@ -235,14 +235,14 @@
+       }
+       if (keycol == -1) {
+-          G_fatal_error(_("Key column not found"));
++          G_fatal_error("%s", _("Key column not found"));
+       }
+     }
+     if (append->answer) {
+       Vect_open_update(&OutMap, out_name, G_mapset());
+       if (out_is_3d == WITH_Z && !Vect_is_3d(&OutMap)) {
+-          G_warning(_("The output map is not 3D"));
++          G_warning("%s", _("The output map is not 3D"));
+       }
+       maxcat = max_cat(&OutMap, 1);
+     }
+@@ -367,9 +367,9 @@
+       Vect_close(&BBoxMap);
+     }
+-    G_message(_("Intersections at borders will have to be snapped"));
+-    G_message(_("Lines common between files will have to be edited"));
+-    G_message(_("The header information also may have to be edited"));
++    G_message("%s", _("Intersections at borders will have to be snapped"));
++    G_message("%s", _("Lines common between files will have to be edited"));
++    G_message("%s", _("The header information also may have to be edited"));
+     G_done_msg(_("%d vector maps patched"), n_files);
+@@ -405,7 +405,7 @@
+       char buf[2000];
+       if (db_fetch(&cursor, DB_NEXT, &more) != DB_OK) {
+-          G_fatal_error(_("Cannot fetch row"));
++          G_fatal_error("%s", _("Cannot fetch row"));
+           db_close_cursor(&cursor);
+       }
+       if (!more)
+@@ -456,7 +456,7 @@
+               }
+               break;
+           default:
+-              G_fatal_error(_("Unknown column type"));
++              G_fatal_error("%s", _("Unknown column type"));
+           }
+       }
+       db_append_string(&sql, ")");
+--- grass-6.4.3/vector/v.perturb/main.c.orig   2011-08-20 11:52:10.000000000 +0200
++++ grass-6.4.3/vector/v.perturb/main.c        2014-05-28 20:52:19.761937643 +0200
+@@ -134,17 +134,17 @@
+     if (rng == zufall) {
+       i = sscanf(parm.pars->answer, "%lf", &p1);
+       if (i != 1) {
+-          G_fatal_error(_("Error scanning arguments"));
++          G_fatal_error("%s", _("Error scanning arguments"));
+       }
+       else if (p1 <= 0)
+-          G_fatal_error(_("Maximum of uniform distribution must be >= zero"));
++          G_fatal_error("%s", _("Maximum of uniform distribution must be >= zero"));
+     }
+     else {
+       if ((i = sscanf(parm.pars->answer, "%lf,%lf", &p1, &p2)) != 2) {
+-          G_fatal_error(_("Error scanning arguments"));
++          G_fatal_error("%s", _("Error scanning arguments"));
+       }
+       if (p2 <= 0)
+-          G_fatal_error(_("Standard deviation of normal distribution must be >= zero"));
++          G_fatal_error("%s", _("Standard deviation of normal distribution must be >= zero"));
+     }
+     G_get_window(&window);
+@@ -229,7 +229,7 @@
+     for (i = 0; i < n; i++) {
+       Fi = Vect_get_dblink(&In, i);
+       if (Fi == NULL) {
+-          G_fatal_error(_("Cannot get db link info"));
++          G_fatal_error("%s", _("Cannot get db link info"));
+       }
+       Fin = Vect_default_field_info(&Out, Fi->number, Fi->name, ttype);
+       Vect_map_add_dblink(&Out, Fi->number, Fi->name, Fin->table, Fi->key,
+--- grass-6.4.3/vector/v.perturb/normalrs.c.orig       2008-11-25 02:30:52.000000000 +0100
++++ grass-6.4.3/vector/v.perturb/normalrs.c    2014-06-04 20:18:11.109374422 +0200
+@@ -28,7 +28,7 @@
+     zufallrs(svbox);
+     klotz1_1.first = (int)svbox[608];
+     if (klotz1_1.first == 0)
+-      G_warning(_("normalsv: restoration of unitialized block"));
++      G_warning("%s", _("normalsv: restoration of unitialized block"));
+     klotz1_1.xptr = (int)svbox[609];
+     k = 609;
+     for (i = 0; i < 1024; ++i)
+--- grass-6.4.3/vector/v.perturb/normalsv.c.orig       2008-11-25 02:30:52.000000000 +0100
++++ grass-6.4.3/vector/v.perturb/normalsv.c    2014-06-07 16:06:36.500953167 +0200
+@@ -26,7 +26,7 @@
+     /* Parameter adjustments */
+     if (klotz1_1.first == 0)
+-      G_warning(_("normalsv: save of unitialized block"));
++      G_warning("%s", _("normalsv: save of unitialized block"));
+     /* save zufall block klotz0 */
+     zufallsv(svbox);
+--- grass-6.4.3/vector/v.qcount/main.c.orig    2011-08-20 11:52:10.000000000 +0200
++++ grass-6.4.3/vector/v.qcount/main.c 2014-05-28 20:52:38.715270581 +0200
+@@ -114,7 +114,7 @@
+     /* please, remove before GRASS 7 released */
+     if (flag.q->answer) {
+       G_set_verbose(G_verbose_min());
+-      G_warning(_("The '-q' flag is superseded and will be removed "
++      G_warning("%s", _("The '-q' flag is superseded and will be removed "
+                   "in future. Please use '--quiet' instead."));
+     }
+@@ -131,12 +131,12 @@
+     Vect_open_old(&Map, parm.input->answer, mapset);
+     /* Get the quadrats */
+-    G_message(_("Finding quadrats..."));
++    G_message("%s", _("Finding quadrats..."));
+     quads = find_quadrats(nquads, radius, window);
+     /* Get the counts per quadrat */
+-    G_message(_("Counting sites in quadrats..."));
++    G_message("%s", _("Counting sites in quadrats..."));
+     counts = (int *)G_malloc(nquads * (sizeof(int)));
+     count_sites(quads, nquads, counts, radius, &Map);
+--- grass-6.4.3/vector/v.random/main.c.orig    2010-04-24 11:53:10.000000000 +0200
++++ grass-6.4.3/vector/v.random/main.c 2014-05-28 20:53:12.791936537 +0200
+@@ -139,7 +139,7 @@
+       exit(EXIT_FAILURE);
+     if (flag.z->answer && parm.zcol->answer) {
+-      G_fatal_error(_("v.random can't create 3D vector and attribute table at same time"));
++      G_fatal_error("%s", _("v.random can't create 3D vector and attribute table at same time"));
+     }
+     output = parm.output->answer;
+@@ -185,7 +185,7 @@
+                           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) {
+           db_close_database(driver);
+           db_shutdown_driver(driver);
+@@ -218,7 +218,7 @@
+           db_close_database(driver);
+           db_shutdown_driver(driver);
+           Vect_delete(parm.output->answer);
+-          G_fatal_error(_("Table should contain only two columns"));
++          G_fatal_error("%s", _("Table should contain only two columns"));
+       }
+       type = db_get_column_sqltype(db_get_table_column(table, 1));
+@@ -231,7 +231,7 @@
+           db_close_database(driver);
+           db_shutdown_driver(driver);
+           Vect_delete(parm.output->answer);
+-          G_fatal_error(_("You have created unsupported column type. This module supports only INTEGER"
++          G_fatal_error("%s", _("You have created unsupported column type. This module supports only INTEGER"
+                          " and DOUBLE PRECISION column types."));
+       }
+       G_free_tokens(token);
+@@ -261,7 +261,7 @@
+     Points = Vect_new_line_struct();
+     Cats = Vect_new_cats_struct();
+-    G_message(_("Generating points..."));
++    G_message("%s", _("Generating points..."));
+     for (i = 0; i < n; ++i) {
+       double x, y, z;
+@@ -292,7 +292,7 @@
+               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) {
+               db_close_database(driver);
+               db_shutdown_driver(driver);
+--- grass-6.4.3/vector/v.reclass/main.c.orig   2012-10-27 11:52:08.000000000 +0200
++++ grass-6.4.3/vector/v.reclass/main.c        2014-05-28 20:53:49.595269104 +0200
+@@ -97,7 +97,7 @@
+     if ((!(rules_opt->answer) && !(col_opt->answer)) ||
+       (rules_opt->answer && col_opt->answer)) {
+-      G_fatal_error(_("Either 'rules' or 'col' must be specified"));
++      G_fatal_error("%s", _("Either 'rules' or 'col' must be specified"));
+     }
+     Vect_check_input_output_name(in_opt->answer, out_opt->answer,
+@@ -234,7 +234,7 @@
+           G_debug(3, "  key type = %d", type);
+           if (ctype != DB_C_TYPE_INT) {
+-              G_fatal_error(_("Key column type is not integer"));     /* shouldnot happen */
++              G_fatal_error("%s", _("Key column type is not integer"));       /* shouldnot happen */
+           }
+           cvarr.ctype = DB_C_TYPE_INT;
+@@ -307,7 +307,7 @@
+           qsort((void *)cvarr.value, nrows, sizeof(dbCatVal), cmpcat);
+       }
+       else {
+-          G_fatal_error(_("Column type must be integer or string"));
++          G_fatal_error("%s", _("Column type must be integer or string"));
+       }
+     }
+@@ -368,7 +368,7 @@
+               ncats =
+                   db_select_int(Driver, Fi->table, Fi->key, where, &cats);
+               if (ncats == -1)
+-                  G_fatal_error(_("Cannot select values from database"));
++                  G_fatal_error("%s", _("Cannot select values from database"));
+               G_debug(3, "  ncats = %d", ncats);
+@@ -410,7 +410,7 @@
+       }
+       if (cat > 0 || where)
+-          G_fatal_error(_("Incomplete rule"));
++          G_fatal_error("%s", _("Incomplete rule"));
+     }
+     db_close_database_shutdown_driver(Driver);
+--- grass-6.4.3/vector/v.sample/main.c.orig    2011-08-20 11:52:10.000000000 +0200
++++ grass-6.4.3/vector/v.sample/main.c 2014-05-28 20:56:43.185265485 +0200
+@@ -139,7 +139,7 @@
+       if (flag.B->answer)
+           method = BILINEAR;
+       if (flag.B->answer && flag.C->answer)
+-          G_fatal_error(_("Flags -b & -c are mutually exclusive. Choose only one."));
++          G_fatal_error("%s", _("Flags -b & -c are mutually exclusive. Choose only one."));
+     }
+     else {
+       method = NEAREST;
+@@ -182,7 +182,7 @@
+                     db_sqltype_name(ctype));
+     if (nrecords < 0)
+-      G_fatal_error(_("Unable to select data from table"));
++      G_fatal_error("%s", _("Unable to select data from table"));
+     G_message(_("%d records selected from table"), nrecords);
+@@ -216,7 +216,7 @@
+       G_fatal_error(_("Unable to create table <%s>"), db_get_string(&sql));
+     if (db_create_index2(Driver, Fi->table, Fi->key) != DB_OK)
+-      G_warning(_("Cannot create index"));
++      G_warning("%s", _("Cannot create index"));
+     if (db_grant_on_table
+       (Driver, Fi->table, DB_PRIV_SELECT, DB_GROUP | DB_PUBLIC) != DB_OK)
+@@ -224,7 +224,7 @@
+                     Fi->table);
+     if (flag.q->answer)
+-      G_message(_("Checking vector points..."));
++      G_message("%s", _("Checking vector points..."));
+     Points = Vect_new_line_struct();
+     Cats = Vect_new_cats_struct();
+@@ -263,7 +263,7 @@
+           actual = dval;
+       }
+       else {
+-          G_fatal_error(_("Column type not supported"));
++          G_fatal_error("%s", _("Column type not supported"));
+       }
+       G_debug(4, "actual = %e", actual);
+--- grass-6.4.3/vector/v.segment/main.c.orig   2008-11-25 02:30:54.000000000 +0100
++++ grass-6.4.3/vector/v.segment/main.c        2014-05-28 20:57:05.541931686 +0200
+@@ -191,7 +191,7 @@
+           len = Vect_line_length(LPoints);
+           if (offset2 > len) {
+-              G_warning(_("End of segment > line length -> cut"));
++              G_warning("%s", _("End of segment > line length -> cut"));
+               offset2 = len;
+           }
+--- grass-6.4.3/vector/v.select/main.c.orig    2010-11-13 11:52:06.000000000 +0100
++++ grass-6.4.3/vector/v.select/main.c 2014-05-28 20:57:57.628597267 +0200
+@@ -84,7 +84,7 @@
+     else if (parm.operator->answer[0] == 'r')
+       operator = OP_RELATE;
+     else
+-      G_fatal_error(_("Unknown operator"));
++      G_fatal_error("%s", _("Unknown operator"));
+     
+     if (operator == OP_RELATE && !parm.relate->answer) {
+       G_fatal_error(_("Required parameter <%s> not set"),
+@@ -140,13 +140,13 @@
+     /* Alloc space for input lines array */
+     ALines = (int *)G_calloc(nalines + 1, sizeof(int));
+-    G_message(_("Building spatial index..."));
++    G_message("%s", _("Building spatial index..."));
+     Vect_build_spatial_index(&In[0]);
+     Vect_build_spatial_index(&In[1]);
+     
+     /* Lines in A. Go through all lines and mark those that meets condition */
+     if (itype[0] & (GV_POINTS | GV_LINES)) {
+-      G_message(_("Processing features..."));
++      G_message("%s", _("Processing features..."));
+       
+       for (aline = 1; aline <= nalines; aline++) {
+           BOUND_BOX abox;
+@@ -275,7 +275,7 @@
+     if (itype[0] & GV_AREA) {
+       int aarea, naareas;
+-      G_message(_("Processing areas..."));
++      G_message("%s", _("Processing areas..."));
+       
+       naareas = Vect_get_num_areas(&(In[0]));
+@@ -443,7 +443,7 @@
+       fields[i] = Vect_cidx_get_field_number(&(In[0]), i);
+     }
+-    G_message(_("Writing selected features..."));
++    G_message("%s", _("Writing selected features..."));
+     for (aline = 1; aline <= nalines; aline++) {
+       int atype;
+@@ -477,7 +477,7 @@
+     if (!(flag.table->answer)) {
+       int ttype, ntabs = 0;
+-      G_message(_("Writing attributes..."));
++      G_message("%s", _("Writing attributes..."));
+       /* Number of output tabs */
+       for (i = 0; i < Vect_get_num_dblinks(&(In[0])); i++) {
+--- grass-6.4.3/vector/v.surf.idw/main.c.orig  2013-07-15 14:15:30.000000000 +0200
++++ grass-6.4.3/vector/v.surf.idw/main.c       2014-05-28 20:59:13.851929012 +0200
+@@ -144,7 +144,7 @@
+     sscanf(parm.dfield->answer, "%d", &field);
+     if (field > 0 && !parm.col->answer)
+-      G_fatal_error(_("No attribute column specified"));
++      G_fatal_error("%s", _("No attribute column specified"));
+     list =
+       (struct list_Point *)G_calloc((size_t) search_points,
+@@ -179,7 +179,7 @@
+     read_sites(parm.input->answer, field, parm.col->answer);
+     if (npoints == 0)
+-      G_fatal_error(_("No data points found"));
++      G_fatal_error("%s", _("No data points found"));
+     nsearch = npoints < search_points ? npoints : search_points;
+     if (!noindex->answer) {
+--- grass-6.4.3/vector/v.surf.idw/read_sites.c.orig    2008-11-25 02:30:55.000000000 +0100
++++ grass-6.4.3/vector/v.surf.idw/read_sites.c 2014-06-04 20:18:31.686040660 +0200
+@@ -46,10 +46,10 @@
+       ctype = cvarr.ctype;
+       if (ctype != DB_C_TYPE_INT && ctype != DB_C_TYPE_DOUBLE)
+-          G_fatal_error(_("Column type not supported"));
++          G_fatal_error("%s", _("Column type not supported"));
+       if (nrec < 0)
+-          G_fatal_error(_("Unable to select data from table"));
++          G_fatal_error("%s", _("Unable to select data from table"));
+       G_message(_("%d records selected from table"), nrec);
+--- grass-6.4.3/vector/v.surf.rst/main.c.orig  2011-08-20 11:52:10.000000000 +0200
++++ grass-6.4.3/vector/v.surf.rst/main.c       2014-05-28 21:09:40.875249275 +0200
+@@ -433,7 +433,7 @@
+       && (mcurv == NULL)
+       && (slope == NULL) && (aspect == NULL) && (devi == NULL)
+       && (cvdev == NULL))
+-      G_warning(_("You are not outputting any raster or vector maps"));
++      G_warning("%s", _("You are not outputting any raster or vector maps"));
+     deriv = flag.deriv->answer;
+     dtens = flag.cprght->answer;
+@@ -447,21 +447,21 @@
+     if (parm.wheresql->answer != NULL) {
+       if (field < 1)
+-          G_fatal_error(_("'layer' must be > 0 for 'where'."));
++          G_fatal_error("%s", _("'layer' must be > 0 for 'where'."));
+     }
+     cond2 = ((pcurv != NULL) || (tcurv != NULL) || (mcurv != NULL));
+     cond1 = ((slope != NULL) || (aspect != NULL) || cond2);
+     if ((cv && cvdev == NULL) || (!(cv) && cvdev != NULL))
+-      G_fatal_error(_("Both cross-validation options (-c flag and cvdev vector output) must be specified"));
++      G_fatal_error("%s", _("Both cross-validation options (-c flag and cvdev vector output) must be specified"));
+     if ((elev != NULL || cond1 || cond2 || devi != NULL) && cv)
+-      G_fatal_error(_("The cross-validation cannot be computed simultaneously with output raster or devi file"));
++      G_fatal_error("%s", _("The cross-validation cannot be computed simultaneously with output raster or devi file"));
+     if (field == 0 && zcol)
+-        G_fatal_error(_("Both z-coordinate and zcol attribute defined, only one is allowed"));
++        G_fatal_error("%s", _("Both z-coordinate and zcol attribute defined, only one is allowed"));
+     if (!zcoord && !zcol && scol)
+-        G_fatal_error(_("Only smoothing column defined, zcol or -z flag is missing")); 
++        G_fatal_error("%s", _("Only smoothing column defined, zcol or -z flag is missing")); 
+     if (!zcol && !zcoord && field > 0)
+         G_fatal_error("Value to be interpolated needs to be defined by zcol or -z flag");
+@@ -481,7 +481,7 @@
+     if (parm.scalex->answer) {
+       sscanf(parm.scalex->answer, "%lf", &scalex);
+       if (!parm.theta->answer)
+-          G_fatal_error(_("Using anisotropy - both theta and scalex have to be specified"));
++          G_fatal_error("%s", _("Using anisotropy - both theta and scalex have to be specified"));
+     }
+     if (parm.rsm->answer) {
+@@ -489,7 +489,7 @@
+       if (rsm < 0.0)
+           G_fatal_error("Smoothing must be a positive value");
+       if (scol != NULL)
+-          G_warning(_("Both smatt and smooth options specified - using constant"));
++          G_warning("%s", _("Both smatt and smooth options specified - using constant"));
+     }
+     else {
+       sscanf(SMOOTH, "%lf", &rsm);
+@@ -499,7 +499,7 @@
+     if (npmin > MAXPOINTS - 50) {
+-      G_warning(_("The computation will last too long - lower npmin is suggested"));
++      G_warning("%s", _("The computation will last too long - lower npmin is suggested"));
+       KMAX2 = 2 * npmin;      /* was: KMAX2 = npmin + 50; */
+     }
+     else
+@@ -517,49 +517,49 @@
+     az = G_alloc_vector(n_cols + 1);
+     if (!az) {
+-      G_fatal_error(_("Not enough memory for az"));
++      G_fatal_error("%s", _("Not enough memory for az"));
+     }
+     if (cond1) {
+       adx = G_alloc_vector(n_cols + 1);
+       if (!adx) {
+-          G_fatal_error(_("Not enough memory for adx"));
++          G_fatal_error("%s", _("Not enough memory for adx"));
+       }
+       ady = G_alloc_vector(n_cols + 1);
+       if (!ady) {
+-          G_fatal_error(_("Not enough memory for ady"));
++          G_fatal_error("%s", _("Not enough memory for ady"));
+       }
+       if (cond2) {
+           adxx = G_alloc_vector(n_cols + 1);
+           if (!adxx) {
+-              G_fatal_error(_("Not enough memory for adxx"));
++              G_fatal_error("%s", _("Not enough memory for adxx"));
+           }
+           adyy = G_alloc_vector(n_cols + 1);
+           if (!adyy) {
+-              G_fatal_error(_("Not enough memory for adyy"));
++              G_fatal_error("%s", _("Not enough memory for adyy"));
+           }
+           adxy = G_alloc_vector(n_cols + 1);
+           if (!adxy) {
+-              G_fatal_error(_("Not enough memory for adxy"));
++              G_fatal_error("%s", _("Not enough memory for adxy"));
+           }
+       }
+     }
+     if ((data =
+        quad_data_new(x_orig, y_orig, xm, ym, n_rows, n_cols, 0,
+                      KMAX)) == NULL)
+-      G_fatal_error(_("Cannot create quaddata"));
++      G_fatal_error("%s", _("Cannot create quaddata"));
+     if ((functions =
+        MT_functions_new(quad_compare, quad_divide_data, quad_add_data,
+                         quad_intersect, quad_division_check,
+                         quad_get_points)) == NULL)
+-      G_fatal_error(_("Cannot create quadfunc"));
++      G_fatal_error("%s", _("Cannot create quadfunc"));
+     if ((tree = MT_tree_new(data, NULL, NULL, 0)) == NULL)
+-      G_fatal_error(_("Cannot create tree"));
++      G_fatal_error("%s", _("Cannot create tree"));
+     root = tree;
+     if ((info = MT_tree_info_new(root, functions, dmin, KMAX)) == NULL)
+-      G_fatal_error(_("Cannot create tree info"));
++      G_fatal_error("%s", _("Cannot create tree info"));
+     if ((mapset = G_find_vector2(input, "")) == NULL)
+       G_fatal_error(_("Vector map <%s> not found"), input);
+@@ -601,7 +601,7 @@
+       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>"),
+@@ -619,7 +619,7 @@
+     ertot = 0.;
+     if (per)
+-      G_message(_("Percent complete: "));
++      G_message("%s", _("Percent complete: "));
+     if (elev != NULL)
+       Tmp_file_z = G_tempfile();
+     if (slope != NULL)
+@@ -635,7 +635,7 @@
+     zero_array_cell = (FCELL *) G_malloc(sizeof(FCELL) * n_cols);
+     if (!zero_array_cell)
+-      G_fatal_error(_("Not enough memory for zero_array_cell"));
++      G_fatal_error("%s", _("Not enough memory for zero_array_cell"));
+     for (i = 0; i < n_cols; i++) {
+       zero_array_cell[i] = (FCELL) 0;
+@@ -647,7 +647,7 @@
+                         Tmp_file_z);
+       for (i = 0; i < n_rows; i++) {
+           if (!(fwrite(zero_array_cell, sizeof(FCELL), n_cols, Tmp_fd_z)))
+-              G_fatal_error(_("Not enough disk space -- cannot write files"));
++              G_fatal_error("%s", _("Not enough disk space -- cannot write files"));
+       }
+     }
+     if (Tmp_file_dx != NULL) {
+@@ -656,7 +656,7 @@
+                         Tmp_file_dx);
+       for (i = 0; i < n_rows; i++) {
+           if (!(fwrite(zero_array_cell, sizeof(FCELL), n_cols, Tmp_fd_dx)))
+-              G_fatal_error(_("Not enough disk space -- cannot write files"));
++              G_fatal_error("%s", _("Not enough disk space -- cannot write files"));
+       }
+     }
+     if (Tmp_file_dy != NULL) {
+@@ -665,7 +665,7 @@
+                         Tmp_file_dy);
+       for (i = 0; i < n_rows; i++) {
+           if (!(fwrite(zero_array_cell, sizeof(FCELL), n_cols, Tmp_fd_dy)))
+-              G_fatal_error(_("Not enough disk space -- cannot write files"));
++              G_fatal_error("%s", _("Not enough disk space -- cannot write files"));
+       }
+     }
+@@ -675,7 +675,7 @@
+                         Tmp_file_xx);
+       for (i = 0; i < n_rows; i++) {
+           if (!(fwrite(zero_array_cell, sizeof(FCELL), n_cols, Tmp_fd_xx)))
+-              G_fatal_error(_("Not enough disk space -- cannot write files"));
++              G_fatal_error("%s", _("Not enough disk space -- cannot write files"));
+       }
+     }
+     if (Tmp_file_yy != NULL) {
+@@ -684,7 +684,7 @@
+                         Tmp_file_yy);
+       for (i = 0; i < n_rows; i++) {
+           if (!(fwrite(zero_array_cell, sizeof(FCELL), n_cols, Tmp_fd_yy)))
+-              G_fatal_error(_("Not enough disk space -- cannot write files"));
++              G_fatal_error("%s", _("Not enough disk space -- cannot write files"));
+       }
+     }
+     if (Tmp_file_xy != NULL) {
+@@ -693,7 +693,7 @@
+                         Tmp_file_xy);
+       for (i = 0; i < n_rows; i++) {
+           if (!(fwrite(zero_array_cell, sizeof(FCELL), n_cols, Tmp_fd_xy)))
+-              G_fatal_error(_("Not enough disk space -- cannot write files"));
++              G_fatal_error("%s", _("Not enough disk space -- cannot write files"));
+       }
+     }
+@@ -770,7 +770,7 @@
+     ertot = 0.;
+     if (per)
+-      G_message(_("Percent complete: "));
++      G_message("%s", _("Percent complete: "));
+     if (IL_interp_segments_2d(&params, info, info->root, bitmask,
+                             zmin, zmax, &zminac, &zmaxac, &gmin, &gmax,
+                             &c1min, &c1max, &c2min, &c2max, &ertot, totsegm,
+@@ -920,5 +920,5 @@
+       fclose(Tmp_fd_xy);
+       unlink(Tmp_file_xy);
+     }
+-    G_fatal_error(str);
++    G_fatal_error("%s", str);
+ }
+--- grass-6.4.3/vector/v.transform/trans_digit.c.orig  2012-10-27 11:52:09.000000000 +0200
++++ grass-6.4.3/vector/v.transform/trans_digit.c       2014-05-28 21:40:04.328544602 +0200
+@@ -125,7 +125,7 @@
+               }
+           }
+           else {
+-              G_warning(_("No category number defined. Using default transformation parameters."));
++              G_warning("%s", _("No category number defined. Using default transformation parameters."));
+               for (j = 0; j <= IDX_ZROT; j++) {
+                   trans_params[j] = trans_params_def[j];
+--- grass-6.4.3/vector/v.transform/ask_trans.c.orig    2008-11-25 02:30:55.000000000 +0100
++++ grass-6.4.3/vector/v.transform/ask_trans.c 2014-06-04 20:19:40.209372562 +0200
+@@ -85,7 +85,7 @@
+     /* add message before exit */
+     if (!V_call()) {
+       V_exit();
+-      G_message(_("ask_transform_coor():  Leaving session.. \n"));
++      G_message("%s", _("ask_transform_coor():  Leaving session.. \n"));
+       G_sleep(2);
+       return (-1);
+     }
+--- grass-6.4.3/vector/v.transform/get_coor.c.orig     2008-11-25 02:30:55.000000000 +0100
++++ grass-6.4.3/vector/v.transform/get_coor.c  2014-06-07 16:06:52.500952834 +0200
+@@ -33,7 +33,7 @@
+           4) {
+           /* comment or illegal line found */
+           if (!buff[0] == '#')
+-              G_fatal_error(_("Reading coordinates from file."));
++              G_fatal_error("%s", _("Reading coordinates from file."));
+           else
+               i--;            /* just comment found */
+       }
+--- grass-6.4.3/vector/v.transform/main.c.orig 2012-10-27 11:52:09.000000000 +0200
++++ grass-6.4.3/vector/v.transform/main.c      2014-06-07 22:37:31.313797629 +0200
+@@ -233,7 +233,7 @@
+     }
+     if (table->answer && strcmp(vnew->answer, table->answer) == 0) {
+-      G_fatal_error(_("Name of table and name for output vector map must be different. "
++      G_fatal_error("%s", _("Name of table and name for output vector map must be different. "
+                      "Otherwise the table is overwritten."));
+     }
+@@ -358,7 +358,7 @@
+                        table->answer, columns_name, ifield);
+     if (Vect_copy_tables(&Old, &New, 0))
+-        G_warning(_("Failed to copy attribute table to output map"));
++        G_warning("%s", _("Failed to copy attribute table to output map"));
+     Vect_close(&Old);
+     Vect_build(&New);
+--- grass-6.4.3/vector/v.transform/setup_trans.c.orig  2008-11-25 02:30:55.000000000 +0100
++++ grass-6.4.3/vector/v.transform/setup_trans.c       2014-06-08 09:30:00.316314975 +0200
+@@ -80,7 +80,7 @@
+ {
+     switch (stat) {
+     case POINTS_NOT_SPREAD:
+-      G_fatal_error(_("The points weren't spread out enough."));
++      G_fatal_error("%s", _("The points weren't spread out enough."));
+       break;
+     case NEED_MORE_POINTS:
+       G_fatal_error(_("You need to enter at least %d points."), MIN_COOR);
+--- grass-6.4.3/vector/v.transform/creat_trans.c.orig  2008-11-25 02:30:55.000000000 +0100
++++ grass-6.4.3/vector/v.transform/creat_trans.c       2014-06-08 10:16:36.389590031 +0200
+@@ -99,7 +99,7 @@
+       case 'n':
+           return (0);
+       default:
+-          G_message(_("Please answer yes or no"));
++          G_message("%s", _("Please answer yes or no"));
+       }
+     }
+ }
+@@ -115,7 +115,7 @@
+     n_points = 0;
+     /*  Get the coordinates from the file.  */
+     if ((n_points = get_coor_from_file(Coord->fp)) < 0)
+-      G_fatal_error(_("Error reading coordinates file"));
++      G_fatal_error("%s", _("Error reading coordinates file"));
+     status = setup_transform(n_points);
+@@ -123,7 +123,7 @@
+       G_message(_("Number of points that have been entered [%d]"),
+                 n_points);
+       print_transform_error(status);
+-      G_fatal_error(_("Error creating transformation"));
++      G_fatal_error("%s", _("Error creating transformation"));
+     }
+     if (!quiet)
+--- grass-6.4.3/vector/v.to.3d/trans2.c.orig   2009-07-11 11:52:35.000000000 +0200
++++ grass-6.4.3/vector/v.to.3d/trans2.c        2014-05-28 21:40:27.901877444 +0200
+@@ -62,7 +62,7 @@
+           return -1;
+       }
+       if (ctype != DB_C_TYPE_INT && ctype != DB_C_TYPE_DOUBLE) {
+-          G_warning(_("Column must be numeric"));
++          G_warning("%s", _("Column must be numeric"));
+           return -1;
+       }
+@@ -78,7 +78,7 @@
+     while (1) {
+       ltype = Vect_read_next_line(In, Points, Cats);
+       if (ltype == -1) {
+-          G_warning(_("Unable to read vector map"));
++          G_warning("%s", _("Unable to read vector map"));
+           return -1;
+       }
+       if (ltype == -2) {      /* EOF */
+@@ -95,7 +95,7 @@
+       if (column) {
+           Vect_cat_get(Cats, field, &cat);
+           if (cat < 0) {
+-              G_warning(_("Skipping feature without category"));
++              G_warning("%s", _("Skipping feature without category"));
+               continue;
+           }
+--- grass-6.4.3/vector/v.to.3d/main.c.orig     2009-07-11 11:52:35.000000000 +0200
++++ grass-6.4.3/vector/v.to.3d/main.c  2014-06-04 20:20:20.429371727 +0200
+@@ -60,7 +60,7 @@
+     }
+     if (opt.reverse->answer && opt.table->answer) {
+-      G_fatal_error(_("Attribute table required"));
++      G_fatal_error("%s", _("Attribute table required"));
+     }
+     Vect_check_input_output_name(opt.input->answer, opt.output->answer,
+@@ -94,13 +94,13 @@
+     Vect_copy_head_data(&In, &Out);
+     if (opt.reverse->answer && !opt.table->answer) {
+-      G_message(_("Copying attributes..."));
++      G_message("%s", _("Copying attributes..."));
+       if (Vect_copy_tables(&In, &Out, 0) == -1) {
+-          G_warning(_("Unable to copy attributes"));
++          G_warning("%s", _("Unable to copy attributes"));
+       }
+     }
+-    G_message(_("Transforming features..."));
++    G_message("%s", _("Transforming features..."));
+     ret = 0;
+     if (opt.reverse->answer) {
+       /* 3d -> 2d */
+@@ -124,9 +124,9 @@
+     }
+     if (!opt.reverse->answer && !opt.table->answer) {
+-      G_message(_("Copying attributes..."));
++      G_message("%s", _("Copying attributes..."));
+       if (Vect_copy_tables(&In, &Out, 0) == -1) {
+-          G_warning(_("Unable to copy attributes"));
++          G_warning("%s", _("Unable to copy attributes"));
+       }
+     }
+--- grass-6.4.3/vector/v.to.3d/trans3.c.orig   2012-10-27 11:52:08.000000000 +0200
++++ grass-6.4.3/vector/v.to.3d/trans3.c        2014-06-07 16:07:12.990952407 +0200
+@@ -64,7 +64,7 @@
+           return -1;
+       }
+       if (ctype != DB_C_TYPE_INT && ctype != DB_C_TYPE_DOUBLE) {
+-          G_warning(_("Column must be numeric"));
++          G_warning("%s", _("Column must be numeric"));
+           return -1;
+       }
+@@ -79,7 +79,7 @@
+     while (1) {
+       ltype = Vect_read_next_line(In, Points, Cats);
+       if (ltype == -1) {
+-          G_warning(_("Unable to read vector map"));
++          G_warning("%s", _("Unable to read vector map"));
+           return -1;
+       }
+       if (ltype == -2) {      /* EOF */
+--- grass-6.4.3/vector/v.to.db/query.c.orig    2008-12-13 11:45:17.000000000 +0100
++++ grass-6.4.3/vector/v.to.db/query.c 2014-05-28 21:40:50.788543633 +0200
+@@ -20,7 +20,7 @@
+     Points = Vect_new_line_struct();
+     Cats = Vect_new_cats_struct();
+-    G_message(_("Reading features..."));
++    G_message("%s", _("Reading features..."));
+     /* Cycle through all lines and make a list of categories of 'qfield' for each category given by 'field' */
+     nlines = Vect_get_num_lines(Map);
+@@ -90,7 +90,7 @@
+                     Fi->database, Fi->driver);
+     /* Query the database for each category */
+-    G_message(_("Querying database... "));
++    G_message("%s", _("Querying database... "));
+     for (i = 0; i < vstat.rcat; i++) {
+       int j, ctype, nrows, more;
+       char buf[2000];
+@@ -149,7 +149,7 @@
+           }
+           else {
+               if (db_fetch(&cursor, DB_NEXT, &more) != DB_OK)
+-                  G_fatal_error(_("Unable to fetch record"));
++                  G_fatal_error("%s", _("Unable to fetch record"));
+               db_convert_column_value_to_string(column, &stmt);
+               G_debug(4, "  value = %s", db_get_string(&stmt));
+--- grass-6.4.3/vector/v.to.db/areas.c.orig    2008-12-13 11:45:17.000000000 +0100
++++ grass-6.4.3/vector/v.to.db/areas.c 2014-06-04 20:20:45.936037859 +0200
+@@ -25,7 +25,7 @@
+     Cats = Vect_new_cats_struct();
+     nareas = Vect_get_num_areas(Map);
+-    G_message(_("Reading areas..."));
++    G_message("%s", _("Reading areas..."));
+     /* Cycle through all areas */
+     for (area_num = 1; area_num <= nareas; area_num++) {
+--- grass-6.4.3/vector/v.to.db/lines.c.orig    2013-04-20 11:52:15.000000000 +0200
++++ grass-6.4.3/vector/v.to.db/lines.c 2014-06-07 16:07:26.940952116 +0200
+@@ -72,7 +72,7 @@
+     LCats = Vect_new_cats_struct();
+     RCats = Vect_new_cats_struct();
+-    G_message(_("Reading features..."));
++    G_message("%s", _("Reading features..."));
+     
+     /* Cycle through all lines */
+     nlines = Vect_get_num_lines(Map);
+--- grass-6.4.3/vector/v.to.db/parse.c.orig    2010-11-13 11:52:06.000000000 +0100
++++ grass-6.4.3/vector/v.to.db/parse.c 2014-06-07 22:38:04.773796932 +0200
+@@ -150,34 +150,34 @@
+           options.option == O_PERIMETER || options.option == O_SLOPE || options.option == O_SINUOUS ||
+           options.option == O_AZIMUTH) {      /* one column required */
+           if (ncols != 1) {
+-              G_fatal_error(_("This option requires one column"));
++              G_fatal_error("%s", _("This option requires one column"));
+           }
+       }
+       else if (options.option == O_SIDES) {
+           if (ncols != 2) {
+-              G_fatal_error(_("This option requires two columns"));
++              G_fatal_error("%s", _("This option requires two columns"));
+           }
+       }
+       else if (options.option == O_COOR || options.option == O_START || options.option == O_END) {
+           if (ncols < 2) {
+-              G_fatal_error(_("This option requires at least two columns"));
++              G_fatal_error("%s", _("This option requires at least two columns"));
+           }
+       }
+     }
+     if (options.option == O_QUERY && !parms.qcol->answers)
+-      G_fatal_error(_("Parameter 'qcolumn' must be specified for 'option=query'"));
++      G_fatal_error("%s", _("Parameter 'qcolumn' must be specified for 'option=query'"));
+     options.qcol = parms.qcol->answer;
+     if (options.option == O_SIDES && !(options.type | GV_BOUNDARY))
+-      G_fatal_error(_("The 'sides' option makes sense only for boundaries"));
++      G_fatal_error("%s", _("The 'sides' option makes sense only for boundaries"));
+     if (options.option == O_SINUOUS && !(options.type | GV_LINES))
+-      G_fatal_error(_("The 'sinuous' option makes sense only for lines"));
++      G_fatal_error("%s", _("The 'sinuous' option makes sense only for lines"));
+     
+     if (options.option == O_AZIMUTH && !(options.type | GV_LINES))
+-      G_fatal_error(_("The 'azimuth' option makes sense only for lines"));
++      G_fatal_error("%s", _("The 'azimuth' option makes sense only for lines"));
+     return 0;
+--- grass-6.4.3/vector/v.to.db/update.c.orig   2010-09-25 11:52:07.000000000 +0200
++++ grass-6.4.3/vector/v.to.db/update.c        2014-06-08 09:30:13.332981369 +0200
+@@ -79,7 +79,7 @@
+     }
+     /* update */
+-    G_message(_("Updating database..."));
++    G_message("%s", _("Updating database..."));
+     for (i = 0; i < vstat.rcat; i++) {
+       G_percent(i, vstat.rcat, 2);
+--- grass-6.4.3/vector/v.to.points/main.c.orig 2008-12-06 11:45:17.000000000 +0100
++++ grass-6.4.3/vector/v.to.points/main.c      2014-05-28 21:41:07.228543291 +0200
+@@ -226,7 +226,7 @@
+     dmax = atof(dmax_opt->answer);
+     if (node_flag->answer && vertex_flag->answer)
+-      G_fatal_error(_("Use either -n or -v flag, not both"));
++      G_fatal_error("%s", _("Use either -n or -v flag, not both"));
+     if (node_flag->answer)
+       vertex_type = GV_NODE;
+--- grass-6.4.3/vector/v.to.rast/support.c.orig        2013-07-09 21:05:43.000000000 +0200
++++ grass-6.4.3/vector/v.to.rast/support.c     2014-05-28 21:41:38.611875970 +0200
+@@ -157,7 +157,7 @@
+       cat = cvarr.value[i].cat;
+       if (db_select_value
+           (Driver, Fi->table, Fi->key, cat, rgb_column, &value) < 0) {
+-          G_warning(_("No records selected"));
++          G_warning("%s", _("No records selected"));
+           continue;
+       }
+       sprintf(colorstring, "%s", value.s.string);
+@@ -173,7 +173,7 @@
+               G_warning(_("Error in color definition column (%s) "
+                           "with cat %d: colorstring [%s]"), rgb_column, cat,
+                         colorstring);
+-              G_warning(_("Color set to [200:200:200]"));
++              G_warning("%s", _("Color set to [200:200:200]"));
+               red = grn = blu = 200;
+           }
+       }
+@@ -270,7 +270,7 @@
+           int is_fp = G_raster_map_is_fp(rast_name, G_mapset());
+           if (!label_column) {
+-              G_verbose_message(_("Label column was not specified, no labels will be written"));
++              G_verbose_message("%s", _("Label column was not specified, no labels will be written"));
+               break;
+           }
+@@ -323,7 +323,7 @@
+               if (db_select_value
+                   (Driver, Fi->table, Fi->key, cat, label_column,
+                    &value) < 0) {
+-                  G_warning(_("No records selected"));
++                  G_warning("%s", _("No records selected"));
+                   continue;
+               }
+@@ -511,7 +511,7 @@
+                   G_fatal_error(_("Unable to open raster map <%s>"), rast_name);
+               if (!(rowbuf = G_allocate_raster_buf(map_type)))
+-                  G_fatal_error(_("Cannot allocate memory for row buffer"));
++                  G_fatal_error("%s", _("Cannot allocate memory for row buffer"));
+               G_init_cell_stats(&stats);
+               G_set_raster_cats_title("Rasterized vector map from categories", &rast_cats);
+--- grass-6.4.3/vector/v.to.rast/do_lines.c.orig       2010-03-20 11:53:18.000000000 +0100
++++ grass-6.4.3/vector/v.to.rast/do_lines.c    2014-06-04 20:21:48.572703221 +0200
+@@ -32,7 +32,7 @@
+     count = 0;
+     *count_all = 0;
+-    G_message(_("Reading features..."));
++    G_message("%s", _("Reading features..."));
+     for (index = 1; index <= nlines; index++) {
+       G_percent(index, nlines, 2);
+       type = Vect_read_line(Map, Points, Cats, index);
+@@ -62,7 +62,7 @@
+               set_dcat(dval);
+           }
+           else {
+-              G_fatal_error(_("Unable to use column specified"));
++              G_fatal_error("%s", _("Unable to use column specified"));
+           }
+       }
+       else if (use == USE_CAT) {
+--- grass-6.4.3/vector/v.to.rast/main.c.orig   2012-10-27 11:52:09.000000000 +0200
++++ grass-6.4.3/vector/v.to.rast/main.c        2014-06-07 16:08:03.887618013 +0200
+@@ -110,22 +110,22 @@
+     case 'a':
+       use = USE_ATTR;
+       if (!col->answer)
+-          G_fatal_error(_("Column parameter missing (or use value parameter)"));
++          G_fatal_error("%s", _("Column parameter missing (or use value parameter)"));
+       break;
+     case 'c':
+       use = USE_CAT;
+       if (col->answer)
+-          G_fatal_error(_("Column parameter cannot be combined with use of category values option"));
++          G_fatal_error("%s", _("Column parameter cannot be combined with use of category values option"));
+       break;
+     case 'v':
+       use = USE_VAL;
+       if (col->answer || label_opt->answer || rgbcol_opt->answer)
+-          G_fatal_error(_("Column parameter cannot be combined with use of value option"));
++          G_fatal_error("%s", _("Column parameter cannot be combined with use of value option"));
+       break;
+     case 'z':
+       use = USE_Z;
+       if (col->answer || label_opt->answer || rgbcol_opt->answer)
+-          G_fatal_error(_("Column parameter cannot be combined with use of z coordinate"));
++          G_fatal_error("%s", _("Column parameter cannot be combined with use of z coordinate"));
+       break;
+     case 'd':
+       use = USE_D;
+--- grass-6.4.3/vector/v.to.rast/do_areas.c.orig       2012-08-18 11:52:05.000000000 +0200
++++ grass-6.4.3/vector/v.to.rast/do_areas.c    2014-06-07 22:38:38.907129553 +0200
+@@ -30,7 +30,7 @@
+     if (nareas <= 0)
+       return 0;
+-    G_message(_("Reading areas..."));
++    G_message("%s", _("Reading areas..."));
+     for (i = 0; i < nareas; i++) {
+       /* Note: in old version (grass5.0) there was a check here if the current area 
+        *        is identical to previous one. I don't see any reason for this in topological vectors */
+@@ -60,7 +60,7 @@
+                   set_dcat(dval);
+               }
+               else {
+-                  G_fatal_error(_("Unable to use column specified"));
++                  G_fatal_error("%s", _("Unable to use column specified"));
+               }
+           }
+           else if (use == USE_CAT) {
+@@ -115,14 +115,14 @@
+       centroid = Vect_get_area_centroid(Map, i + 1);
+       if (centroid <= 0) {
+           SETNULL(&cat);
+-          G_debug(2,_("Area without centroid (OK for island)"));
++          G_debug(2, "%s", _("Area without centroid (OK for island)"));
+       }
+       else {
+           Vect_read_line(Map, NULL, Cats, centroid);
+           Vect_cat_get(Cats, field, &cat);
+           if (cat < 0) {
+               SETNULL(&cat);
+-              G_warning(_("Area centroid without category"));
++              G_warning("%s", _("Area centroid without category"));
+           }
+       }
+--- grass-6.4.3/vector/v.to.rast/vect2rast.c.orig      2012-08-18 11:52:05.000000000 +0200
++++ grass-6.4.3/vector/v.to.rast/vect2rast.c   2014-06-08 09:30:39.829647485 +0200
+@@ -36,7 +36,7 @@
+     if ((vector_mapset = G_find_vector2(vector_map, "")) == NULL)
+       G_fatal_error(_("Vector map <%s> not found"), vector_map);
+-    G_message(_("Loading data..."));
++    G_message("%s", _("Loading data..."));
+     Vect_set_open_level(2);
+     Vect_open_old(&Map, vector_map, vector_mapset);
+@@ -129,7 +129,7 @@
+           G_fatal_error(_("Unable to create raster map <%s>"), raster_map);
+       break;
+     default:
+-      G_fatal_error(_("Unknown raster map type"));
++      G_fatal_error("%s", _("Unknown raster map type"));
+       break;
+     }
+@@ -179,7 +179,7 @@
+           }
+       }
+-      G_message(_("Writing raster map..."));
++      G_message("%s", _("Writing raster map..."));
+       stat = output_raster(fd);
+     } while (stat == 0);
+@@ -197,14 +197,14 @@
+     Vect_close(&Map);
+-    G_verbose_message(_("Creating support files for raster map..."));
++    G_verbose_message("%s", _("Creating support files for raster map..."));
+     G_close_cell(fd);
+     update_hist(raster_map, vector_map, vector_mapset, Map.head.orig_scale);
+     /* colors */
+     if (rgbcolumn) {
+       if (use != USE_ATTR && use != USE_CAT) {
+-          G_warning(_("Color can be updated from database only if use=attr"));
++          G_warning("%s", _("Color can be updated from database only if use=attr"));
+           update_colors(raster_map);
+       }
+       else {
+--- grass-6.4.3/vector/v.to.rast3/main.c.orig  2013-07-15 14:15:30.000000000 +0200
++++ grass-6.4.3/vector/v.to.rast3/main.c       2014-05-28 21:42:04.091875439 +0200
+@@ -79,7 +79,7 @@
+     db_CatValArray_init(&cvarr);
+     Fi = Vect_get_field(&Map, field);
+     if (Fi == NULL)
+-      G_fatal_error(_("Unable to get layer info for vector map"));
++      G_fatal_error("%s", _("Unable to get layer info for vector map"));
+     Driver = db_start_driver_open_database(Fi->driver, Fi->database);
+     if (Driver == NULL)
+@@ -93,11 +93,11 @@
+     G_debug(2, "nrec = %d", nrec);
+     if (nrec < 0)
+-      G_fatal_error(_("Unable to select data from table"));
++      G_fatal_error("%s", _("Unable to select data from table"));
+     ctype = cvarr.ctype;
+     if (ctype != DB_C_TYPE_INT && ctype != DB_C_TYPE_DOUBLE)
+-      G_fatal_error(_("Column type not supported"));
++      G_fatal_error("%s", _("Column type not supported"));
+     db_close_database_shutdown_driver(Driver);
+@@ -105,7 +105,7 @@
+                         G3D_USE_CACHE_DEFAULT, &region);
+     if (map == NULL)
+-      G_fatal_error(_("Unable to create output map"));
++      G_fatal_error("%s", _("Unable to create output map"));
+     Points = Vect_new_line_struct();
+     Cats = Vect_new_cats_struct();
+@@ -159,7 +159,7 @@
+     Vect_close(&Map);
+     if (!G3d_closeCell(map))
+-      G_fatal_error(_("Unable to close new 3d raster map"));
++      G_fatal_error("%s", _("Unable to close new 3d raster map"));
+     exit(EXIT_SUCCESS);
+--- grass-6.4.3/vector/v.type/main.c.orig      2008-11-29 11:45:17.000000000 +0100
++++ grass-6.4.3/vector/v.type/main.c   2014-06-01 08:00:39.979032623 +0200
+@@ -171,7 +171,7 @@
+                     (types[i] & (GV_POINT | GV_CENTROID | GV_KERNEL))
+               )
+               ) {
+-              G_fatal_error(_("Incompatible types"));
++              G_fatal_error("%s", _("Incompatible types"));
+           }
+           j = 0;
+       }
+@@ -183,10 +183,10 @@
+     }
+     if (i < 2)
+-      G_fatal_error(_("Not enough types"));
++      G_fatal_error("%s", _("Not enough types"));
+     if (j == 1)
+-      G_fatal_error(_("Odd number of types"));
++      G_fatal_error("%s", _("Odd number of types"));
+     ntypes = i;
+ #endif
+@@ -231,7 +231,7 @@
+     }
+     if (Vect_copy_tables(&In, &Out, 0))
+-        G_warning(_("Failed to copy attribute table to output map"));
++        G_warning("%s", _("Failed to copy attribute table to output map"));
+     Vect_build(&Out);
+     Vect_close(&Out);
+     Vect_close(&In);
+--- grass-6.4.3/vector/v.univar/main.c.orig    2012-10-27 11:52:08.000000000 +0200
++++ grass-6.4.3/vector/v.univar/main.c 2014-06-01 08:03:10.915696144 +0200
+@@ -172,12 +172,12 @@
+       compatible = 1; /* distances is compatible with all kinds of geometries */
+     if (!compatible) {
+-      G_warning(_("Incompatible vector type(s) specified, only number of features, minimum, maximum and range "
++      G_warning("%s", _("Incompatible vector type(s) specified, only number of features, minimum, maximum and range "
+                  "can be calculated"));
+     }
+     if (extended->answer && (!(otype & GV_POINTS) || geometry->answer)) {
+-      G_warning(_("Extended statistics is currently supported only for points/centroids"));
++      G_warning("%s", _("Extended statistics is currently supported only for points/centroids"));
+     }
+     if (geometry->answer)
+@@ -202,7 +202,7 @@
+     if (where_opt->answer != NULL) {
+       if (ofield < 1) {
+-          G_fatal_error(_("'layer' must be > 0 for 'where'."));
++          G_fatal_error("%s", _("'layer' must be > 0 for 'where'."));
+       }
+       Fi = Vect_get_field(&Map, ofield);
+       if (!Fi) {
+@@ -325,10 +325,10 @@
+     ctype = Cvarr.ctype;
+     if (ctype != DB_C_TYPE_INT && ctype != DB_C_TYPE_DOUBLE)
+-      G_fatal_error(_("Column type not supported"));
++      G_fatal_error("%s", _("Column type not supported"));
+     if (nrec < 0)
+-      G_fatal_error(_("Unable to select data from table"));
++      G_fatal_error("%s", _("Unable to select data from table"));
+     db_close_database_shutdown_driver(Driver);
+@@ -602,7 +602,7 @@
+       qpos_perc = (int)(count * perc / 100. - 0.5);
+       if (db_CatValArray_sort_by_value(&Cvarr) != DB_OK)
+-          G_fatal_error(_("Cannot sort the key/value array"));
++          G_fatal_error("%s", _("Cannot sort the key/value array"));
+       if (Cvarr.ctype == DB_C_TYPE_INT) {
+           quartile_25 = (Cvarr.value[qpos_25]).val.i;
+--- grass-6.4.3/vector/v.vect.stats/main.c.orig        2013-01-05 11:52:05.000000000 +0100
++++ grass-6.4.3/vector/v.vect.stats/main.c     2014-06-01 08:04:10.839028228 +0200
+@@ -309,7 +309,7 @@
+                         AFi->database, AFi->driver);
+       if (!count_column_opt->answer)
+-          G_fatal_error(_("ccolumn is required to upload point counts"));
++          G_fatal_error("%s", _("ccolumn is required to upload point counts"));
+       /* check if count column exists */
+       G_debug(1, "check if count column exists");
+@@ -318,7 +318,7 @@
+           /* check count column type */
+           if (db_column_Ctype(Adriver, AFi->table, count_column_opt->answer)
+               != DB_C_TYPE_INT)
+-              G_fatal_error(_("ccolumn must be of type integer"));
++              G_fatal_error("%s", _("ccolumn must be of type integer"));
+           db_free_column(column);
+           column = NULL;
+@@ -337,7 +337,7 @@
+       if (method_opt->answer) {
+           if (!stats_column_opt->answer)
+-              G_fatal_error(_("scolumn is required to upload point stats"));
++              G_fatal_error("%s", _("scolumn is required to upload point stats"));
+           /* check if stats column exists */
+           G_debug(1, "check if stats column exists");
+@@ -348,7 +348,7 @@
+               if (db_column_Ctype
+                   (Adriver, AFi->table,
+                    stats_column_opt->answer) != DB_C_TYPE_DOUBLE)
+-                  G_fatal_error(_("scolumn must be of type double"));
++                  G_fatal_error("%s", _("scolumn must be of type double"));
+               db_free_column(column);
+               column = NULL;
+@@ -372,7 +372,7 @@
+     Pdriver = NULL;
+     if (method_opt->answer) {
+-      G_verbose_message(_("collecting attributes from points vector..."));
++      G_verbose_message("%s", _("collecting attributes from points vector..."));
+       PFi = Vect_get_field(&PIn, point_field);
+       if (PFi == NULL)
+@@ -404,7 +404,7 @@
+       else if (ctype == DB_C_TYPE_DOUBLE)
+           half = 0;
+       else
+-          G_fatal_error(_("column for points vector must be numeric"));
++          G_fatal_error("%s", _("column for points vector must be numeric"));
+       db_CatValArray_init(&cvarr);
+       nrec = db_select_CatValArray(Pdriver, PFi->table, PFi->key,
+@@ -478,10 +478,10 @@
+       (struct pvalcat *)G_calloc(npvalcatsalloc, sizeof(struct pvalcat));
+     /* remove for GRASS 7 */
+-    G_verbose_message(_("creating spatial index"));
++    G_verbose_message("%s", _("creating spatial index"));
+     Vect_build_spatial_index(&PIn);
+-    G_message(_("Selecting points for each area..."));
++    G_message("%s", _("Selecting points for each area..."));
+     count = 0;
+     for (area = 1; area <= nareas; area++) {
+       dbCatVal *catval;
+--- grass-6.4.3/vector/v.voronoi/vo_main.c.orig        2011-10-01 11:52:04.000000000 +0200
++++ grass-6.4.3/vector/v.voronoi/vo_main.c     2014-06-01 08:05:01.622360503 +0200
+@@ -176,7 +176,7 @@
+     freeinit(&sfl, sizeof(struct Site));
+-    G_message(_("Reading sites..."));
++    G_message("%s", _("Reading sites..."));
+     readsites();
+     siteidx = 0;
+@@ -186,7 +186,7 @@
+     plot = 0;
+     debug = 0;
+-    G_message(_("Voronoi triangulation..."));
++    G_message("%s", _("Voronoi triangulation..."));
+     voronoi(triangulate, nextone);
+     /* Close free ends by current region */
+@@ -268,7 +268,7 @@
+     nlines = Vect_get_num_lines(&In);
+-    G_message(_("Writing sites to output..."));
++    G_message("%s", _("Writing sites to output..."));
+     for (line = 1; line <= nlines; line++) {
+@@ -341,7 +341,7 @@
+           /* Make a list of categories */
+           IFi = Vect_get_field(&In, fields[i]);
+           if (!IFi) {         /* no table */
+-              G_message(_("No table"));
++              G_message("%s", _("No table"));
+               continue;
+           }
+@@ -356,7 +356,7 @@
+                                     ncats[i]);
+           if (ret == DB_FAILED) {
+-              G_warning(_("Cannot copy table"));
++              G_warning("%s", _("Cannot copy table"));
+           }
+           else {
+               Vect_map_add_dblink(&Out, OFi->number, OFi->name, OFi->table,
+@@ -412,7 +412,7 @@
+     if (err_nocentr || err_centr_dupl || err_centr_out) {
+       int nmod;
+-      G_important_message(_("Output needs topological cleaning"));
++      G_important_message("%s", _("Output needs topological cleaning"));
+       Vect_snap_lines(&Out, GV_BOUNDARY, 1e-7, NULL);
+       do {
+           Vect_break_lines(&Out, GV_BOUNDARY, NULL);
+@@ -444,7 +444,7 @@
+     }
+     /* cleaning part 3: remove remaining incorrect boundaries */
+     if (err_boundaries) {
+-      G_important_message(_("Removing incorrect boundaries from output"));
++      G_important_message("%s", _("Removing incorrect boundaries from output"));
+       nlines = Vect_get_num_lines(&Out);
+       for (line = 1; line <= nlines; line++) {
+--- grass-6.4.3/vector/v.what/what.c.orig      2012-09-01 11:52:27.000000000 +0200
++++ grass-6.4.3/vector/v.what/what.c   2014-06-01 08:05:51.562359462 +0200
+@@ -109,9 +109,9 @@
+       if (line + area == 0) {
+           if (line + area > 0 || G_verbose() >= G_verbose_std()) {
+-              fprintf(stdout, _("Nothing Found.\n"));
++              fputs(_("Nothing Found.\n"), stdout);
+               if (notty)
+-                  fprintf(stderr, _("Nothing Found.\n"));
++                  fputs(_("Nothing Found.\n"), stdout);
+           }
+           nlines++;
+           continue;
+@@ -285,7 +285,7 @@
+                   fprintf(stdout, "Type=Area\n");
+               }
+               else {
+-                  fprintf(stdout, _("Type: Area\n"));
++                  fputs(_("Type: Area\n"), stdout);
+               }
+           }
+--- grass-6.4.3/vector/v.what/main.c.orig      2010-09-25 11:52:07.000000000 +0200
++++ grass-6.4.3/vector/v.what/main.c   2014-06-04 20:22:12.552702720 +0200
+@@ -159,7 +159,7 @@
+               G_fatal_error(_("You must build topology on vector map <%s>"),
+                             vect[i]);
+-          G_verbose_message(_("Building spatial index..."));
++          G_verbose_message("%s", _("Building spatial index..."));
+           Vect_build_spatial_index(&Map[i]);
+       }
+     }
+--- grass-6.4.3/vector/v.what.rast/main.c.orig 2012-08-25 11:52:04.000000000 +0200
++++ grass-6.4.3/vector/v.what.rast/main.c      2014-06-01 08:06:46.339024987 +0200
+@@ -160,13 +160,13 @@
+       G_fatal_error(_("Column <%s> not found"), col_opt->answer);
+     if (col_type != DB_C_TYPE_INT && col_type != DB_C_TYPE_DOUBLE)
+-      G_fatal_error(_("Column type not supported"));
++      G_fatal_error("%s", _("Column type not supported"));
+     if (out_type == CELL_TYPE && col_type == DB_C_TYPE_DOUBLE)
+-      G_warning(_("Raster type is integer and column type is float"));
++      G_warning("%s", _("Raster type is integer and column type is float"));
+     if (out_type != CELL_TYPE && col_type == DB_C_TYPE_INT)
+-      G_warning(_("Raster type is float and column type is integer, some data lost!!"));
++      G_warning("%s", _("Raster type is float and column type is integer, some data lost!!"));
+     /* Read vector points to cache */
+     Cache_size = Vect_get_num_primitives(&Map, GV_POINT);
+@@ -351,7 +351,7 @@
+           sprintf(buf, " AND %s", where_opt->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) {
+--- grass-6.4.3/vector/v.vol.rst/user1.c.orig  2010-09-25 11:52:07.000000000 +0200
++++ grass-6.4.3/vector/v.vol.rst/user1.c       2014-06-01 08:07:17.339024341 +0200
+@@ -90,7 +90,7 @@
+       db_CatValArray_init(&sarray);
+     Fi = Vect_get_field(In, 1);
+     if (Fi == NULL)
+-      G_fatal_error(_("Unable to get layer info for vector map"));
++      G_fatal_error("%s", _("Unable to get layer info for vector map"));
+     Driver = db_start_driver_open_database(Fi->driver, Fi->database);
+     if (Driver == NULL)
+@@ -104,7 +104,7 @@
+     G_debug(3, "nrec = %d", nrec);
+     if (ctype != DB_C_TYPE_INT && ctype != DB_C_TYPE_DOUBLE)
+-      G_fatal_error(_("Column type of wcolumn is not supported (must be integer or double)"));
++      G_fatal_error("%s", _("Column type of wcolumn is not supported (must be integer or double)"));
+     if (nrec < 0)
+       G_fatal_error("Unable to select data from table");
+@@ -123,7 +123,7 @@
+           G_fatal_error
+               ("Column type of smooth column (datetime) is not supported");
+       if (sctype != DB_C_TYPE_INT && sctype != DB_C_TYPE_DOUBLE)
+-          G_fatal_error(_("Column type of smooth column is not supported (must be integer or double)"));
++          G_fatal_error("%s", _("Column type of smooth column is not supported (must be integer or double)"));
+     }
+     Points = Vect_new_line_struct();
+--- grass-6.4.3/vector/v.vol.rst/main.c.orig   2012-01-14 11:52:10.000000000 +0100
++++ grass-6.4.3/vector/v.vol.rst/main.c        2014-06-04 20:24:16.932700130 +0200
+@@ -464,15 +464,15 @@
+     sscanf(parm.zmult->answer, "%lf", &zmult);
+     if (rsm < 0.0)
+-      G_fatal_error(_("Smoothing must be a positive value"));
++      G_fatal_error("%s", _("Smoothing must be a positive value"));
+     if (parm.scol->answer)
+       rsm = -1;               /* used in InterpLib to indicate variable smoothing */
+     if (cv != (cvdev != NULL))
+-      G_fatal_error(_("Both crossvalidation options (-c, cvdev) must be specified"));
++      G_fatal_error("%s", _("Both crossvalidation options (-c, cvdev) must be specified"));
+     if (cv && devi != NULL)
+-      G_fatal_error(_("Both crossvalidation and deviations file specified"));
++      G_fatal_error("%s", _("Both crossvalidation and deviations file specified"));
+     if (cellinp == NULL && outz == NULL && cellout == NULL && gradient == NULL
+       && aspect1 == NULL && aspect2 == NULL && ncurv == NULL &&
+       gcurv == NULL && mcurv == NULL) {
+@@ -554,7 +554,7 @@
+     Vect_open_old(&In, input, "");
+     if (!Vect_is_3d(&In))
+-      G_warning(_("Vector is not 3D"));
++      G_warning("%s", _("Vector is not 3D"));
+     ii = INPUT(&In, parm.colnum->answer, parm.scol->answer,
+              parm.wheresql->answer);
+@@ -584,7 +584,7 @@
+       db_append_string(&sql, "cat 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>"),
+--- grass-6.4.3/vector/v.vol.rst/vector.c.orig 2008-11-25 02:30:55.000000000 +0100
++++ grass-6.4.3/vector/v.vol.rst/vector.c      2014-06-07 16:08:31.407617439 +0200
+@@ -72,7 +72,7 @@
+     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);
+--- grass-6.4.3/vector/v.vol.rst/user4.c.orig  2009-02-28 11:45:19.000000000 +0100
++++ grass-6.4.3/vector/v.vol.rst/user4.c       2014-06-07 22:39:04.837129013 +0200
+@@ -74,7 +74,7 @@
+       fclose(Tmp_fd_xy);
+       unlink(Tmp_file_xy);
+     }
+-    G_fatal_error(str);
++    G_fatal_error("%s", str);
+ }
+--- grass-6.4.3/vector/lidar/lidarlib/TcholBand.c.orig 2012-09-15 11:52:06.000000000 +0200
++++ grass-6.4.3/vector/lidar/lidarlib/TcholBand.c      2014-06-01 08:49:27.588971602 +0200
+@@ -25,7 +25,7 @@
+               somma -= T[i - k][k] * T[i - k][j + k];
+           if (j == 0) {
+               if (somma <= 0.0)
+-                  G_fatal_error(_("Decomposition failed"));
++                  G_fatal_error("%s", _("Decomposition failed"));
+               T[i][0] = sqrt(somma);
+           }
+           else
+--- grass-6.4.3/vector/lidar/v.surf.bspline/main.c.orig        2012-09-15 11:52:06.000000000 +0200
++++ grass-6.4.3/vector/lidar/v.surf.bspline/main.c     2014-06-01 15:17:19.198486549 +0200
+@@ -169,10 +169,10 @@
+     map = out_map_opt->answer;
+     if (vector && map)
+-      G_fatal_error(_("Choose either vector or raster output, not both"));
++      G_fatal_error("%s", _("Choose either vector or raster output, not both"));
+     if (!vector && !map && !cross_corr_flag->answer)
+-      G_fatal_error(_("No raster or vector or cross-validation output"));
++      G_fatal_error("%s", _("No raster or vector or cross-validation output"));
+     if (!strcmp(type_opt->answer, "bilinear"))
+       bilin = P_BILINEAR;
+@@ -188,10 +188,10 @@
+     flag_auxiliar = FALSE;
+     if (!(db = G__getenv2("DB_DATABASE", G_VAR_MAPSET)))
+-      G_fatal_error(_("Unable to read name of database"));
++      G_fatal_error("%s", _("Unable to read name of database"));
+     if (!(dvr = G__getenv2("DB_DRIVER", G_VAR_MAPSET)))
+-      G_fatal_error(_("Unable to read name of driver"));
++      G_fatal_error("%s", _("Unable to read name of driver"));
+     /* Setting auxiliar table's name */
+     if (vector) {
+@@ -210,7 +210,7 @@
+           G_fatal_error(_("No database connection for driver <%s> is defined. Run db.connect."),
+                         dvr);
+       if (P_Drop_Aux_Table(driver, table_name) != DB_OK)
+-          G_fatal_error(_("Old auxiliar table could not be dropped"));
++          G_fatal_error("%s", _("Old auxiliar table could not be dropped"));
+       db_close_database_shutdown_driver(driver);
+     }
+@@ -226,9 +226,9 @@
+     /* check availability of z values
+      * column option overrrides 3D z coordinates */
+     if (!Vect_is_3d(&In) && (bspline_field <= 0 || bspline_column == NULL))
+-      G_fatal_error(_("Need either 3D vector or layer and column with z values"));
++      G_fatal_error("%s", _("Need either 3D vector or layer and column with z values"));
+     if (bspline_field > 0 && bspline_column == NULL)
+-      G_fatal_error(_("Layer but not column with z values given"));
++      G_fatal_error("%s", _("Layer but not column with z values given"));
+     /* Estimate point density and mean distance for current region */
+     if (spline_step_flag->answer) {
+@@ -238,7 +238,7 @@
+           G_message("Estimated mean distance between points: %.4g", dist);
+       }
+       else
+-          G_warning(_("No points in current region!"));
++          G_warning("%s", _("No points in current region!"));
+       
+       Vect_close(&In);
+       exit(EXIT_SUCCESS);
+@@ -251,7 +251,7 @@
+       cross = cross_correlation(&In, passoE, passoN);
+       if (cross != TRUE)
+-          G_fatal_error(_("Cross validation didn't finish correctly"));
++          G_fatal_error("%s", _("Cross validation didn't finish correctly"));
+       else {
+           G_debug(1, "Cross validation finished correctly");
+@@ -326,7 +326,7 @@
+       db_CatValArray_init(&cvarr);
+       Fi = Vect_get_field(&In, bspline_field);
+       if (Fi == NULL)
+-          G_fatal_error(_("Cannot read field info"));
++          G_fatal_error("%s", _("Cannot read field info"));
+       driver_cats = db_start_driver_open_database(Fi->driver, Fi->database);
+       /*G_debug (0, _("driver=%s db=%s"), Fi->driver, Fi->database); */
+@@ -342,10 +342,10 @@
+       ctype = cvarr.ctype;
+       if (ctype != DB_C_TYPE_INT && ctype != DB_C_TYPE_DOUBLE)
+-          G_fatal_error(_("Column type not supported"));
++          G_fatal_error("%s", _("Column type not supported"));
+       if (nrec < 0)
+-          G_fatal_error(_("Unable to select data from table"));
++          G_fatal_error("%s", _("Unable to select data from table"));
+       G_message(_("[%d] records selected from table"), nrec);
+@@ -389,7 +389,7 @@
+     /* Alloc raster matrix */
+     if (grid == TRUE) {
+       if (!(raster_matrix = G_alloc_matrix(nrows, ncols)))
+-          G_fatal_error(_("Cannot allocate memory for auxiliar matrix."
++          G_fatal_error("%s", _("Cannot allocate memory for auxiliar matrix."
+                           "Consider changing region resolution"));
+     }
+@@ -706,13 +706,13 @@
+               if (observ)
+                   G_free(observ);
+               if (npoints == 0)
+-                  G_warning(_("No data within this subregion. "
++                  G_warning("%s", _("No data within this subregion. "
+                               "Consider increasing spline step values."));
+           }
+       }                       /*! END WHILE; last_column = TRUE */
+     }                         /*! END WHILE; last_row = TRUE */
+-    G_verbose_message(_("Writing output..."));
++    G_verbose_message("%s", _("Writing output..."));
+     /* Writing the output raster map */
+     if (grid == TRUE) {
+       P_Aux_to_Raster(raster_matrix, raster);
+@@ -728,7 +728,7 @@
+       /* Dropping auxiliar table */
+       G_debug(1, "%s: Dropping <%s>", argv[0], table_name);
+       if (P_Drop_Aux_Table(driver, table_name) != DB_OK)
+-          G_fatal_error(_("Auxiliar table could not be dropped"));
++          G_fatal_error("%s", _("Auxiliar table could not be dropped"));
+     }
+     db_close_database_shutdown_driver(driver);
+--- grass-6.4.3/vector/lidar/v.surf.bspline/crosscorr.c.orig   2012-09-15 11:52:06.000000000 +0200
++++ grass-6.4.3/vector/lidar/v.surf.bspline/crosscorr.c        2014-06-04 20:37:00.606017544 +0200
+@@ -90,7 +90,7 @@
+                     ndata);
+     if (ndata > 50)
+-      G_warning(_("Maybe, it takes too long. "
++      G_warning("%s", _("Maybe, it takes too long. "
+                   "It will depend on how many points you are considering."));
+     else
+       G_debug(5, "CrossCorrelation: It shouldn't take too long.");
+@@ -135,7 +135,7 @@
+           ctype = cvarr.ctype;
+           if (ctype != DB_C_TYPE_INT && ctype != DB_C_TYPE_DOUBLE)
+-              G_fatal_error(_("Column type not supported"));
++              G_fatal_error("%s", _("Column type not supported"));
+           if (nrec < 0)
+               G_fatal_error(_("No records selected from table <%s> "),
+@@ -325,8 +325,8 @@
+       *lambda_min = lambda[lbd_min];
+ #endif
+-      G_message(_("Table of results:"));
+-      fprintf(stdout, _("    lambda |       mean |        rms |\n"));
++      G_message("%s", _("Table of results:"));
++      fputs(_("    lambda |       mean |        rms |\n"), stdout);
+       for (lbd = 0; lbd < PARAM_LAMBDA; lbd++) {
+           fprintf(stdout, " %9.5f | %10.4f | %10.4f |\n", lambda[lbd],
+                   mean[lbd], rms[lbd]);
+@@ -336,7 +336,7 @@
+       G_free_vector(rms);
+     }                         /* ENDIF (ndata > 0) */
+     else
+-      G_warning(_("No point lies into the current region"));
++      G_warning("%s", _("No point lies into the current region"));
+     G_free(observ);
+     return TRUE;
+--- grass-6.4.3/vector/lidar/v.outlier/outlier.c.orig  2011-03-19 10:52:08.000000000 +0100
++++ grass-6.4.3/vector/lidar/v.outlier/outlier.c       2014-06-01 15:18:40.551818187 +0200
+@@ -72,11 +72,11 @@
+                       if (Select_Outlier(&interpolation, line_num[i],
+                                          driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to read the database"));
++                          G_fatal_error("%s", _("Impossible to read the database"));
+                       if (UpDate_Outlier(interpolation, line_num[i],
+                                          driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to update the database"));
++                          G_fatal_error("%s", _("Impossible to update the database"));
+                   }
+                   else if ((*point->y < Overlap.S) && (*point->y > General.S)) {      /*(1) */
+                       csi = (General.E - *point->x) / overlap;
+@@ -87,7 +87,7 @@
+                       if (Insert_Outlier(interpolation, line_num[i],
+                                          driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to write in the database"));
++                          G_fatal_error("%s", _("Impossible to write in the database"));
+                   }
+                   else if ((*point->y <= Overlap.N) && (*point->y >= Overlap.S)) {    /*(1) */
+                       weight = (General.E - *point->x) / overlap;
+@@ -96,7 +96,7 @@
+                       if (Insert_Outlier(interpolation, line_num[i],
+                                          driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to write in the database"));
++                          G_fatal_error("%s", _("Impossible to write in the database"));
+                   }
+               }
+               else if ((*point->x < Overlap.W) && (*point->x > General.W)) {
+@@ -109,7 +109,7 @@
+                       if (Select_Outlier(&interpolation, line_num[i],
+                                          driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to read the database"));
++                          G_fatal_error("%s", _("Impossible to read the database"));
+                       residual = *point->z - interpolation;
+@@ -135,11 +135,11 @@
+                       if (Select_Outlier(&interpolation, line_num[i],
+                                          driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to read the database"));
++                          G_fatal_error("%s", _("Impossible to read the database"));
+                       if (UpDate_Outlier(interpolation, line_num[i],
+                                          driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to update the database"));
++                          G_fatal_error("%s", _("Impossible to update the database"));
+                   }
+                   else if ((*point->y <= Overlap.N) && (*point->y >= Overlap.S)) {    /*(2) */
+                       weight = (*point->x - General.W) / overlap;
+@@ -148,7 +148,7 @@
+                       if (Select_Outlier(&interpolation, line_num[i],
+                                          driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to read the database"));
++                          G_fatal_error("%s", _("Impossible to read the database"));
+                       residual = *point->z - interpolation;
+@@ -172,7 +172,7 @@
+                       if (Select_Outlier(&interpolation, line_num[i],
+                                          driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to read the database"));
++                          G_fatal_error("%s", _("Impossible to read the database"));
+                       residual = *point->z - interpolation;
+@@ -194,7 +194,7 @@
+                       if (Insert_Outlier(interpolation, line_num[i],
+                                          driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to write in the database"));
++                          G_fatal_error("%s", _("Impossible to write in the database"));
+                   }           /*else (1) */
+               }               /*else */
+--- grass-6.4.3/vector/lidar/v.outlier/main.c.orig     2012-09-15 11:52:06.000000000 +0200
++++ grass-6.4.3/vector/lidar/v.outlier/main.c  2014-06-04 20:37:41.796016687 +0200
+@@ -136,10 +136,10 @@
+       exit(EXIT_FAILURE);
+     if (!(db = G__getenv2("DB_DATABASE", G_VAR_MAPSET)))
+-      G_fatal_error(_("Unable to read name of database"));
++      G_fatal_error("%s", _("Unable to read name of database"));
+     if (!(dvr = G__getenv2("DB_DRIVER", G_VAR_MAPSET)))
+-      G_fatal_error(_("Unable to read name of driver"));
++      G_fatal_error("%s", _("Unable to read name of driver"));
+     passoN = atof(passoN_opt->answer);
+     passoE = atof(passoE_opt->answer);
+@@ -171,7 +171,7 @@
+           G_fatal_error(_("No database connection for driver <%s> is defined. Run db.connect."),
+                         dvr);
+       if (P_Drop_Aux_Table(driver, table_name) != DB_OK)
+-          G_fatal_error(_("Old auxiliar table could not be dropped"));
++          G_fatal_error("%s", _("Old auxiliar table could not be dropped"));
+       db_close_database_shutdown_driver(driver);
+     }
+@@ -193,7 +193,7 @@
+           G_message("Estimated mean distance between points: %.4g", dist);
+       }
+       else
+-          G_warning(_("No points in current region!"));
++          G_warning("%s", _("No points in current region!"));
+       
+       Vect_close(&In);
+       exit(EXIT_SUCCESS);
+@@ -390,7 +390,7 @@
+               G_free(observ);
+-              G_verbose_message(_("Bilinear interpolation"));
++              G_verbose_message("%s", _("Bilinear interpolation"));
+               normalDefBilin(N, TN, Q, obsVect, passoE, passoN, nsplx,
+                              nsply, elaboration_reg.west,
+                              elaboration_reg.south, npoints, nparameters,
+@@ -402,7 +402,7 @@
+               G_free_vector(TN);
+               G_free_vector(Q);
+-              G_verbose_message(_("Outlier detection"));
++              G_verbose_message("%s", _("Outlier detection"));
+               if (qgis_opt->answer)
+                   P_Outlier(&Out, &Outlier, &Qgis, elaboration_reg,
+                             general_box, overlap_box, obsVect, parVect,
+@@ -420,7 +420,7 @@
+           }                   /*! END IF; npoints > 0 */
+           else {
+               G_free(observ);
+-              G_warning(_("No data within this subregion. "
++              G_warning("%s", _("No data within this subregion. "
+                           "Consider changing the spline step."));
+           }
+       }                       /*! END WHILE; last_column = TRUE */
+@@ -430,7 +430,7 @@
+     if (npoints > 0) {
+       G_debug(1, "Dropping <%s>", table_name);
+       if (P_Drop_Aux_Table(driver, table_name) != DB_OK)
+-          G_fatal_error(_("Auxiliar table could not be dropped"));
++          G_fatal_error("%s", _("Auxiliar table could not be dropped"));
+     }
+     db_close_database_shutdown_driver(driver);
+--- grass-6.4.3/vector/lidar/v.lidar.correction/correction.c.orig      2010-02-20 11:53:18.000000000 +0100
++++ grass-6.4.3/vector/lidar/v.lidar.correction/correction.c   2014-06-01 15:21:32.871814595 +0200
+@@ -93,11 +93,11 @@
+                       if (Select_Correction
+                           (&interpolation, line_num[i], driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to read the database"));
++                          G_fatal_error("%s", _("Impossible to read the database"));
+                       if (UpDate_Correction
+                           (interpolation, line_num[i], driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to update the database"));
++                          G_fatal_error("%s", _("Impossible to update the database"));
+                   }
+                   else if ((*point->y < Overlap.S) && (*point->y > General.S)) {      /*(1) */
+                       csi = (General.E - *point->x) / overlap;
+@@ -107,7 +107,7 @@
+                       if (Insert_Correction
+                           (interpolation * weight, line_num[i],
+                            driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to write in the database"));
++                          G_fatal_error("%s", _("Impossible to write in the database"));
+                   }
+                   else if ((*point->y >= Overlap.S) && (*point->y <= Overlap.N)) {    /*(1) */
+                       weight = (General.E - *point->x) / overlap;
+@@ -115,7 +115,7 @@
+                       if (Insert_Correction
+                           (interpolation * weight, line_num[i],
+                            driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to write in the database"));
++                          G_fatal_error("%s", _("Impossible to write in the database"));
+                   }
+               }
+               else if ((*point->x < Overlap.W) && (*point->x > General.W)) {
+@@ -127,7 +127,7 @@
+                       if (Select_Correction
+                           (&interpolation, line_num[i], driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to read the database"));
++                          G_fatal_error("%s", _("Impossible to read the database"));
+                       Vect_cat_set(cats, F_EDGE_DETECTION_CLASS, lcat[i].cat_edge);
+                       Vect_cat_set(cats, F_INTERPOLATION, lcat[i].cat_interp);
+@@ -151,11 +151,11 @@
+                       if (Select_Correction
+                           (&interpolation, line_num[i], driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to read the database"));
++                          G_fatal_error("%s", _("Impossible to read the database"));
+                       if (UpDate_Correction
+                           (interpolation, line_num[i], driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to update the database"));
++                          G_fatal_error("%s", _("Impossible to update the database"));
+                   }
+                   else if ((*point->y >= Overlap.S) && (*point->y <= Overlap.N)) {    /*(2) */
+                       weight = (*point->x - General.W) / overlap;
+@@ -163,7 +163,7 @@
+                       if (Select_Correction
+                           (&interpolation, line_num[i], driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to read the database"));
++                          G_fatal_error("%s", _("Impossible to read the database"));
+                       Vect_cat_set(cats, F_EDGE_DETECTION_CLASS, lcat[i].cat_edge);
+                       Vect_cat_set(cats, F_INTERPOLATION, lcat[i].cat_interp);
+@@ -187,7 +187,7 @@
+                       if (Select_Correction
+                           (&interpolation, line_num[i], driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to read the database"));
++                          G_fatal_error("%s", _("Impossible to read the database"));
+                       Vect_cat_set(cats, F_EDGE_DETECTION_CLASS, lcat[i].cat_edge);
+                       Vect_cat_set(cats, F_INTERPOLATION, lcat[i].cat_interp);
+@@ -210,7 +210,7 @@
+                       if (Insert_Correction
+                           (interpolation * weight, line_num[i],
+                            driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to write in the database"));
++                          G_fatal_error("%s", _("Impossible to write in the database"));
+                   }
+               }
+           }
+--- grass-6.4.3/vector/lidar/v.lidar.correction/main.c.orig    2012-09-15 11:52:06.000000000 +0200
++++ grass-6.4.3/vector/lidar/v.lidar.correction/main.c 2014-06-04 20:38:36.799348875 +0200
+@@ -149,10 +149,10 @@
+     LowThresh = atof(Thresh_B_opt->answer);
+     if (!(db = G__getenv2("DB_DATABASE", G_VAR_MAPSET)))
+-      G_fatal_error(_("Unable to read name of database"));
++      G_fatal_error("%s", _("Unable to read name of database"));
+     if (!(dvr = G__getenv2("DB_DRIVER", G_VAR_MAPSET)))
+-      G_fatal_error(_("Unable to read name of driver"));
++      G_fatal_error("%s", _("Unable to read name of driver"));
+     /* Setting auxiliar table's name */
+     if (G__name_is_fully_qualified(out_opt->answer, xname, xmapset)) {
+@@ -169,7 +169,7 @@
+           G_fatal_error(_("No database connection for driver <%s> is defined. Run db.connect."),
+                         dvr);
+       if (P_Drop_Aux_Table(driver, table_name) != DB_OK)
+-          G_fatal_error(_("Old auxiliar table could not be dropped"));
++          G_fatal_error("%s", _("Old auxiliar table could not be dropped"));
+       db_close_database_shutdown_driver(driver);
+     }
+@@ -197,7 +197,7 @@
+           G_message("Estimated mean distance between points: %.4g", dist);
+       }
+       else
+-          G_warning(_("No points in current region!"));
++          G_warning("%s", _("No points in current region!"));
+       
+       Vect_close(&In);
+       exit(EXIT_SUCCESS);
+@@ -358,7 +358,7 @@
+           G_debug(1, _("nsplx = %d"), nsplx);
+           dim_vect = nsplx * nsply;
+-          G_debug(1, _("read vector region map"));
++          G_debug(1, "%s", _("read vector region map"));
+           observ =
+               P_Read_Vector_Correction(&In, &elaboration_reg, &npoints,
+                                        &nterrain, dim_vect, &lcat);
+@@ -369,7 +369,7 @@
+               nparameters = nsplx * nsply;
+               /* Mean calculation */
+-              G_debug(3, _("Mean calculation"));
++              G_debug(3, "%s", _("Mean calculation"));
+               mean = P_Mean_Calc(&elaboration_reg, observ, npoints);
+               /*Least Squares system */
+@@ -383,7 +383,7 @@
+               lineVect = G_alloc_ivector(npoints + 1);
+               /* Setting obsVect vector & Q matrix */
+-              G_debug(3, _("Only TERRAIN points"));
++              G_debug(3, "%s", _("Only TERRAIN points"));
+               for (i = 0; i < npoints; i++) {
+                   if (observ[i].cat == TERRAIN_SINGLE) {
+                       obsVect[count_terrain][0] = observ[i].coordX;
+@@ -400,7 +400,7 @@
+               G_free(observ);
+-              G_verbose_message(_("Bilinear interpolation"));
++              G_verbose_message("%s", _("Bilinear interpolation"));
+               normalDefBilin(N, TN, Q, obsVect, passoE, passoN, nsplx,
+                              nsply, elaboration_reg.west,
+                              elaboration_reg.south, nterrain, nparameters,
+@@ -413,7 +413,7 @@
+               G_free_vector(Q);
+               G_free_matrix(obsVect);
+-              G_verbose_message( _("Correction and creation of terrain vector"));
++              G_verbose_message("%s", _("Correction and creation of terrain vector"));
+               P_Sparse_Correction(&In, &Out, &Terrain, &elaboration_reg,
+                                   general_box, overlap_box, obsVect_all, lcat,
+                                   parVect, lineVect, passoN, passoE,
+@@ -426,7 +426,7 @@
+           }
+           else {
+               G_free(observ);
+-              G_warning(_("No data within this subregion. "
++              G_warning("%s", _("No data within this subregion. "
+                           "Consider changing the spline step."));
+           }
+           G_free(lcat);
+@@ -437,7 +437,7 @@
+     if (npoints > 0) {
+       G_debug(1, _("Dropping <%s>"), table_name);
+       if (P_Drop_Aux_Table(driver, table_name) != DB_OK)
+-          G_fatal_error(_("Auxiliar table could not be dropped"));
++          G_fatal_error("%s", _("Auxiliar table could not be dropped"));
+     }
+     db_close_database_shutdown_driver(driver);
+--- grass-6.4.3/vector/lidar/v.lidar.edgedetection/edgedetection.c.orig        2010-02-20 11:53:17.000000000 +0100
++++ grass-6.4.3/vector/lidar/v.lidar.edgedetection/edgedetection.c     2014-06-01 15:22:36.221813275 +0200
+@@ -229,12 +229,12 @@
+                       if (Select(&gradient[0], &gradient[1],
+                                  &interpolation, line_num[i], driver,
+                                  tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to read from aux table"));
++                          G_fatal_error("%s", _("Impossible to read from aux table"));
+                       if (UpDate(gradient[0], gradient[1],
+                                  interpolation, line_num[i], driver,
+                                  tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to update aux table"));
++                          G_fatal_error("%s", _("Impossible to update aux table"));
+                   }
+                   else if ((*point->y < Overlap.S) && (*point->y > General.S)) {      /*(1) */
+                       csi = (General.E - *point->x) / overlap;
+@@ -247,7 +247,7 @@
+                       if (Insert(gradient[0], gradient[1], interpolation,
+                                  line_num[i], driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to write to aux table"));
++                          G_fatal_error("%s", _("Impossible to write to aux table"));
+                   }
+                   else if ((*point->y <= Overlap.N) && (*point->y >= Overlap.S)) {    /*(1) */
+@@ -259,7 +259,7 @@
+                       if (Insert(gradient[0], gradient[1], interpolation,
+                                  line_num[i], driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to write to aux table"));
++                          G_fatal_error("%s", _("Impossible to write to aux table"));
+                   }
+               }
+               else if ((*point->x < Overlap.W) && (*point->x > General.W)) {
+@@ -275,7 +275,7 @@
+                       if (Select(&gradient[0], &gradient[1],
+                                  &interpolation, line_num[i], driver,
+                                  tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to read from aux table"));
++                          G_fatal_error("%s", _("Impossible to read from aux table"));
+                       residual = *point->z - interpolation;
+                       edge =
+@@ -305,12 +305,12 @@
+                       if (Select(&gradient[0], &gradient[1],
+                                  &interpolation, line_num[i], driver,
+                                  tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to read from aux table"));
++                          G_fatal_error("%s", _("Impossible to read from aux table"));
+                       if (UpDate(gradient[0], gradient[1],
+                                  interpolation, line_num[i], driver,
+                           tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to update aux table"));
++                          G_fatal_error("%s", _("Impossible to update aux table"));
+                   }
+                   else if ((*point->y <= Overlap.N) && (*point->y >= Overlap.S)) {    /*(2) */
+@@ -323,7 +323,7 @@
+                       if (Select(&gradient[0], &gradient[1],
+                                  &interpolation, line_num[i], driver,
+                                  tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to read from aux table"));
++                          G_fatal_error("%s", _("Impossible to read from aux table"));
+                       residual = *point->z - interpolation;
+                       edge =
+@@ -353,7 +353,7 @@
+                       if (Select(&gradient[0], &gradient[1],
+                                  &interpolation, line_num[i], driver,
+                                  tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to read from aux table"));
++                          G_fatal_error("%s", _("Impossible to read from aux table"));
+                       residual = *point->z - interpolation;
+                       edge =
+@@ -380,7 +380,7 @@
+                       if (Insert(gradient[0], gradient[1], interpolation,
+                                  line_num[i], driver, tab_name) != DB_OK)
+-                          G_fatal_error(_("Impossible to write to aux table"));
++                          G_fatal_error("%s", _("Impossible to write to aux table"));
+                   }           /*else (1) */
+               }               /*else */
+--- grass-6.4.3/vector/lidar/v.lidar.edgedetection/main.c.orig 2012-09-15 11:52:06.000000000 +0200
++++ grass-6.4.3/vector/lidar/v.lidar.edgedetection/main.c      2014-06-04 20:39:42.726014165 +0200
+@@ -170,10 +170,10 @@
+     grad_H = grad_H * grad_H;
+     if (!(db = G__getenv2("DB_DATABASE", G_VAR_MAPSET)))
+-      G_fatal_error(_("Unable to read name of database"));
++      G_fatal_error("%s", _("Unable to read name of database"));
+     if (!(dvr = G__getenv2("DB_DRIVER", G_VAR_MAPSET)))
+-      G_fatal_error(_("Unable to read name of driver"));
++      G_fatal_error("%s", _("Unable to read name of driver"));
+     /* Setting auxiliar table's name */
+     if (G__name_is_fully_qualified(out_opt->answer, xname, xmapset)) {
+@@ -193,7 +193,7 @@
+           G_fatal_error(_("No database connection for driver <%s> is defined. Run db.connect."),
+                         dvr);
+       if (P_Drop_Aux_Table(driver, table_name) != DB_OK)
+-          G_fatal_error(_("Old auxiliar table could not be dropped"));
++          G_fatal_error("%s", _("Old auxiliar table could not be dropped"));
+       db_close_database_shutdown_driver(driver);
+     }
+@@ -205,7 +205,7 @@
+           G_fatal_error(_("No database connection for driver <%s> is defined. Run db.connect."),
+                         dvr);
+       if (P_Drop_Aux_Table(driver, table_interpolation) != DB_OK)
+-          G_fatal_error(_("Old auxiliar table could not be dropped"));
++          G_fatal_error("%s", _("Old auxiliar table could not be dropped"));
+       db_close_database_shutdown_driver(driver);
+     }
+@@ -234,7 +234,7 @@
+           G_message("Estimated mean distance between points: %.4g", dist);
+       }
+       else
+-          G_warning(_("No points in current region!"));
++          G_warning("%s", _("No points in current region!"));
+       
+       Vect_close(&In);
+       exit(EXIT_SUCCESS);
+@@ -393,7 +393,7 @@
+               mean = P_Mean_Calc(&elaboration_reg, observ, npoints);
+               /* Least Squares system */
+-              G_debug(1, _("Allocating memory for bilinear interpolation"));
++              G_debug(1, "%s", _("Allocating memory for bilinear interpolation"));
+               BW = P_get_BandWidth(P_BILINEAR, nsply);        /* Bilinear interpolation */
+               N = G_alloc_matrix(nparameters, BW);    /* Normal matrix */
+               TN = G_alloc_vector(nparameters);       /* vector */
+@@ -414,7 +414,7 @@
+               G_free(observ);
+-              G_verbose_message(_("Bilinear interpolation"));
++              G_verbose_message("%s", _("Bilinear interpolation"));
+               normalDefBilin(N, TN, Q, obsVect, passoE, passoN, nsplx,
+                              nsply, elaboration_reg.west,
+                              elaboration_reg.south, npoints, nparameters,
+@@ -426,12 +426,12 @@
+               for (tn = 0; tn < nparameters; tn++)
+                   TN[tn] = 0;
+-              G_debug(1, _("Allocating memory for bicubic interpolation"));
++              G_debug(1, "%s", _("Allocating memory for bicubic interpolation"));
+               BW = P_get_BandWidth(P_BICUBIC, nsply);
+               N = G_alloc_matrix(nparameters, BW);    /* Normal matrix */
+               parVect_bicub = G_alloc_vector(nparameters);    /* Bicubic parameters vector */
+-              G_verbose_message(_("Bicubic interpolation"));
++              G_verbose_message("%s", _("Bicubic interpolation"));
+               normalDefBicubic(N, TN, Q, obsVect, passoE, passoN, nsplx,
+                                nsply, elaboration_reg.west,
+                                elaboration_reg.south, npoints, nparameters,
+@@ -443,7 +443,7 @@
+               G_free_vector(TN);
+               G_free_vector(Q);
+-              G_verbose_message(_("Point classification"));
++              G_verbose_message("%s", _("Point classification"));
+               classification(&Out, elaboration_reg, general_box,
+                              overlap_box, obsVect, parVect_bilin,
+                              parVect_bicub, mean, alpha, grad_H, grad_L,
+@@ -457,7 +457,7 @@
+           }                   /* IF */
+           else {
+               G_free(observ);
+-              G_warning(_("No data within this subregion. "
++              G_warning("%s", _("No data within this subregion. "
+                           "Consider changing the spline step."));
+           }
+       }                       /*! END WHILE; last_column = TRUE */
+@@ -467,7 +467,7 @@
+     if (npoints > 0) {
+       G_debug(1, _("Dropping <%s>"), table_name);
+       if (P_Drop_Aux_Table(driver, table_name) != DB_OK)
+-          G_warning(_("Auxiliar table could not be dropped"));
++          G_warning("%s", _("Auxiliar table could not be dropped"));
+     }
+     db_close_database_shutdown_driver(driver);
+--- grass-6.4.3/vector/lidar/v.lidar.growing/main.c.orig       2010-02-20 11:53:18.000000000 +0100
++++ grass-6.4.3/vector/lidar/v.lidar.growing/main.c    2014-06-01 15:29:06.871805133 +0200
+@@ -201,7 +201,7 @@
+     Vect_rewind(&First);
+     /* Setting regions and boxes */
+-    G_debug(1, _("Setting regions and boxes"));
++    G_debug(1, "%s", _("Setting regions and boxes"));
+     G_get_set_window(&original_reg);
+     G_get_set_window(&elaboration_reg);
+@@ -288,7 +288,7 @@
+               }
+           }
+-          G_verbose_message(_("read points in input vector"));
++          G_verbose_message("%s", _("read points in input vector"));
+           Vect_region_box(&elaboration_reg, &elaboration_box);
+           line_num = 0;
+           Vect_rewind(&In);
+@@ -437,7 +437,7 @@
+           /* REGION GROWING */
+           if (region == TRUE) {
+-              G_verbose_message(_("Region Growing"));
++              G_verbose_message("%s", _("Region Growing"));
+               punti_bordo = G_alloc_matrix(MaxPoints, 3);
+               P = Pvector(0, MaxPoints);
+--- grass-6.4.3/vector/lidar/v.lidar.growing/ConvexHull.c.orig 2008-11-25 02:30:53.000000000 +0100
++++ grass-6.4.3/vector/lidar/v.lidar.growing/ConvexHull.c      2014-06-04 20:40:02.252680424 +0200
+@@ -266,7 +266,7 @@
+ {
+     G_debug(0, "run-time error...");
+     G_debug(0, "%s", error_text);
+-    G_fatal_error(_("...now exiting to system..."));
++    G_fatal_error("%s", _("...now exiting to system..."));
+     exit(EXIT_FAILURE);
+ }
+--- grass-6.4.3/vector/v.out.ogr/main.c.orig   2013-04-06 11:52:06.000000000 +0200
++++ grass-6.4.3/vector/v.out.ogr/main.c        2014-06-01 15:30:59.698469448 +0200
+@@ -227,7 +227,7 @@
+       if (Vect_get_num_primitives(&In, GV_BOUNDARY) !=
+           Vect_get_num_areas(&In)) {
+-          G_warning(_("Skipping all boundaries that are not part of an area."));
++          G_warning("%s", _("Skipping all boundaries that are not part of an area."));
+       }
+       if (Vect_get_num_areas(&In) > 0) {
+@@ -246,7 +246,7 @@
+       }
+       /* this check HAS TO FOLLOW RIGHT AFTER check for GV_FACE! */
+       if (Vect_get_num_volumes(&In) > 0) {
+-          G_warning(_("Volumes will be exported as sets of faces."));
++          G_warning("%s", _("Volumes will be exported as sets of faces."));
+           if (num_types == 0) {
+               /* no other types yet? */
+               type_opt->answers[num_types] = strdup("volume");
+@@ -264,7 +264,7 @@
+       }
+       if (num_types == 0)
+-          G_fatal_error(_("Could not determine input map's feature type(s)."));
++          G_fatal_error("%s", _("Could not determine input map's feature type(s)."));
+     }
+     /* Check output type */
+@@ -309,7 +309,7 @@
+       ((GV_KERNEL & otype) && (GV_VOLUME & otype))
+       ) {
+-      G_warning(_("The combination of types is not supported"
++      G_warning("%s", _("The combination of types is not supported"
+                   " by all formats."));
+       wkbtype = wkbUnknown;
+     }
+@@ -323,7 +323,7 @@
+     Cats = Vect_new_cats_struct();
+     if (Vect_get_num_islands(&In) > 0 && !cat_flag->answer)
+-      G_warning(_("The map contains islands. To preserve them in the output map, use the -c flag"));
++      G_warning("%s", _("The map contains islands. To preserve them in the output map, use the -c flag"));
+     /* check what users wants to export and what's present in the map */
+@@ -371,7 +371,7 @@
+     /* warn and eventually abort if there is nothing to be exported */
+     num_to_export = 0;
+     if (Vect_get_num_primitives(&In, GV_POINT) < 1 && (otype & GV_POINTS)) {
+-      G_warning(_("No points found, but requested to be exported. "
++      G_warning("%s", _("No points found, but requested to be exported. "
+                   "Will skip this geometry type."));
+     }
+     else {
+@@ -380,7 +380,7 @@
+     }
+     if (Vect_get_num_primitives(&In, GV_LINE) < 1 && (otype & GV_LINE)) {
+-      G_warning(_("No lines found, but requested to be exported. "
++      G_warning("%s", _("No lines found, but requested to be exported. "
+                   "Will skip this geometry type."));
+     }
+     else {
+@@ -390,7 +390,7 @@
+     if (Vect_get_num_primitives(&In, GV_BOUNDARY) < 1 &&
+       (otype & GV_BOUNDARY)) {
+-      G_warning(_("No boundaries found, but requested to be exported. "
++      G_warning("%s", _("No boundaries found, but requested to be exported. "
+                   "Will skip this geometry type."));
+     }
+     else {
+@@ -399,7 +399,7 @@
+     }
+     if (Vect_get_num_areas(&In) < 1 && (otype & GV_AREA)) {
+-      G_warning(_("No areas found, but requested to be exported. "
++      G_warning("%s", _("No areas found, but requested to be exported. "
+                   "Will skip this geometry type."));
+     }
+     else {
+@@ -409,7 +409,7 @@
+     if (Vect_get_num_primitives(&In, GV_CENTROID) < 1 &&
+       (otype & GV_CENTROID)) {
+-      G_warning(_("No centroids found, but requested to be exported. "
++      G_warning("%s", _("No centroids found, but requested to be exported. "
+                   "Will skip this geometry type."));
+     }
+     else {
+@@ -418,7 +418,7 @@
+     }
+     if (Vect_get_num_primitives(&In, GV_FACE) < 1 && (otype & GV_FACE)) {
+-      G_warning(_("No faces found, but requested to be exported. "
++      G_warning("%s", _("No faces found, but requested to be exported. "
+                   "Will skip this geometry type."));
+     }
+     else {
+@@ -427,7 +427,7 @@
+     }
+     if (Vect_get_num_primitives(&In, GV_KERNEL) < 1 && (otype & GV_KERNEL)) {
+-      G_warning(_("No kernels found, but requested to be exported. "
++      G_warning("%s", _("No kernels found, but requested to be exported. "
+                   "Will skip this geometry type."));
+     }
+     else {
+@@ -436,7 +436,7 @@
+     }
+     if (Vect_get_num_volumes(&In) < 1 && (otype & GV_VOLUME)) {
+-      G_warning(_("No volumes found, but requested to be exported. "
++      G_warning("%s", _("No volumes found, but requested to be exported. "
+                   "Will skip this geometry type."));
+     }
+     else {
+@@ -447,7 +447,7 @@
+     G_debug(1, "Requested to export %d geometries", num_to_export);
+     if (num_to_export < 1) {
+-      G_warning(_("Nothing to export"));
++      G_warning("%s", _("Nothing to export"));
+       exit(EXIT_SUCCESS);
+     }
+@@ -564,7 +564,7 @@
+       else {
+           if (strcmp(shpt, shape_geom) != 0) {
+               /* Set but to a different value? Override! */
+-              G_warning(_("Overriding existing user-defined 'SHPT=' LCO."));
++              G_warning("%s", _("Overriding existing user-defined 'SHPT=' LCO."));
+           }
+           /* Set correct LCO for this geometry type */
+           papszLCO = CSLSetNameValue(papszLCO, "SHPT", shape_geom);
+@@ -600,7 +600,7 @@
+                          papszLCO);
+     CSLDestroy(papszLCO);
+     if (Ogr_layer == NULL)
+-      G_fatal_error(_("Unable to create OGR layer"));
++      G_fatal_error("%s", _("Unable to create OGR layer"));
+     db_init_string(&dbstring);
+@@ -610,11 +610,11 @@
+       doatt = 1;              /* do attributes */
+       Fi = Vect_get_field(&In, field);
+       if (Fi == NULL) {
+-          G_warning(_("No attribute table found -> using only category numbers as attributes"));
++          G_warning("%s", _("No attribute table found -> using only category numbers as attributes"));
+           /* if we have no more than a 'cat' column, then that has to
+              be exported in any case */
+           if (nocat_flag->answer) {
+-              G_warning(_("Exporting 'cat' anyway, as it is the only attribute table field"));
++              G_warning("%s", _("Exporting 'cat' anyway, as it is the only attribute table field"));
+               nocat_flag->answer = 0;
+           }
+           Ogr_field = OGR_Fld_Create("cat", OFTInteger);
+@@ -990,7 +990,7 @@
+      */
+     if ((otype & GV_VOLUME)) {
+       G_message(_("Exporting %i volumes..."), Vect_get_num_volumes(&In));
+-      G_warning(_("Export of volumes not implemented yet. Skipping."));
++      G_warning("%s", _("Export of volumes not implemented yet. Skipping."));
+     }
+     if (OGR_L_TestCapability(Ogr_layer, OLCTransactions))
+@@ -1069,7 +1069,7 @@
+           }
+           if (db_fetch(&cursor, DB_NEXT, &more) != DB_OK)
+-              G_fatal_error(_("Unable to fetch data from table"));
++              G_fatal_error("%s", _("Unable to fetch data from table"));
+           if (!more) {
+               /* G_warning ("No database record for cat = %d", cat); */
+--- grass-6.4.3/vector/v.in.ogr/geom.c.orig    2011-10-22 11:52:04.000000000 +0200
++++ grass-6.4.3/vector/v.in.ogr/geom.c 2014-06-01 15:50:02.615112294 +0200
+@@ -192,7 +192,7 @@
+           ret = poly_count(hRing);
+           if (ret == -1) {
+-              G_warning(_("Cannot read part of geometry"));
++              G_warning("%s", _("Cannot read part of geometry"));
+           }
+       }
+     }
+@@ -231,7 +231,7 @@
+     if (eType == wkbPoint) {
+       if ((np = OGR_G_GetPointCount(hGeom)) == 0) {
+-          G_warning(_("Skipping empty geometry feature"));
++          G_warning("%s", _("Skipping empty geometry feature"));
+           return 0;
+       }
+       Vect_append_point(Points, OGR_G_GetX(hGeom, 0), OGR_G_GetY(hGeom, 0),
+@@ -244,7 +244,7 @@
+     }
+     else if (eType == wkbLineString) {
+       if ((np = OGR_G_GetPointCount(hGeom)) == 0) {
+-          G_warning(_("Skipping empty geometry feature"));
++          G_warning("%s", _("Skipping empty geometry feature"));
+           return 0;
+       }
+@@ -272,7 +272,7 @@
+       /* Area */
+       hRing = OGR_G_GetGeometryRef(hGeom, 0);
+       if ((np = OGR_G_GetPointCount(hRing)) == 0) {
+-          G_warning(_("Skipping empty geometry feature"));
++          G_warning("%s", _("Skipping empty geometry feature"));
+           return 0;
+       }
+@@ -318,7 +318,7 @@
+           hRing = OGR_G_GetGeometryRef(hGeom, i);
+           if ((np = OGR_G_GetPointCount(hRing)) == 0) {
+-              G_warning(_("Skipping empty geometry feature"));
++              G_warning("%s", _("Skipping empty geometry feature"));
+           }
+           else {
+               IPoints[valid_isles] = Vect_new_line_struct();
+@@ -365,7 +365,7 @@
+                   Vect_get_point_in_poly_isl(Points, IPoints, valid_isles,
+                                              &x, &y);
+               if (ret == -1) {
+-                  G_warning(_("Cannot calculate centroid"));
++                  G_warning("%s", _("Cannot calculate centroid"));
+               }
+               else {
+                   Vect_reset_line(Points);
+@@ -396,7 +396,7 @@
+               Vect_write_line(Map, otype, Points, Cats);
+           }
+           else {              /* 0 points */
+-              G_warning(_("No centroid written for polygon with 0 vertices"));
++              G_warning("%s", _("No centroid written for polygon with 0 vertices"));
+           }
+       }
+@@ -417,13 +417,13 @@
+           ret = geom(hRing, Map, field, cat, min_area, type, mk_centr);
+           if (ret == -1) {
+-              G_warning(_("Cannot write part of geometry"));
++              G_warning("%s", _("Cannot write part of geometry"));
+           }
+       }
+     }
+     else {
+-      G_fatal_error(_("Unknown geometry type"));
++      G_fatal_error("%s", _("Unknown geometry type"));
+     }
+     return 0;
+--- grass-6.4.3/vector/v.in.ogr/main.c.orig    2013-07-15 14:15:30.000000000 +0200
++++ grass-6.4.3/vector/v.in.ogr/main.c 2014-06-04 20:45:26.602673667 +0200
+@@ -255,7 +255,7 @@
+     if (formats_flag->answer) {
+       int iDriver;
+-      G_important_message(_("Available OGR Drivers:"));
++      G_important_message("%s", _("Available OGR Drivers:"));
+       for (iDriver = 0; iDriver < OGRGetDriverCount(); iDriver++) {
+           OGRSFDriverH poDriver = OGRGetDriver(iDriver);
+@@ -383,7 +383,7 @@
+     if (region_flag->answer) {
+       if (spat_opt->answer)
+-          G_fatal_error(_("Select either the current region flag or the spatial option, not both"));
++          G_fatal_error("%s", _("Select either the current region flag or the spatial option, not both"));
+       G_get_window(&cur_wind);
+       xmin = cur_wind.west;
+@@ -411,7 +411,7 @@
+           i++;
+       }
+       if (arg_s_num != 4)
+-          G_fatal_error(_("4 parameters required for 'spatial' parameter"));
++          G_fatal_error("%s", _("4 parameters required for 'spatial' parameter"));
+     }
+     if (spat_opt->answer || region_flag->answer) {
+       G_debug(2, "cut out with boundaries: xmin:%f ymin:%f xmax:%f ymax:%f",
+@@ -488,7 +488,7 @@
+        * assume the user has a terminal open */
+       if (GPJ_osr_to_grass(&cellhd, &proj_info,
+                            &proj_units, Ogr_projection, 0) < 0)
+-          G_fatal_error(_("Unable to convert input map projection to GRASS "
++          G_fatal_error("%s", _("Unable to convert input map projection to GRASS "
+                           "format; cannot create new location"));
+       else
+           G_make_location(outloc_opt->answer, &cellhd,
+@@ -500,7 +500,7 @@
+       /* Projection only required for checking so convert non-interactively */
+       if (GPJ_osr_to_grass(&cellhd, &proj_info,
+                            &proj_units, Ogr_projection, 0) < 0)
+-          G_warning(_("Unable to convert input map projection information to "
++          G_warning("%s", _("Unable to convert input map projection information to "
+                      "GRASS format for checking"));
+       /* Does the projection of the current location match the dataset? */
+@@ -515,7 +515,7 @@
+       if (over_flag->answer) {
+           cellhd.proj = loc_wind.proj;
+           cellhd.zone = loc_wind.zone;
+-          G_message(_("Over-riding projection check"));
++          G_message("%s", _("Over-riding projection check"));
+       }
+       else if (loc_wind.proj != cellhd.proj
+                || (err =
+@@ -595,10 +595,10 @@
+           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_message(_("Projection of input dataset and current location "
++          G_message("%s", _("Projection of input dataset and current location "
+                       "appear to match"));
+       }
+     }
+@@ -779,7 +779,7 @@
+               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,
+@@ -931,7 +931,7 @@
+                   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);
+@@ -976,7 +976,7 @@
+       Points = Vect_new_line_struct();
+       G_message("%s", separator);
+-      G_warning(_("Cleaning polygons, result is not guaranteed!"));
++      G_warning("%s", _("Cleaning polygons, result is not guaranteed!"));
+       if (snap >= 0) {
+           G_message("%s", separator);
+@@ -994,12 +994,12 @@
+        */
+       G_message("%s", separator);
+-      G_message(_("Break polygons:"));
++      G_message("%s", _("Break polygons:"));
+       Vect_break_polygons(&Tmp, GV_BOUNDARY, NULL);
+       /* It is important to remove also duplicate centroids in case of duplicate input polygons */
+       G_message("%s", separator);
+-      G_message(_("Remove duplicates:"));
++      G_message("%s", _("Remove duplicates:"));
+       Vect_remove_duplicates(&Tmp, GV_BOUNDARY | GV_CENTROID, NULL);
+       /* split boundaries here ? */
+@@ -1009,41 +1009,41 @@
+        * and Vect_clean_small_angles_at_nodes() until no more small angles are found */
+       do {
+           G_message("%s", separator);
+-          G_message(_("Break boundaries:"));
++          G_message("%s", _("Break boundaries:"));
+           Vect_break_lines(&Tmp, GV_BOUNDARY, NULL);
+           G_message("%s", separator);
+-          G_message(_("Remove duplicates:"));
++          G_message("%s", _("Remove duplicates:"));
+           Vect_remove_duplicates(&Tmp, GV_BOUNDARY, NULL);
+           G_message("%s", separator);
+-          G_message(_("Clean boundaries at nodes:"));
++          G_message("%s", _("Clean boundaries at nodes:"));
+           nmodif =
+               Vect_clean_small_angles_at_nodes(&Tmp, GV_BOUNDARY, NULL);
+       } while (nmodif > 0);
+       /* merge boundaries */
+       G_message("%s", separator);
+-      G_message(_("Merge boundaries:"));
++      G_message("%s", _("Merge boundaries:"));
+       Vect_merge_lines(&Tmp, GV_BOUNDARY, NULL, NULL);
+       G_message("%s", separator);
+       if (type & GV_BOUNDARY) {       /* that means lines were converted boundaries */
+-          G_message(_("Change boundary dangles to lines:"));
++          G_message("%s", _("Change boundary dangles to lines:"));
+           Vect_chtype_dangles(&Tmp, -1.0, NULL);
+       }
+       else {
+-          G_message(_("Change dangles to lines:"));
++          G_message("%s", _("Change dangles to lines:"));
+           Vect_remove_dangles(&Tmp, GV_BOUNDARY, -1.0, NULL);
+       }
+       G_message("%s", separator);
+       if (type & GV_BOUNDARY) {
+-          G_message(_("Change boundary bridges to lines:"));
++          G_message("%s", _("Change boundary bridges to lines:"));
+           Vect_chtype_bridges(&Tmp, NULL);
+       }
+       else {
+-          G_message(_("Remove bridges:"));
++          G_message("%s", _("Remove bridges:"));
+           Vect_remove_bridges(&Tmp, NULL);
+       }
+@@ -1062,7 +1062,7 @@
+           Centr[centr].cats = Vect_new_cats_struct();
+           ret = Vect_get_point_in_area(&Tmp, centr, &x, &y);
+           if (ret < 0) {
+-              G_warning(_("Cannot calculate area centroid"));
++              G_warning("%s", _("Cannot calculate area centroid"));
+               continue;
+           }
+@@ -1099,7 +1099,7 @@
+       /* Write centroids */
+       G_message("%s", separator);
+-      G_message(_("Write centroids:"));
++      G_message("%s", _("Write centroids:"));
+       n_overlaps = n_nocat = 0;
+       total_area = overlap_area = nocat_area = 0.0;
+@@ -1225,7 +1225,7 @@
+           if (snap < new_snap) {
+               G_important_message("%s", separator);
+-              G_warning(_("Errors were encountered during the import"));
++              G_warning("%s", _("Errors were encountered during the import"));
+               G_important_message(_("Try to import again, snapping with at least %g: 'snap=%g'"), new_snap, new_snap);
+           }
+       }
+@@ -1260,14 +1260,14 @@
+       if (strcmp(G_mapset(), "PERMANENT") == 0) {
+           G__put_window(&cur_wind, "", "DEFAULT_WIND");
+-          G_message(_("Default region for this location updated"));
++          G_message("%s", _("Default region for this location updated"));
+       }
+       G_put_window(&cur_wind);
+-      G_message(_("Region for the current mapset updated"));
++      G_message("%s", _("Region for the current mapset updated"));
+     }
+     if (with_z && !z_flag->answer)
+-      G_warning(_("Input data contains 3D features. Created vector is 2D only, "
++      G_warning("%s", _("Input data contains 3D features. Created vector is 2D only, "
+                  "use -z flag to import 3D vector"));
+     exit(EXIT_SUCCESS);
+--- grass-6.4.3/vector/v.external/main.c.orig  2011-04-23 11:52:11.000000000 +0200
++++ grass-6.4.3/vector/v.external/main.c       2014-06-01 15:58:15.751768680 +0200
+@@ -88,12 +88,12 @@
+       exit(EXIT_FAILURE);
+     if (!out_opt->answer && layer_opt->answer)
+-      G_fatal_error(_("Output vector name was not specified"));
++      G_fatal_error("%s", _("Output vector name was not specified"));
+     /* Open OGR DSN */
+     Ogr_ds = OGROpen(dsn_opt->answer, FALSE, NULL);
+     if (Ogr_ds == NULL)
+-      G_fatal_error(_("Cannot open data source"));
++      G_fatal_error("%s", _("Cannot open data source"));
+     /* Make a list of available layers */
+     nlayers = OGR_DS_GetLayerCount(Ogr_ds);
+--- grass-6.4.3/vector/v.digit/driver.c.orig   2013-04-20 11:52:14.000000000 +0200
++++ grass-6.4.3/vector/v.digit/driver.c        2014-06-01 15:58:34.418434958 +0200
+@@ -79,7 +79,7 @@
+     /* Set the map region associated with graphics frame */
+     G_get_set_window(&region);
+     if (G_set_window(&region) < 0)
+-      G_fatal_error(_("Can't set window"));
++      G_fatal_error("%s", _("Can't set window"));
+     /* Determine conversion factors */
+     if (D_do_conversions(&region, t, b, l, r))
+--- grass-6.4.3/vector/v.digit/generate.c.orig 2012-09-01 11:52:27.000000000 +0200
++++ grass-6.4.3/vector/v.digit/generate.c      2014-06-04 21:00:42.025987920 +0200
+@@ -74,7 +74,7 @@
+     G_debug(2, "Open driver");
+     driver = db_start_driver(drvname);
+     if (driver == NULL) {
+-      G_warning(_("Cannot open driver"));
++      G_warning("%s", _("Cannot open driver"));
+       sprintf(buf, _("Cannot open driver '%s'<BR>"),
+               escape_tcl_string(drvname));
+       *form = G_store(buf);
+@@ -86,7 +86,7 @@
+     db_set_handle(&handle, dbname, NULL);
+     G_debug(2, "Open database");
+     if (db_open_database(driver, &handle) != DB_OK) {
+-      G_warning(_("Cannot open database"));
++      G_warning("%s", _("Cannot open database"));
+       db_shutdown_driver(driver);
+       sprintf(buf, _("Cannot open database '%s' by driver '%s'<BR>"),
+               escape_tcl_string(dbname), escape_tcl_string(drvname));
+@@ -103,7 +103,7 @@
+     G_debug(2, "%s", buf);
+     db_set_string(&sql, buf);
+     if (db_open_select_cursor(driver, &sql, &cursor, DB_SEQUENTIAL) != DB_OK) {
+-      G_warning(_("Cannot open select cursor"));
++      G_warning("%s", _("Cannot open select cursor"));
+       db_close_database(driver);
+       db_shutdown_driver(driver);
+       sprintf(buf,
+@@ -118,7 +118,7 @@
+     table = db_get_cursor_table(&cursor);
+     if (db_fetch(&cursor, DB_NEXT, &more) != DB_OK) {
+-      G_warning(_("Cannot fetch next record"));
++      G_warning("%s", _("Cannot fetch next record"));
+       db_close_cursor(&cursor);
+       db_close_database(driver);
+       db_shutdown_driver(driver);
+@@ -127,7 +127,7 @@
+     }
+     if (!more) {
+-      G_warning(_("No database record"));
++      G_warning("%s", _("No database record"));
+       if (format == F_HTML) {
+           *form = G_store("No record selected.<BR>");
+       }
+--- grass-6.4.3/vector/v.digit/attr.c.orig     2012-09-01 11:52:27.000000000 +0200
++++ grass-6.4.3/vector/v.digit/attr.c  2014-06-07 16:08:49.184283735 +0200
+@@ -91,7 +91,7 @@
+           G_debug(2, "Record already existed.");
+       }
+       else if (ret == -1) {
+-          G_warning(_("Cannot create new record."));
++          G_warning("%s", _("Cannot create new record."));
+       }
+     }
+--- grass-6.4.3/vector/v.digit/c_face.c.orig   2012-09-01 11:52:27.000000000 +0200
++++ grass-6.4.3/vector/v.digit/c_face.c        2014-06-07 22:39:20.757128684 +0200
+@@ -279,7 +279,7 @@
+     }
+     if (db_create_index2(driver, Fi->table, argv[3]) != DB_OK) {
+-      G_warning(_("Cannot create index"));
++      G_warning("%s", _("Cannot create index"));
+       db_set_string(&err, _("Cannot create index:\n"));
+       db_append_string(&err, db_get_error_msg());
+       db_close_database(driver);
+--- grass-6.4.3/vector/v.digit/main.c.orig     2013-04-20 11:52:14.000000000 +0200
++++ grass-6.4.3/vector/v.digit/main.c  2014-06-08 09:31:05.712980281 +0200
+@@ -158,7 +158,7 @@
+           Vect_open_new(&Map, map_opt->answer, 0);
+           Vect_build(&Map);
+           Vect_close(&Map);
+-          G_message(_("New empty map created."));
++          G_message("%s", _("New empty map created."));
+           Vect_open_update(&Map, map_opt->answer, G_mapset());
+       }
+       else {
+--- grass-6.4.3/vector/v.digit/line.c.orig     2012-09-01 11:52:27.000000000 +0200
++++ grass-6.4.3/vector/v.digit/line.c  2014-06-08 10:18:43.236254052 +0200
+@@ -188,7 +188,7 @@
+               }
+           }
+           if (Vect_append_point(nl->Points, x, y, 0) == -1) {
+-              G_warning(_("Out of memory! Point not added."));
++              G_warning("%s", _("Out of memory! Point not added."));
+               return 0;
+           }
+@@ -243,7 +243,7 @@
+               updated_lines_and_nodes_erase_refresh_display();
+           }
+           else
+-              G_warning(_("Less than 2 points for line -> nothing written"));
++              G_warning("%s", _("Less than 2 points for line -> nothing written"));
+           return 1;
+       }
+--- grass-6.4.3/vector/v.digit/form.c.orig     2012-09-01 11:52:27.000000000 +0200
++++ grass-6.4.3/vector/v.digit/form.c  2014-06-08 11:01:30.712867205 +0200
+@@ -94,7 +94,7 @@
+     /* Check if all internal values are set */
+     if (Drvname == NULL || Dbname == NULL || Tblname == NULL || Key == NULL) {
+-      G_warning(_("db connection was not set by form"));
++      G_warning("%s", _("db connection was not set by form"));
+       sprintf(buf, "set submit_msg \"db connection was not set by form.\"");
+       Tcl_Eval(interp, buf);
+       Tcl_Eval(interp, "set submit_result 0");
+@@ -105,7 +105,7 @@
+     G_debug(2, "Open driver");
+     driver = db_start_driver(Drvname);
+     if (driver == NULL) {
+-      G_warning(_("Cannot open driver"));
++      G_warning("%s", _("Cannot open driver"));
+       sprintf(buf, "set submit_msg \"Cannot open driver '%s'\"", Drvname);
+       Tcl_Eval(interp, buf);
+       Tcl_Eval(interp, "set submit_result 0");
+@@ -117,7 +117,7 @@
+     db_set_handle(&handle, Dbname, NULL);
+     G_debug(2, "Open database");
+     if (db_open_database(driver, &handle) != DB_OK) {
+-      G_warning(_("Cannot open database"));
++      G_warning("%s", _("Cannot open database"));
+       db_shutdown_driver(driver);
+       sprintf(buf,
+               "set submit_msg \"Cannot open database '%s' by driver '%s'\"",
+@@ -130,7 +130,7 @@
+     db_set_string(&table_name, Tblname);
+     if (db_describe_table(driver, &table_name, &table) != DB_OK) {
+-      G_warning(_("Cannot describe table"));
++      G_warning("%s", _("Cannot describe table"));
+       db_shutdown_driver(driver);
+       db_close_database(driver);
+       sprintf(buf, "set submit_msg \"Cannot describe table '%s'\"",
+@@ -159,7 +159,7 @@
+           }
+       }
+       if (!found && (G_strcasecmp(Columns[i].name, F_ENCODING) != 0)) {
+-          G_warning(_("Cannot find column type"));
++          G_warning("%s", _("Cannot find column type"));
+           db_close_database(driver);
+           db_shutdown_driver(driver);
+           sprintf(buf, "set submit_msg \"Cannot find column type\"");
+@@ -225,7 +225,7 @@
+                                       buf, 2000, NULL, NULL, NULL);
+               if (ret != TCL_OK) {
+-                  G_warning(_("Could not convert UTF to external."));
++                  G_warning("%s", _("Could not convert UTF to external."));
+                   db_set_string(&strval, Columns[i].value);
+               }
+               else {
+@@ -253,7 +253,7 @@
+     db_shutdown_driver(driver);
+     if (ret != DB_OK) {
+-      G_warning(_("Cannot update table"));
++      G_warning("%s", _("Cannot update table"));
+       Tcl_VarEval(interp, "set submit_msg \"Cannot update table:\n",
+                   db_get_error_msg(), "\"", NULL);
+       Tcl_Eval(interp, "set submit_result 0");
+--- grass-6.4.3/vector/v.label.sa/labels.c.orig        2009-09-05 11:53:12.000000000 +0200
++++ grass-6.4.3/vector/v.label.sa/labels.c     2014-06-02 19:21:49.099713270 +0200
+@@ -77,7 +77,7 @@
+     layer = atoi(p->layer->answer);
+     fi = Vect_get_field(&Map, layer);
+     if (fi == NULL)
+-      G_fatal_error(_("Unable to get layer info for vector map"));
++      G_fatal_error("%s", _("Unable to get layer info for vector map"));
+     driver = db_start_driver_open_database(fi->driver, fi->database);
+     if (driver == NULL)
+       G_fatal_error(_("Unable to open database <%s> by driver <%s>"),
+@@ -89,7 +89,7 @@
+     /* initialize FT 2 library */
+     if (FT_Init_FreeType(&library))
+-      G_fatal_error(_("Unable to initialise FreeType"));
++      G_fatal_error("%s", _("Unable to initialise FreeType"));
+     font_cap = find_font_from_freetypecap(p->font->answer);
+     if (font_cap == NULL)
+       G_fatal_error(_("Unable to find font '%s'\n"), p->font->answer);
+@@ -98,9 +98,9 @@
+                     p->font->answer);
+     error = FT_New_Face(library, font_cap->path, 0, &face);
+     if (error == FT_Err_Unknown_File_Format)
+-      G_fatal_error(_("Font file format is not supported by FreeType"));
++      G_fatal_error("%s", _("Font file format is not supported by FreeType"));
+     else if (error)
+-      G_fatal_error(_("Font file can not be loaded"));
++      G_fatal_error("%s", _("Font file can not be loaded"));
+     p->font->answer = G_store(font_cap->name);
+     free_freetypecap(font_cap);
+@@ -109,7 +109,7 @@
+     /* use 1 point = 1 map unit */
+     if (FT_Set_Char_Size(face, (int)((font_size) * 64.0), 0, 100, 100))
+-      G_fatal_error(_("Unable to set font size"));
++      G_fatal_error("%s", _("Unable to set font size"));
+     /* start reading the map */
+     while (1) {
+@@ -130,7 +130,7 @@
+                   (void *)labels, sizeof(label_t) * label_sz);
+           labels = realloc(labels, sizeof(label_t) * label_sz);
+           if (labels == NULL) {
+-              G_fatal_error(_("Cannot allocate more memory"));
++              G_fatal_error("%s", _("Cannot allocate more memory"));
+           }
+       }
+@@ -143,7 +143,7 @@
+       type = Vect_read_next_line(&Map, Points, Cats);
+       if (type == -1)
+-          G_fatal_error(_("Unable to read vector map"));
++          G_fatal_error("%s", _("Unable to read vector map"));
+       if (type == -2)
+           break;              /* EOF */
+       if (!(legal_types & type))
+@@ -171,7 +171,7 @@
+       if (db_open_select_cursor(driver, &query, &cursor, DB_SEQUENTIAL) !=
+           DB_OK)
+-          G_fatal_error(_("Unable to select attributes"));
++          G_fatal_error("%s", _("Unable to select attributes"));
+       db_free_string(&query);
+       nrows = db_get_num_rows(&cursor);
+       if (nrows < 1) {
+--- grass-6.4.3/visualization/nviz/src/nviz_init.c.orig        2013-04-20 11:52:17.000000000 +0200
++++ grass-6.4.3/visualization/nviz/src/nviz_init.c     2014-06-02 19:22:42.126378832 +0200
+@@ -154,7 +154,7 @@
+     /* please remove before GRASS 7 released */
+     if (verbose->answer) {
+         putenv("GRASS_VERBOSE=3");
+-        G_warning(_("The '-v' flag is superseded and will be removed "
++        G_warning("%s", _("The '-v' flag is superseded and will be removed "
+                     "in future. Please use '--verbose' instead."));
+     }
+@@ -284,7 +284,7 @@
+       }
+       if (ee != cc)
+           G_fatal_error
+-              (_("Number of elevation files does not match number of colors files"));
++              ("%s", _("Number of elevation files does not match number of colors files"));
+     }
+     if (elev->answers) {
+@@ -295,7 +295,7 @@
+           arglist[2] = elev->answers[i];
+           if (Nnew_map_obj_cmd(data, interp, 3, arglist) != TCL_OK) {
+-              G_warning(_("Loading data failed"));
++              G_warning("%s", _("Loading data failed"));
+               continue;
+           }
+@@ -408,7 +408,7 @@
+       strstr(argv0, "script_play") != NULL ||
+       strstr(argv0, "script_get_line") != NULL ||
+       strstr(argv0, "script_file_tools") != NULL) {
+-      G_message(_("Entering script mode ..."));
++      G_message("%s", _("Entering script mode ..."));
+       script_mode = 1;
+       argv = "";
+     }
+--- grass-6.4.3/visualization/xganim/Clr_table.c.orig  2008-11-25 02:31:39.000000000 +0100
++++ grass-6.4.3/visualization/xganim/Clr_table.c       2014-06-02 19:23:14.919711481 +0200
+@@ -240,7 +240,7 @@
+       if (y > 2 && y < n_colors)
+           y = try_get_grays(cmap, y);
+       if (y < 2)
+-          G_fatal_error(_("Unable to get sufficient gray shades."));
++          G_fatal_error("%s", _("Unable to get sufficient gray shades."));
+       NCOLORS = y;
+@@ -257,7 +257,7 @@
+       /* now see how many we can actually get */
+       while (!try_get_colors(cmap, r, g, b))
+           if (!get_fewer_levels(&r, &g, &b))
+-              G_fatal_error(_("Unable to get sufficient colors."));
++              G_fatal_error("%s", _("Unable to get sufficient colors."));
+       NCOLORS = r * g * b;
+@@ -270,7 +270,7 @@
+       break;
+     case DirectColor:
+-      G_warning(_("Using private colormap for DirectColor visual."));
++      G_warning("%s", _("Using private colormap for DirectColor visual."));
+       /* free any previously-allocated Colormap */
+       if (cmap != DefaultColormap(dpy, scrn))
+--- grass-6.4.3/visualization/xganim/main.c.orig       2008-11-25 02:31:39.000000000 +0100
++++ grass-6.4.3/visualization/xganim/main.c    2014-06-04 21:01:52.375986451 +0200
+@@ -381,16 +381,16 @@
+               voidc = (DCELL *) dcell;
+           else
+               /* should not reach here */
+-              G_fatal_error(_("Unable to determine raster cell type"));
++              G_fatal_error("%s", _("Unable to determine raster cell type"));
+           ret = G_read_colors(name, mapset, &colors);
+           if (ret < 0)
+-              G_fatal_error(_("Unable to read color file"));
++              G_fatal_error("%s", _("Unable to read color file"));
+           for (row = 0; row < vrows; row++) {
+               if (G_get_raster_row
+                   (fd, (void *)voidc, (int)(row / vscale), rtype) < 0)
+-                  G_fatal_error(_("Unable to read raster row"));
++                  G_fatal_error("%s", _("Unable to read raster row"));
+               rowoff = (vyoff + row) * ncols;
+               G_lookup_raster_colors((void *)voidc, tr, tg, tb, tset, tsiz,
+@@ -541,7 +541,7 @@
+     }
+     if (NULL == (tf = fopen(tfile, "r")))
+-      G_warning(_("Error reading wildcard"));
++      G_warning("%s", _("Error reading wildcard"));
+     else {
+       while (NULL != fgets(buf, 512, tf)) {
+           /* replace newline with null */
index 329bd5fce0a0830b7985fad2f14e25e8d4e4be96..84d8c9eb53bed8621eb6f78813b1929fe5c5bbb7 100644 (file)
@@ -1,37 +1,41 @@
 # TODO
 # - use system tk-BWidget instead of bundled 1.2.1 (lib/external/bwidget)
+# - openDWG
 #
 # Conditional build, see http://grass.itc.it/grass61/source/REQUIREMENTS.html
 # for description of optional requirements.
-%bcond_without tcl     # disable gui and nviz
-%bcond_without mysql   # disable MySQL support
-%bcond_without odbc    # disable unixODBC support
-%bcond_without xanim   # disable xanim module
+%bcond_without tcl     # GUI and nviz
+%bcond_without mysql   # MySQL support
+%bcond_without odbc    # unixODBC support
+%bcond_without glw     # GLw interface
+%bcond_without xanim   # xanim module
 
 Summary:       The Geographic Resources Analysis Support System
 Summary(pl.UTF-8):     System obsługujący analizę zasobów geograficznych
 Name:          grass
-Version:       6.4.2
+Version:       6.4.3
 Release:       1
 Epoch:         1
 License:       GPL v2+
 Group:         X11/Applications
 Source0:       http://grass.osgeo.org/grass64/source/%{name}-%{version}.tar.gz
-# Source0-md5: d3398d6b1e3a2ef19cfb6e39a5ae9919
+# Source0-md5: d82d11b96e1ca1e23078b7657293bf22
 Patch0:                %{name}-soname.patch
 Patch1:                ncurses.patch
 Patch2:                %{name}-ffmpeg.patch
 Patch3:                %{name}-ac.patch
+Patch4:                %{name}-format.patch
 URL:           http://grass.osgeo.org/
 %{?with_tcl:BuildRequires:     OpenGL-GLU-devel}
-BuildRequires: OpenGL-GLw-devel
+%{?with_glw:BuildRequires:     OpenGL-GLw-devel}
 BuildRequires: autoconf >= 2.13
 BuildRequires: automake
 BuildRequires: bison
 BuildRequires: blas-devel
 BuildRequires: cairo-devel
+# libavcodec libavformat libavutil libswscale
 BuildRequires: ffmpeg-devel
-BuildRequires: fftw3-devel
+BuildRequires: fftw3-devel >= 3
 BuildRequires: flex
 BuildRequires: freetype-devel >= 2.0.0
 BuildRequires: gcc-fortran
@@ -44,22 +48,28 @@ BuildRequires:      libjpeg-devel
 BuildRequires: libpng-devel
 BuildRequires: libstdc++-devel
 BuildRequires: libtiff-devel
-BuildRequires: man
+# man or man-db
+BuildRequires: /usr/bin/man
 %{?with_xanim:BuildRequires:   motif-devel}
 %{?with_mysql:BuildRequires:   mysql-devel}
 BuildRequires: ncurses-devel
+BuildRequires: pkgconfig
 BuildRequires: postgresql-backend-devel
 BuildRequires: postgresql-devel
 BuildRequires: proj-devel >= 4.4.6
 BuildRequires: proj-progs
 BuildRequires: python-devel >= 1:2.3
+BuildRequires: python-wxPython
 BuildRequires: readline-devel
 BuildRequires: sed >= 4.0
 BuildRequires: sqlite3-devel >= 3.0
 %{?with_tcl:BuildRequires:     tcl-devel >= 8.4}
 %{?with_tcl:BuildRequires:     tk-devel >= 8.4}
 %{?with_odbc:BuildRequires:    unixODBC-devel}
-BuildRequires: wxGTK2-unicode-devel
+BuildRequires: wxGTK2-unicode-devel >= 2.8.1
+BuildRequires: xorg-lib-libX11-devel
+BuildRequires: xorg-lib-libXext-devel
+BuildRequires: xorg-lib-libXt-devel
 BuildRequires: zlib-devel
 # R language?
 Requires:      proj >= 4.4.6
@@ -153,6 +163,7 @@ Pliki nagłówkowe i biblioteki statyczne systemu GRASS.
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
 
 cp -f lib/external/bwidget/CHANGES.txt bwidget.CHANGES.TXT
 cp -f lib/external/bwidget/README.grass bwidget.README.grass
@@ -176,6 +187,8 @@ CPPFLAGS="-I/usr/include/ncurses"
        --with-ffmpeg-includes='/usr/include/libavcodec /usr/include/libavformat /usr/include/libswscale' \
        --with-freetype \
        --with-freetype-includes=/usr/include/freetype2 \
+       --with-geos=/usr/bin/geos-config \
+       %{?with_glw:--with-glw} \
        --with-lapack \
        %{?with_xanim:--with-motif} \
        %{?with_mysql:--with-mysql} \
@@ -191,7 +204,7 @@ CPPFLAGS="-I/usr/include/ncurses"
        --with-sqlite \
        --with%{!?with_tcl:out}-tcltk \
        --with-wxwidgets=/usr/bin/wx-gtk2-unicode-config
-# --with-glw requires Motif parts in -lGLw or -lGLwM
+
 %{__make}
 
 %install
@@ -312,6 +325,7 @@ rm -rf $RPM_BUILD_ROOT
 %lang(ko) %{_libdir}/grass-%{gver}/etc/msgs/ko.msg
 %lang(lv) %{_libdir}/grass-%{gver}/etc/msgs/lv.msg
 %lang(mr) %{_libdir}/grass-%{gver}/etc/msgs/mr.msg
+%lang(nl) %{_libdir}/grass-%{gver}/etc/msgs/nl.msg
 %lang(pl) %{_libdir}/grass-%{gver}/etc/msgs/pl.msg
 %lang(pt) %{_libdir}/grass-%{gver}/etc/msgs/pt.msg
 %lang(pt_BR) %{_libdir}/grass-%{gver}/etc/msgs/pt_br.msg
@@ -348,18 +362,30 @@ rm -rf $RPM_BUILD_ROOT
 %dir %{_libdir}/grass-%{gver}/etc/wxpython
 %{_libdir}/grass-%{gver}/etc/wxpython/README
 %{_libdir}/grass-%{gver}/etc/wxpython/compat
-%{_libdir}/grass-%{gver}/etc/wxpython/gis_set.py*
-%{_libdir}/grass-%{gver}/etc/wxpython/gui_modules
+%{_libdir}/grass-%{gver}/etc/wxpython/core
+%{_libdir}/grass-%{gver}/etc/wxpython/dbmgr
+%{_libdir}/grass-%{gver}/etc/wxpython/gcp
+%{_libdir}/grass-%{gver}/etc/wxpython/gmodeler
+%{_libdir}/grass-%{gver}/etc/wxpython/gui_core
 %{_libdir}/grass-%{gver}/etc/wxpython/icons
+%{_libdir}/grass-%{gver}/etc/wxpython/lmgr
+%{_libdir}/grass-%{gver}/etc/wxpython/location_wizard
+%{_libdir}/grass-%{gver}/etc/wxpython/mapdisp
+%{_libdir}/grass-%{gver}/etc/wxpython/modules
+%{_libdir}/grass-%{gver}/etc/wxpython/nviz
+%{_libdir}/grass-%{gver}/etc/wxpython/psmap
 %attr(755,root,root) %{_libdir}/grass-%{gver}/etc/wxpython/scripts
-%{_libdir}/grass-%{gver}/etc/wxpython/wxgui.py*
+%{_libdir}/grass-%{gver}/etc/wxpython/vdigit
+%{_libdir}/grass-%{gver}/etc/wxpython/wxplot
 %{_libdir}/grass-%{gver}/etc/wxpython/xml
+%{_libdir}/grass-%{gver}/etc/wxpython/gis_set.py*
+%{_libdir}/grass-%{gver}/etc/wxpython/wxgui.py*
 %{_libdir}/grass-%{gver}/fonts
 %attr(755,root,root) %{_libdir}/grass-%{gver}/scripts
 %dir %{_libdir}/grass-%{gver}/tools
+%attr(755,root,root) %{_libdir}/grass-%{gver}/tools/g.echo
+%attr(755,root,root) %{_libdir}/grass-%{gver}/tools/g.html2man
 %attr(755,root,root) %{_libdir}/grass-%{gver}/tools/mkhtml.sh
-%dir %{_libdir}/grass-%{gver}/tools/g.html2man
-%attr(755,root,root) %{_libdir}/grass-%{gver}/tools/g.html2man/g.html2man
 %{_mandir}/man1/cairodriver.1*
 %{_mandir}/man1/d.*.1*
 %{_mandir}/man1/databaseintro.1*
@@ -418,9 +444,11 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{_libdir}/grass-%{gver}/etc/nviz2.2/nviz
 %dir %{_libdir}/grass-%{gver}/etc/nviz2.2/msgs
 %lang(de) %{_libdir}/grass-%{gver}/etc/nviz2.2/msgs/de.msg
+%lang(fr) %{_libdir}/grass-%{gver}/etc/nviz2.2/msgs/fr.msg
 %lang(it) %{_libdir}/grass-%{gver}/etc/nviz2.2/msgs/it.msg
 %lang(ja) %{_libdir}/grass-%{gver}/etc/nviz2.2/msgs/ja.msg
 %lang(lv) %{_libdir}/grass-%{gver}/etc/nviz2.2/msgs/lv.msg
+%lang(nl) %{_libdir}/grass-%{gver}/etc/nviz2.2/msgs/nl.msg
 %lang(pl) %{_libdir}/grass-%{gver}/etc/nviz2.2/msgs/pl.msg
 %dir %{_libdir}/grass-%{gver}/etc/nviz2.2/scripts
 %attr(755,root,root) %{_libdir}/grass-%{gver}/etc/nviz2.2/scripts/*
index 3d0f7c4cbfcb11bcdbd9b924add810e2134ebee6..148c823a7890cd182eaed39757f0004c3c6abbc2 100644 (file)
@@ -14,25 +14,25 @@ also as regeneration fails, we change also configure
      AC_MSG_ERROR([*** Unable to locate curses library.])
      CURSESLIB=
  ])])
---- grass-6.4.2/configure.orig 2012-02-06 11:16:07.000000000 +0100
-+++ grass-6.4.2/configure      2012-10-20 12:49:39.603875329 +0200
-@@ -5758,12 +5758,12 @@
+--- grass-6.4.3/configure.orig 2013-07-27 20:44:57.000000000 +0200
++++ grass-6.4.3/configure      2014-05-18 18:30:25.673456894 +0200
+@@ -5718,12 +5718,12 @@
  
  echo "$ac_t""$CURSES_MAXY" 1>&6
  
 -echo $ac_n "checking for initscr in -lncurses""... $ac_c" 1>&6
--echo "configure:5763: checking for initscr in -lncurses" >&5
+-echo "configure:5723: checking for initscr in -lncurses" >&5
 +echo $ac_n "checking for initscr in -lncursesw""... $ac_c" 1>&6
-+echo "configure:5763: checking for initscr in -lncursesw" >&5
++echo "configure:5723: checking for initscr in -lncursesw" >&5
  ac_lib_var=`echo ncurses'_'initscr | sed 'y%./+-%__p_%'`
  
  ac_save_LIBS="$LIBS"
 -LIBS="-lncurses  $LIBS"
 +LIBS="-lncursesw  $LIBS"
  cat > conftest.$ac_ext <<EOF
- #line 5769 "configure"
+ #line 5729 "configure"
  #include "confdefs.h"
-@@ -5790,7 +5790,7 @@
+@@ -5750,7 +5750,7 @@
  
  if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
    echo "$ac_t""yes" 1>&6
@@ -41,7 +41,7 @@ also as regeneration fails, we change also configure
  else
    echo "$ac_t""no" 1>&6
  
-@@ -5826,7 +5826,7 @@
+@@ -5786,7 +5786,7 @@
  
  if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
    echo "$ac_t""yes" 1>&6
This page took 1.554966 seconds and 4 git commands to generate.