From e93ed4323c03b94653cda6ba5881c0081c3d905f Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 11 Mar 2003 09:30:31 +0000 Subject: [PATCH] Never pass a `char' to a ctype function. I had relied on gcc -Wall letting me know about instances of this, but it turns out that my ctype.h explicitly casts input values to `int' to evade the `subscript has type char' warning, so it had been carefully not letting me know! Found them all by compiling with a doctored ctype.h, and hopefully fixed them all too. git-svn-id: svn://svn.tartarus.org/sgt/putty@2927 cda61777-01e9-0310-a592-d414129be87e --- ldisc.c | 4 ++-- proxy.c | 6 +++--- rlogin.c | 2 +- unix/uxstore.c | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ldisc.c b/ldisc.c index d569f112..91af0aca 100644 --- a/ldisc.c +++ b/ldisc.c @@ -164,8 +164,8 @@ void ldisc_send(void *handle, char *buf, int len, int interactive) bsb(ldisc, plen(ldisc, ldisc->buf[ldisc->buflen - 1])); ldisc->buflen--; if (ldisc->buflen > 0 && - isspace(ldisc->buf[ldisc->buflen - 1]) && - !isspace(ldisc->buf[ldisc->buflen])) + isspace((unsigned char)ldisc->buf[ldisc->buflen-1]) && + !isspace((unsigned char)ldisc->buf[ldisc->buflen])) break; } break; diff --git a/proxy.c b/proxy.c index 0a61741e..f3342495 100644 --- a/proxy.c +++ b/proxy.c @@ -281,7 +281,7 @@ static int proxy_for_destination (SockAddr addr, char *hostname, int port, while (exclude_list[s]) { while (exclude_list[s] && - (isspace(exclude_list[s]) || + (isspace((unsigned char)exclude_list[s]) || exclude_list[s] == ',')) s++; if (!exclude_list[s]) break; @@ -289,7 +289,7 @@ static int proxy_for_destination (SockAddr addr, char *hostname, int port, e = s; while (exclude_list[e] && - (isalnum(exclude_list[e]) || + (isalnum((unsigned char)exclude_list[e]) || exclude_list[e] == '-' || exclude_list[e] == '.' || exclude_list[e] == '*')) e++; @@ -325,7 +325,7 @@ static int proxy_for_destination (SockAddr addr, char *hostname, int port, /* Make sure we really have reached the next comma or end-of-string */ while (exclude_list[s] && - !isspace(exclude_list[s]) && + !isspace((unsigned char)exclude_list[s]) && exclude_list[s] != ',') s++; } diff --git a/rlogin.c b/rlogin.c index 89a2bfe1..7b13a789 100644 --- a/rlogin.c +++ b/rlogin.c @@ -169,7 +169,7 @@ static char *rlogin_init(void *frontend_handle, void **backend_handle, sk_write(rlogin->s, cfg->termtype, strlen(cfg->termtype)); sk_write(rlogin->s, "/", 1); - for (p = cfg->termspeed; isdigit(*p); p++) continue; + for (p = cfg->termspeed; isdigit((unsigned char)*p); p++) continue; sk_write(rlogin->s, cfg->termspeed, p - cfg->termspeed); rlogin->bufsize = sk_write(rlogin->s, &z, 1); } diff --git a/unix/uxstore.c b/unix/uxstore.c index 6035113b..5da6ed6a 100644 --- a/unix/uxstore.c +++ b/unix/uxstore.c @@ -80,7 +80,7 @@ void provide_xrm_string(char *string) memcpy(key, p, q-p); key[q-p-1] = '\0'; xrms->key = key; - while (*q && isspace(*q)) + while (*q && isspace((unsigned char)*q)) q++; xrms->value = dupstr(q); -- 2.11.0