فهرست منبع

parser.c: check_either_or_inputs() minor changes

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@60715 15284696-431f-4ddb-bdfa-cd5b030d7da7
Huidae Cho 11 سال پیش
والد
کامیت
26e2552b8c
1فایلهای تغییر یافته به همراه41 افزوده شده و 46 حذف شده
  1. 41 46
      lib/gis/parser.c

+ 41 - 46
lib/gis/parser.c

@@ -1159,9 +1159,10 @@ static void check_tied_together_inputs()
 
 
 static void check_either_or_inputs()
 static void check_either_or_inputs()
 {
 {
-    int n_keys, len;
+    int n_keys, len, i, n;
     struct Option *opt;
     struct Option *opt;
     struct Flag *flag;
     struct Flag *flag;
+    char *err;
 
 
     G_debug(1, "check_exclusive(): Either-or options/flags "
     G_debug(1, "check_exclusive(): Either-or options/flags "
 	       "(group names ignored)");
 	       "(group names ignored)");
@@ -1188,58 +1189,52 @@ static void check_either_or_inputs()
 	flag = flag->next_flag;
 	flag = flag->next_flag;
     }
     }
 
 
-    if (n_keys > 0) {
-	int i;
+    if (n_keys == 0)
+	return;
 
 
-	for (i = 0; i < st->n_exclusive; i++) {
-	    if (st->exclusive[i].name[0] == '*')
-		break;
-	}
+    for (i = 0; i < st->n_exclusive; i++) {
+	if (st->exclusive[i].name[0] == '*')
+	    return;
+    }
 
 
-	if (i == st->n_exclusive) {
-	    int n;
-	    char *err;
+    err = G_malloc(len + 100);
+    sprintf(err, _("One or more of the following options/flags "
+		   "must be used: "));
 
 
-	    err = G_malloc(len + 100);
-	    sprintf(err, _("One or more of the following options/flags "
-			   "must be used: "));
-	    
-	    n = 0;
+    n = 0;
+    len = strlen(err);
+    opt = &st->first_option;
+    while (opt) {
+	if (has_either_or(opt->exclusive)) {
+	    n++;
+	    if (n <= n_keys - 2)
+		sprintf(err + len, "%s=, ", opt->key);
+	    else if (n == n_keys - 1)
+		sprintf(err + len, "%s= ", opt->key);
+	    else
+		sprintf(err + len, "or %s=", opt->key);
 	    len = strlen(err);
 	    len = strlen(err);
-	    opt = &st->first_option;
-	    while (opt) {
-		if (has_either_or(opt->exclusive)) {
-		    n++;
-		    if (n <= n_keys - 2)
-			sprintf(err + len, "%s=, ", opt->key);
-		    else if (n == n_keys - 1)
-			sprintf(err + len, "%s= ", opt->key);
-		    else
-			sprintf(err + len, "or %s=", opt->key);
-		    len = strlen(err);
-		}
-		opt = opt->next_opt;
-	    }
+	}
+	opt = opt->next_opt;
+    }
 
 
-	    flag = &st->first_flag;
-	    while (flag) {
-		if (has_either_or(flag->exclusive)) {
-		    n++;
-		    if (n <= n_keys - 2)
-			sprintf(err + len, "-%c, ", flag->key);
-		    else if (n == n_keys - 1)
-			sprintf(err + len, "-%c ", flag->key);
-		    else
-			sprintf(err + len, "or -%c", flag->key);
-		    len = strlen(err);
-		}
-		flag = flag->next_flag;
-	    }
-	    
-	    append_error(err);
-	    G_free(err);
+    flag = &st->first_flag;
+    while (flag) {
+	if (has_either_or(flag->exclusive)) {
+	    n++;
+	    if (n <= n_keys - 2)
+		sprintf(err + len, "-%c, ", flag->key);
+	    else if (n == n_keys - 1)
+		sprintf(err + len, "-%c ", flag->key);
+	    else
+		sprintf(err + len, "or -%c", flag->key);
+	    len = strlen(err);
 	}
 	}
+	flag = flag->next_flag;
     }
     }
+
+    append_error(err);
+    G_free(err);
 }
 }
 
 
 static void set_flag(int f)
 static void set_flag(int f)