Kaynağa Gözat

libgis: don't ignore global options in G_recreate_command()

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@66940 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 9 yıl önce
ebeveyn
işleme
d705e1368b
1 değiştirilmiş dosya ile 29 ekleme ve 0 silme
  1. 29 0
      lib/gis/parser.c

+ 29 - 0
lib/gis/parser.c

@@ -330,6 +330,7 @@ int G_parser(int argc, char **argv)
     st->pgm_path = tmp_name;
     st->n_errors = 0;
     st->error = NULL;
+    st->module_info.verbose = G_verbose_std();
     i = strlen(tmp_name);
     while (--i >= 0) {
 	if (G_is_dirsep(tmp_name[i])) {
@@ -645,6 +646,34 @@ char *G_recreate_command(void)
     strcpy(cur, tmp);
     cur += len;
 
+    if (st->overwrite) {
+        slen = strlen(" --overwrite");
+        if (len + slen >= nalloced) {
+            nalloced += (1024 > len) ? 1024 : len + 1;
+            buff = G_realloc(buff, nalloced);
+        }
+        strcpy(cur, " --overwrite");
+        cur += slen;
+        len += slen;
+    }
+
+    if (st->module_info.verbose != G_verbose_std()) {
+        char *sflg;
+        if (st->module_info.verbose == G_verbose_max())
+            sflg = " --verbose";
+        else
+            sflg = " --quiet";
+
+        slen = strlen(sflg);
+        if (len + slen >= nalloced) {
+            nalloced += (1024 > len) ? 1024 : len + 1;
+            buff = G_realloc(buff, nalloced);
+        }
+        strcpy(cur, sflg);
+        cur += slen;
+        len += slen;
+    }
+
     if (st->n_flags) {
 	flag = &st->first_flag;
 	while (flag) {