summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOndrej Zajicek (work) <santiago@crfreenet.org>2017-05-23 18:39:20 +0200
committerOndrej Zajicek (work) <santiago@crfreenet.org>2017-05-23 18:39:20 +0200
commitc72b660b7423b0fb687794b722884cd6e5e6c562 (patch)
treed9ae0e8198b7148f7a04bd779e90e286668d9b9a
parent78e4dac993ad018bee98e245f6e858e18cc5db8a (diff)
Client: Fix isspace() calls
Function isspace() expects to get *unsigned* chars (encoded as ints), not that it matters for plain ASCII.
-rw-r--r--client/commands.c22
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)