From bd34378900a8b1683baab12cd33a43adddf2e9d0 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sun, 20 Jul 2008 10:49:50 -0400 Subject: [PATCH] Clean up how snxtitem() parses country names Old code didn't check for natarg() failure, but relied on sarg_type("-1") returning NS_UNDEF. --- src/lib/subs/snxtitem.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lib/subs/snxtitem.c b/src/lib/subs/snxtitem.c index 1d07bb41..e1446444 100644 --- a/src/lib/subs/snxtitem.c +++ b/src/lib/subs/snxtitem.c @@ -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)) {