aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2010-04-17 13:27:15 +0000
committerSimon Tatham <anakin@pobox.com>2010-04-17 13:27:15 +0000
commit0a9b0a7384e664126a3af418f047ef627c7ac279 (patch)
treee2955dd11fd1d5c2ef98afc577f93636d03cd234
parent945d8f0a3a9bfe2702170a75484271c71931b2eb (diff)
downloadpuzzles-0a9b0a7384e664126a3af418f047ef627c7ac279.zip
puzzles-0a9b0a7384e664126a3af418f047ef627c7ac279.tar.gz
puzzles-0a9b0a7384e664126a3af418f047ef627c7ac279.tar.bz2
puzzles-0a9b0a7384e664126a3af418f047ef627c7ac279.tar.xz
Fix incorrect uses of ctype.h (passing it uncast chars, or other
things potentially not in the range 0..255). [originally from svn r8922]
-rw-r--r--filling.c2
-rw-r--r--magnets.c2
-rw-r--r--signpost.c2
-rw-r--r--singles.c2
4 files changed, 4 insertions, 4 deletions
diff --git a/filling.c b/filling.c
index 896fe41..b6d0ed1 100644
--- a/filling.c
+++ b/filling.c
@@ -1100,7 +1100,7 @@ static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds,
button = 0;
break;
default:
- if (!isdigit(button)) return NULL;
+ if (button < '0' || button > '9') return NULL;
button -= '0';
if (button > (w == 2 && h == 2? 3: max(w, h))) return NULL;
}
diff --git a/magnets.c b/magnets.c
index beeedf5..57bf37a 100644
--- a/magnets.c
+++ b/magnets.c
@@ -386,7 +386,7 @@ static char n2c(int num) { /* XXX cloned from singles.c */
}
static int c2n(char c) { /* XXX cloned from singles.c */
- if (isdigit(c))
+ if (isdigit((unsigned char)c))
return (int)(c - '0');
else if (c >= 'a' && c <= 'z')
return (int)(c - 'a' + 10);
diff --git a/signpost.c b/signpost.c
index b6db3a3..efed3f7 100644
--- a/signpost.c
+++ b/signpost.c
@@ -513,7 +513,7 @@ static void unpick_desc(game_params *params, char *desc,
}
c = *desc;
- if (isdigit(c)) {
+ if (isdigit((unsigned char)c)) {
num = (num*10) + (int)(c-'0');
if (num > state->n) {
msg = "Number too large";
diff --git a/singles.c b/singles.c
index d8016ff..c20d0cf 100644
--- a/singles.c
+++ b/singles.c
@@ -324,7 +324,7 @@ static char n2c(int num) {
}
static int c2n(char c) {
- if (isdigit(c))
+ if (isdigit((unsigned char)c))
return (int)(c - '0');
else if (c >= 'a' && c <= 'z')
return (int)(c - 'a' + 10);