Use VIS_CSTYLE for the arguments and add the missing escapes it can

generate to the parser.
pull/1768/head
nicm 2019-05-29 20:05:14 +00:00
parent c17edd594e
commit 7dced37673
4 changed files with 18 additions and 3 deletions

View File

@ -218,7 +218,7 @@ args_escape(const char *s)
return (escaped);
}
flags = VIS_OCTAL|VIS_TAB|VIS_NL;
flags = VIS_OCTAL|VIS_CSTYLE|VIS_TAB|VIS_NL;
if (s[strcspn(s, quoted)] != '\0')
flags |= VIS_DQ;
utf8_stravis(&escaped, s, flags);

View File

@ -1118,9 +1118,24 @@ yylex_token_escape(char **buf, size_t *len)
switch (ch) {
case EOF:
return (0);
case 'a':
ch = '\a';
break;
case 'b':
ch = '\b';
break;
case 'e':
ch = '\033';
break;
case 'f':
ch = '\f';
break;
case 's':
ch = ' ';
break;
case 'v':
ch = '\v';
break;
case 'r':
ch = '\r';
break;

View File

@ -685,7 +685,7 @@ tty_term_describe(struct tty_term *term, enum tty_code_code code)
break;
case TTYCODE_STRING:
strnvis(out, term->codes[code].value.string, sizeof out,
VIS_OCTAL|VIS_TAB|VIS_NL);
VIS_OCTAL|VIS_CSTYLE|VIS_TAB|VIS_NL);
xsnprintf(s, sizeof s, "%4u: %s: (string) %s",
code, tty_term_codes[code].name,
out);

View File

@ -246,7 +246,7 @@ window_buffer_draw(__unused void *modedata, void *itemdata,
at = 0;
while (end != pdata + psize && *end != '\n') {
if ((sizeof line) - at > 5) {
cp = vis(line + at, *end, VIS_TAB|VIS_OCTAL, 0);
cp = vis(line + at, *end, VIS_OCTAL|VIS_TAB, 0);
at = cp - line;
}
end++;