mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2025-03-23 03:01:30 +00:00
Escape strings in ir-dump output
This commit is contained in:
parent
2e3d572b53
commit
42135f1322
1 changed files with 21 additions and 1 deletions
22
ir.c
22
ir.c
|
@ -3330,6 +3330,26 @@ void ir_instr_dump(ir_instr *in, char *ind,
|
|||
ind[strlen(ind)-1] = 0;
|
||||
}
|
||||
|
||||
void ir_value_dump_string(const char *str, int (*oprintf)(const char*, ...))
|
||||
{
|
||||
oprintf("\"");
|
||||
for (; *str; ++str) {
|
||||
switch (*str) {
|
||||
case '\n': oprintf("\\n"); break;
|
||||
case '\r': oprintf("\\r"); break;
|
||||
case '\t': oprintf("\\t"); break;
|
||||
case '\v': oprintf("\\v"); break;
|
||||
case '\f': oprintf("\\f"); break;
|
||||
case '\b': oprintf("\\b"); break;
|
||||
case '\a': oprintf("\\a"); break;
|
||||
case '\\': oprintf("\\\\"); break;
|
||||
case '"': oprintf("\\\""); break;
|
||||
default: oprintf("%c", *str); break;
|
||||
}
|
||||
}
|
||||
oprintf("\"");
|
||||
}
|
||||
|
||||
void ir_value_dump(ir_value* v, int (*oprintf)(const char*, ...))
|
||||
{
|
||||
if (v->isconst) {
|
||||
|
@ -3354,7 +3374,7 @@ void ir_value_dump(ir_value* v, int (*oprintf)(const char*, ...))
|
|||
oprintf("(entity)");
|
||||
break;
|
||||
case TYPE_STRING:
|
||||
oprintf("\"%s\"", v->constval.vstring);
|
||||
ir_value_dump_string(v->constval.vstring, oprintf);
|
||||
break;
|
||||
#if 0
|
||||
case TYPE_INTEGER:
|
||||
|
|
Loading…
Reference in a new issue