From: Eric S. Raymond Date: Tue, 19 Oct 2010 05:21:37 +0000 (-0400) Subject: OK, give up on splint - this program gives it severe indigestion. X-Git-Tag: 3.10~1 X-Git-Url: http://thyrsus.com/gitweb/?a=commitdiff_plain;h=4969576063c9971fd6bdb6efc95262e2cc35bc54;p=ascii.git OK, give up on splint - this program gives it severe indigestion. --- diff --git a/ascii.c b/ascii.c index 30fc83f..0e53d83 100644 --- a/ascii.c +++ b/ascii.c @@ -197,41 +197,43 @@ static void speak(unsigned int ch) static int stricmp(char *s, char *t) /* case-blind string compare */ { - while (*s && tolower(*s) == tolower(*t)) + while (*s!='\0' && tolower(*s) == tolower(*t)) s++, t++; - return(*t - *s); + return (int)(*t - *s); } static void ascii(char *str) { int ch, hi, lo; char **ptr; - int len = strlen(str); + size_t len = strlen(str); /* interpret single characters as themselves */ - if (len == 1) - { speak(str[0]); return; } + if (len == 1) { + speak((unsigned int)str[0]); + return; + } /* process multiple letters */ if (line == 1) { for (ch = 0; ch < len; ch ++) { - speak(str[ch]); + speak((unsigned int)str[ch]); } return; } /* interpret ^-escapes as control-character notation */ if (strcmp(str, "^?") == 0) - { speak(0x7F); return; } + { speak((unsigned int)0x7F); return; } else if (str[0] == '^' && len == 2) - { speak(str[1] & 0x1f); return; } + { speak((unsigned int)(str[1] & 0x1f)); return; } /* interpret C-style backslash escapes */ if (*str == '\\' && len == 2 && strchr("abfnrtv", str[1])) for (ch = 7; ch < 14; ch++) for (ptr = &cnames[ch][1]; *ptr; ptr++) if (**ptr == '\\' && strcmp(str, *ptr) == 0) - { speak(ch); return; } + { speak((unsigned int)ch); return; } /* interpret 2 and 3-character ASCII control mnemonics */ if (len == 2 || len == 3)