mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-05-31 00:30:57 +00:00
Separate out C and html quoting into separate functions.
Dot sometimes wants normal C quotes, othertimes html. Quite annoying, really, but this is cleaner anyway.
This commit is contained in:
parent
f680521e0f
commit
f8bdd909cc
3 changed files with 54 additions and 8 deletions
|
@ -55,6 +55,7 @@ const char *save_string (const char *str);
|
||||||
|
|
||||||
const char *make_string (char *token, char **end);
|
const char *make_string (char *token, char **end);
|
||||||
|
|
||||||
|
const char *html_string (const char *str);
|
||||||
const char *quote_string (const char *str);
|
const char *quote_string (const char *str);
|
||||||
|
|
||||||
#endif//__strpool_h
|
#endif//__strpool_h
|
||||||
|
|
|
@ -53,10 +53,10 @@ static void
|
||||||
flow_statement (dstring_t *dstr, statement_t *s)
|
flow_statement (dstring_t *dstr, statement_t *s)
|
||||||
{
|
{
|
||||||
dasprintf (dstr, " <tr>");
|
dasprintf (dstr, " <tr>");
|
||||||
dasprintf (dstr, "<td>%s</td>", quote_string (s->opcode));
|
dasprintf (dstr, "<td>%s</td>", html_string(quote_string (s->opcode)));
|
||||||
dasprintf (dstr, "<td>%s</td>", operand_string (s->opa));
|
dasprintf (dstr, "<td>%s</td>", html_string(operand_string (s->opa)));
|
||||||
dasprintf (dstr, "<td>%s</td>", operand_string (s->opb));
|
dasprintf (dstr, "<td>%s</td>", html_string(operand_string (s->opb)));
|
||||||
dasprintf (dstr, "<td>%s</td>", operand_string (s->opc));
|
dasprintf (dstr, "<td>%s</td>", html_string(operand_string (s->opc)));
|
||||||
dasprintf (dstr, "</tr>\n");
|
dasprintf (dstr, "</tr>\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -360,7 +360,7 @@ make_string (char *token, char **end)
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
quote_string (const char *str)
|
html_string (const char *str)
|
||||||
{
|
{
|
||||||
static dstring_t *q;
|
static dstring_t *q;
|
||||||
char c[2] = {0, 0};
|
char c[2] = {0, 0};
|
||||||
|
@ -372,9 +372,6 @@ quote_string (const char *str)
|
||||||
dstring_clearstr (q);
|
dstring_clearstr (q);
|
||||||
while ((c[0] = *str++)) {
|
while ((c[0] = *str++)) {
|
||||||
switch (c[0]) {
|
switch (c[0]) {
|
||||||
case '\n':
|
|
||||||
dstring_appendstr (q, "\\\\n");
|
|
||||||
break;
|
|
||||||
case '<':
|
case '<':
|
||||||
dstring_appendstr (q, "<");
|
dstring_appendstr (q, "<");
|
||||||
break;
|
break;
|
||||||
|
@ -387,6 +384,54 @@ quote_string (const char *str)
|
||||||
case '"':
|
case '"':
|
||||||
dstring_appendstr (q, """);
|
dstring_appendstr (q, """);
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
dstring_appendstr (q, c);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return q->str;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *
|
||||||
|
quote_string (const char *str)
|
||||||
|
{
|
||||||
|
static dstring_t *q;
|
||||||
|
char c[2] = {0, 0};
|
||||||
|
|
||||||
|
if (!str)
|
||||||
|
return "(null)";
|
||||||
|
if (!q)
|
||||||
|
q = dstring_new ();
|
||||||
|
dstring_clearstr (q);
|
||||||
|
while ((c[0] = *str++)) {
|
||||||
|
switch (c[0]) {
|
||||||
|
case '\a':
|
||||||
|
dstring_appendstr (q, "\\a");
|
||||||
|
break;
|
||||||
|
case '\b':
|
||||||
|
dstring_appendstr (q, "\\b");
|
||||||
|
break;
|
||||||
|
case '\f':
|
||||||
|
dstring_appendstr (q, "\\f");
|
||||||
|
break;
|
||||||
|
case '\n':
|
||||||
|
dstring_appendstr (q, "\\n");
|
||||||
|
break;
|
||||||
|
case '\r':
|
||||||
|
dstring_appendstr (q, "\\r");
|
||||||
|
break;
|
||||||
|
case '\t':
|
||||||
|
dstring_appendstr (q, "\\t");
|
||||||
|
break;
|
||||||
|
case '\\':
|
||||||
|
dstring_appendstr (q, "\\\\");
|
||||||
|
break;
|
||||||
|
case '\'':
|
||||||
|
dstring_appendstr (q, "\\'");
|
||||||
|
break;
|
||||||
|
case '\"':
|
||||||
|
dstring_appendstr (q, "\\\"");
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
if (c[0] >= 127 || c[0] < 32)
|
if (c[0] >= 127 || c[0] < 32)
|
||||||
dasprintf (q, "\\\\x%02d", (byte) c[0]);
|
dasprintf (q, "\\\\x%02d", (byte) c[0]);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue