diff options
-rw-r--r-- | expr.c | 4 | ||||
-rw-r--r-- | scan.c | 4 | ||||
-rw-r--r-- | token.c | 4 | ||||
-rw-r--r-- | utf.c | 2 | ||||
-rw-r--r-- | utf.h | 2 |
5 files changed, 8 insertions, 8 deletions
@@ -365,7 +365,7 @@ decodechar(const char *src, uint_least32_t *chr, bool *hexoct, const char *desc, uint_least32_t c; size_t n; int i; - const char *s = src; + const unsigned char *s = (const unsigned char *)src; if (*s == '\\') { ++s; @@ -406,7 +406,7 @@ decodechar(const char *src, uint_least32_t *chr, bool *hexoct, const char *desc, s += n; } *chr = c; - return s - src; + return s - (const unsigned char *)src; } static size_t @@ -9,7 +9,7 @@ #include "cc.h" struct buffer { - char *str; + unsigned char *str; size_t len, cap; }; @@ -26,7 +26,7 @@ struct scanner { static struct scanner *scanner; static void -bufadd(struct buffer *b, char c) +bufadd(struct buffer *b, int c) { if (b->len >= b->cap) { b->cap = b->cap ? b->cap * 2 : 1<<8; @@ -161,8 +161,8 @@ tokendesc(char *buf, size_t len, enum tokenkind kind, const char *lit) snprintf(buf, len, quote ? "%s '%s'" : "%s %s", class, lit); else if (class) snprintf(buf, len, "%s", class); - else if (kind == TOTHER && !isprint(lit[0])) - snprintf(buf, len, "<U+%04x>", lit[0]); + else if (kind == TOTHER && !isprint(*(unsigned char *)lit)) + snprintf(buf, len, "<U+%04x>", *(unsigned char *)lit); else if (lit) snprintf(buf, len, "'%s'", lit); else @@ -33,7 +33,7 @@ utf8enc(unsigned char *s, uint_least32_t c) } size_t -utf8dec(uint_least32_t *c, const char *s, size_t n) +utf8dec(uint_least32_t *c, const unsigned char *s, size_t n) { size_t i, l; unsigned char b; @@ -1,3 +1,3 @@ size_t utf8enc(unsigned char *, uint_least32_t); -size_t utf8dec(uint_least32_t *, const char *, size_t); +size_t utf8dec(uint_least32_t *, const unsigned char *, size_t); size_t utf16enc(uint_least16_t *, uint_least32_t); |