Fix get_tok_str wrt wide characters

Fixes both, character constants and string literals.
This commit is contained in:
Daniel Glöckner 2008-11-20 12:21:59 +01:00 committed by grischka
parent deb410710c
commit 5fd6f7bd44

6
tcc.c
View File

@ -1770,8 +1770,9 @@ char *get_tok_str(int v, CValue *cv)
/* XXX: not quite exact, but only useful for testing */
sprintf(p, "%Lu", cv->ull);
break;
case TOK_CCHAR:
case TOK_LCHAR:
cstr_ccat(&cstr_buf, 'L');
case TOK_CCHAR:
cstr_ccat(&cstr_buf, '\'');
add_char(&cstr_buf, cv->i);
cstr_ccat(&cstr_buf, '\'');
@ -1784,8 +1785,9 @@ char *get_tok_str(int v, CValue *cv)
add_char(&cstr_buf, ((unsigned char *)cstr->data)[i]);
cstr_ccat(&cstr_buf, '\0');
break;
case TOK_STR:
case TOK_LSTR:
cstr_ccat(&cstr_buf, 'L');
case TOK_STR:
cstr = cv->cstr;
cstr_ccat(&cstr_buf, '\"');
if (v == TOK_STR) {