From 4859d603c48dc3d8f10e1a233dca4779dea1783e Mon Sep 17 00:00:00 2001 From: Christian Schlittchen Date: Thu, 26 Sep 2002 12:21:25 +0000 Subject: [PATCH] =?UTF-8?q?-=20Bugfixes=20mapper=20-=20atoi36=20weniger=20?= =?UTF-8?q?empfindlich=20gemacht:=20Ein=20atoi36("abcd)")=20gibt=20jetzt?= =?UTF-8?q?=20=09nicht=20mehr=20Null,=20sondern=20den=20Wert=20bis=20zur?= =?UTF-8?q?=20Klammer.=20Wichtig=20=09f=C3=BCr=20mapper.=20K=C3=B6nnte=20N?= =?UTF-8?q?ebenwirkungen=20haben.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/util/base36.c | 5 +++-- src/mapper/map_modify.c | 2 +- src/mapper/map_units.c | 4 ++-- src/mapper/mapper.c | 1 + 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/common/util/base36.c b/src/common/util/base36.c index b55718afb..80ec066e2 100644 --- a/src/common/util/base36.c +++ b/src/common/util/base36.c @@ -40,10 +40,11 @@ atoi36(const char * str) if (isupper((int)*s)) i = i*36 + (*s)-'A' + 10; else if (islower((int)*s)) i=i*36 + (*s)-'a' + 10; else if (isdigit((int)*s)) i=i*36 + (*s)-'0'; - else return 0; + else + break; ++s; } - if (i<0 || (!isspace(*s) && *s!='\0')) return 0; + if (i<0) return 0; return i; } diff --git a/src/mapper/map_modify.c b/src/mapper/map_modify.c index 8d79ab58f..f5caf51e2 100644 --- a/src/mapper/map_modify.c +++ b/src/mapper/map_modify.c @@ -624,7 +624,7 @@ NeueBurg(region * r) b = new_building(bt_find(oldbuildings[q]), r, NULL); - b->size = map_input(win, 2, 2, "Größe", 1, 999, 1); + b->size = map_input(win, 2, 2, "Grösse", 1, 99999, 1); strcpy(buf, my_input(win, 2, 3, "Name: ", NULL)); if (strlen(buf) > 0) diff --git a/src/mapper/map_units.c b/src/mapper/map_units.c index 9ee9aa27b..4b0b22714 100644 --- a/src/mapper/map_units.c +++ b/src/mapper/map_units.c @@ -1206,7 +1206,7 @@ showunits(region * r) modified = 1; if ((s = strchr(pointer->s, '('))!=NULL) { s++; - f = atoi(s); + f = atoi36(s); switch (pointer->s[0]) { case '\002': b = findbuilding(f); @@ -1414,7 +1414,7 @@ showunits(region * r) clipregion = r; break; case '\002': - f = atoi(s); + f = atoi36(s); b = findbuilding(f); for (x = r->units; x; x = x->next) if (x->building == b && fval(x, FL_OWNER)) diff --git a/src/mapper/mapper.c b/src/mapper/mapper.c index 1cdc6fd73..8a8fa7273 100644 --- a/src/mapper/mapper.c +++ b/src/mapper/mapper.c @@ -1055,6 +1055,7 @@ movearound(int rx, int ry) { break; case 0x2: make_ocean_block(rx, ry); + modified = 1; ch = -9; break; case 'a':