diff --git a/py/lexer.c b/py/lexer.c index 26993922eb..a65df54ba6 100644 --- a/py/lexer.c +++ b/py/lexer.c @@ -83,8 +83,8 @@ bool str_strn_equal(const char *str, const char *strn, int len) { void mp_token_show(const mp_token_t *tok) { printf("(%d:%d) kind:%d str:%p len:%d", tok->src_line, tok->src_column, tok->kind, tok->str, tok->len); if (tok->str != NULL && tok->len > 0) { - const char *i = tok->str; - const char *j = i + tok->len; + const byte *i = (const byte *)tok->str; + const byte *j = (const byte *)i + tok->len; printf(" "); while (i < j) { unichar c = utf8_get_char(i); diff --git a/py/misc.h b/py/misc.h index fd54147efd..97e16c23ec 100644 --- a/py/misc.h +++ b/py/misc.h @@ -88,8 +88,8 @@ int m_get_peak_bytes_allocated(void); typedef int unichar; // TODO -unichar utf8_get_char(const char *s); -char *utf8_next_char(const char *s); +unichar utf8_get_char(const byte *s); +const byte *utf8_next_char(const byte *s); bool unichar_isspace(unichar c); bool unichar_isalpha(unichar c); diff --git a/py/unicode.c b/py/unicode.c index 131ddc8108..c8faa57009 100644 --- a/py/unicode.c +++ b/py/unicode.c @@ -65,12 +65,12 @@ STATIC const uint8_t attr[] = { AT_LO, AT_LO, AT_LO, AT_PR, AT_PR, AT_PR, AT_PR, 0 }; -unichar utf8_get_char(const char *s) { +unichar utf8_get_char(const byte *s) { return *s; } -char *utf8_next_char(const char *s) { - return (char*)(s + 1); +const byte *utf8_next_char(const byte *s) { + return s + 1; } bool unichar_isspace(unichar c) {