backslash
case '\n': c = 'n'; goto backslash;
case '\t': c = 't'; goto backslash;
case '\r': c = 'r'; goto backslash;
case '"': c = '"'; goto backslash;
case '\\': c = '\\'; goto backslash;
case CTLESC: c = 'e'; goto backslash;
case CTLVAR: c = 'v'; goto backslash;
case CTLVAR+CTLQUOTE: c = 'V'; goto backslash;
case CTLBACKQ: c = 'q'; goto backslash;
case CTLBACKQ+CTLQUOTE: c = 'Q'; goto backslash;
backslash: trace_putc('\\', fp);
char *backslash(char *str);
if (!str || (p = copy = backslash(str)) == NULL)
s->lastch = backslash(s);
s->equiv[0] = backslash(s);
stopval = s->str[0] == '\\' ? backslash(s) : (unsigned char)*s->str++;
s->lastch = backslash(s);
s->cnt = backslash(s);
static int backslash(STR *);
goto backslash;
backslash:
const char *backslash, *last_backslash;
backslash = strchr(str, '\\');
if (backslash == NULL) {
len = backslash - last_backslash;
if (backslash[1] == '-' || backslash[1] == ' ') {
*iter++ = backslash[1];
last_backslash = backslash + 2;
backslash = strchr(last_backslash, '\\');
++backslash;
mandoc_escape(&backslash, NULL, NULL);
last_backslash = backslash;
if (backslash == NULL)
backslash = strchr(last_backslash, '\\');
} while (backslash != NULL);