]> git.pond.sub.org Git - empserver/commitdiff
Clean up how snxtitem() parses country names
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 20 Jul 2008 14:49:50 +0000 (10:49 -0400)
committerMarkus Armbruster <armbru@pond.sub.org>
Fri, 25 Jul 2008 12:16:38 +0000 (08:16 -0400)
Old code didn't check for natarg() failure, but relied on
sarg_type("-1") returning NS_UNDEF.

src/lib/subs/snxtitem.c

index 1d07bb417a81940eb1c9dee5ab951bf0d6dfdcba..e14464446ecaccd99fe37394fbdd1a950d1c026b 100644 (file)
@@ -55,11 +55,10 @@ snxtitem(struct nstr_item *np, int type, char *str)
 {
     struct range range;
     int list[NS_LSIZE];
-    int n;
+    int cnum, n;
     coord cx, cy;
     int dist;
     int flags;
-    char natnumber[16];
     char prompt[128];
     char buf[1024];
 
@@ -76,8 +75,11 @@ snxtitem(struct nstr_item *np, int type, char *str)
        return 0;
     }
     if (type == EF_NATION && isalpha(*str)) {
-       sprintf(natnumber, "%d", natarg(str, NULL));
-       str = natnumber;
+       cnum = natarg(str, NULL);
+       if (cnum < 0)
+           return 0;
+       sprintf(buf, "%d", cnum);
+       str = buf;
     }
     flags = ef_flags(type);
     switch (sarg_type(str)) {