diff options
author | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2017-05-23 18:39:20 +0200 |
---|---|---|
committer | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2017-05-23 18:39:20 +0200 |
commit | c72b660b7423b0fb687794b722884cd6e5e6c562 (patch) | |
tree | d9ae0e8198b7148f7a04bd779e90e286668d9b9a /client | |
parent | 78e4dac993ad018bee98e245f6e858e18cc5db8a (diff) |
Client: Fix isspace() calls
Function isspace() expects to get *unsigned* chars (encoded as ints),
not that it matters for plain ASCII.
Diffstat (limited to 'client')
-rw-r--r-- | client/commands.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/client/commands.c b/client/commands.c index 29e71418..0da7d835 100644 --- a/client/commands.c +++ b/client/commands.c @@ -36,6 +36,8 @@ struct cmd_node { static struct cmd_node cmd_root; +#define isspace_(X) isspace((unsigned char) (X)) + void cmd_build_tree(void) { @@ -53,7 +55,7 @@ cmd_build_tree(void) while (*c) { char *d = c; - while (*c && !isspace(*c)) + while (*c && !isspace_(*c)) c++; for(new=old->son; new; new=new->sibling) if (new->len == c-d && !memcmp(new->token, d, c-d)) @@ -71,7 +73,7 @@ cmd_build_tree(void) new->prio = (new->len == 3 && (!memcmp(new->token, "roa", 3) || !memcmp(new->token, "rip", 3))) ? 0 : 1; /* Hack */ } old = new; - while (isspace(*c)) + while (isspace_(*c)) c++; } if (cmd->is_real_cmd) @@ -132,7 +134,7 @@ cmd_list_ambiguous(struct cmd_node *root, char *cmd, int len) struct cmd_node *m; for(m=root->son; m; m=m->sibling) - if (m->len > len && !memcmp(m->token, cmd, len)) + if (m->len > len && !memcmp(m->token, cmd, len)) cmd_display_help(m->help, m->cmd); } @@ -147,13 +149,13 @@ cmd_help(char *cmd, int len) n = &cmd_root; while (cmd < end) { - if (isspace(*cmd)) + if (isspace_(*cmd)) { cmd++; continue; } z = cmd; - while (cmd < end && !isspace(*cmd)) + while (cmd < end && !isspace_(*cmd)) cmd++; m = cmd_find_abbrev(n, z, cmd-z, &ambig); if (ambig) @@ -222,20 +224,20 @@ cmd_complete(char *cmd, int len, char *buf, int again) int ambig, cnt = 0, common; /* Find the last word we want to complete */ - for(fin=end; fin > start && !isspace(fin[-1]); fin--) + for(fin=end; fin > start && !isspace_(fin[-1]); fin--) ; /* Find the context */ n = &cmd_root; while (cmd < fin && n->son) { - if (isspace(*cmd)) + if (isspace_(*cmd)) { cmd++; continue; } z = cmd; - while (cmd < fin && !isspace(*cmd)) + while (cmd < fin && !isspace_(*cmd)) cmd++; m = cmd_find_abbrev(n, z, cmd-z, &ambig); if (ambig) @@ -290,13 +292,13 @@ cmd_expand(char *cmd) n = &cmd_root; while (*c) { - if (isspace(*c)) + if (isspace_(*c)) { c++; continue; } b = c; - while (*c && !isspace(*c)) + while (*c && !isspace_(*c)) c++; m = cmd_find_abbrev(n, b, c-b, &ambig); if (!m) |