Преглед на файлове

Use basic REs by default; add -e for extended REs

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@33305 15284696-431f-4ddb-bdfa-cd5b030d7da7
Glynn Clements преди 16 години
родител
ревизия
439f8c55cc
променени са 2 файла, в които са добавени 24 реда и са изтрити 5 реда
  1. 11 2
      general/g.mlist/main.c
  2. 13 3
      general/g.mremove/main.c

+ 11 - 2
general/g.mlist/main.c

@@ -48,6 +48,7 @@ int main(int argc, char *argv[])
     struct
     {
 	struct Flag *regex;
+	struct Flag *extended;
 	struct Flag *type;
 	struct Flag *mapset;
 	struct Flag *pretty;
@@ -115,6 +116,11 @@ int main(int argc, char *argv[])
     flag.regex = G_define_flag();
     flag.regex->key = 'r';
     flag.regex->description =
+	_("Use basic regular expressions instead of wildcards");
+
+    flag.extended = G_define_flag();
+    flag.extended->key = 'e';
+    flag.extended->description =
 	_("Use extended regular expressions instead of wildcards");
 
     flag.type = G_define_flag();
@@ -138,12 +144,15 @@ int main(int argc, char *argv[])
 
     G_free(buf);
 
-    if (flag.regex->answer)
+    if (flag.regex->answer && flag.extended->answer)
+	G_fatal_error(_("-r and -e are mutually exclusive"));
+
+    if (flag.regex->answer || flag.extended->answer)
 	pattern = opt.pattern->answer;
     else
 	pattern = wc2regex(opt.pattern->answer);
 
-    if (regcomp(&regex, pattern, REG_EXTENDED | REG_NOSUB))
+    if (regcomp(&regex, pattern, (flag.regex->answer ? 0 : REG_EXTENDED) | REG_NOSUB))
 	G_fatal_error(_("Unable to compile regular expression %s"), pattern);
     G_set_ls_filter(ls_filter, &regex);
 

+ 13 - 3
general/g.mremove/main.c

@@ -42,6 +42,7 @@ int main(int argc, char *argv[])
     struct
     {
 	struct Flag *regex;
+	struct Flag *extended;
 	struct Flag *force;
 	struct Flag *basemap;
     } flag;
@@ -62,6 +63,11 @@ int main(int argc, char *argv[])
     flag.regex = G_define_flag();
     flag.regex->key = 'r';
     flag.regex->description =
+	_("Use basic regular expressions instead of wildcards");
+
+    flag.extended = G_define_flag();
+    flag.extended->key = 'e';
+    flag.extended->description =
 	_("Use extended regular expressions instead of wildcards");
 
     flag.force = G_define_flag();
@@ -94,6 +100,9 @@ int main(int argc, char *argv[])
     if (G_parser(argc, argv))
 	exit(EXIT_FAILURE);
 
+    if (flag.regex->answer && flag.extended->answer)
+	G_fatal_error(_("-r and -e are mutually exclusive"));
+
     for (n = 0; n < nlist; n++) {
 	o = opt[n];
 	G_free((char *)o->gisprompt);
@@ -110,13 +119,14 @@ int main(int argc, char *argv[])
 		continue;
 	    rast = !G_strcasecmp(list[n].alias, "rast");
 	    for (i = 0; (name = opt[n]->answers[i]); i++) {
-		if (!flag.regex->answer)
+		if (!flag.regex->answer && !flag.extended->answer)
 		    name = wc2regex(name);
-		if (regcomp(&regex, name, REG_EXTENDED | REG_NOSUB))
+		if (regcomp(&regex, name,
+			    (flag.regex->answer ? 0 : REG_EXTENDED) | REG_NOSUB))
 		    G_fatal_error(_
 				  ("Unable to compile regular expression %s"),
 				  name);
-		if (!flag.regex->answer)
+		if (!flag.regex->answer && !flag.extended->answer)
 		    G_free(name);
 
 		G_set_ls_filter(ls_filter, &regex);