diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2009-11-24 15:34:11 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2009-11-24 15:34:11 -0800 |
commit | c9589217a057869582aa6a5ec1dbd048a525455e (patch) | |
tree | d1a0310b5f78647e21757ec1c349bee9285d2157 /utf8.c | |
parent | c542db95be66e6db56dba1c54551ffca9afdf584 (diff) | |
download | txr-c9589217a057869582aa6a5ec1dbd048a525455e.tar.gz txr-c9589217a057869582aa6a5ec1dbd048a525455e.tar.bz2 txr-c9589217a057869582aa6a5ec1dbd048a525455e.zip |
Changes to make the code portable to C++ compilers, which
can be taken advantage of for better diagnostics.
Diffstat (limited to 'utf8.c')
-rw-r--r-- | utf8.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -80,8 +80,8 @@ size_t utf8_from_uc(wchar_t *wdst, const unsigned char *src) case utf8_more3: if (ch >= 0x80 && ch < 0xc0) { wch <<= 6; - wch |= (ch & 0x3f); - if (--state == utf8_init) { + state = (enum utf8_state) (state - 1); + if (state == utf8_init) { if (wdst) *wdst++ = wch; nchar++; @@ -261,7 +261,8 @@ wint_t utf8_decode(utf8_decoder_t *ud, int (*get)(void *ctx), void *ctx) if (ch >= 0x80 && ch < 0xc0) { ud->wch <<= 6; ud->wch |= (ch & 0x3f); - if (--ud->state == utf8_init) { + ud->state = (enum utf8_state) (ud->state - 1); + if (ud->state == utf8_init) { ud->back = ud->tail; return ud->wch; } |