version 1.9, 2015/02/23 14:36:03 |
version 1.10, 2015/02/23 15:09:09 |
Line 170 texiputchar(struct texi *p, char c) |
|
Line 170 texiputchar(struct texi *p, char c) |
|
|
|
if ('.' == c && 0 == p->outcol) |
if ('.' == c && 0 == p->outcol) |
fputs("\\&", stdout); |
fputs("\\&", stdout); |
|
if ('\'' == c && 0 == p->outcol) |
|
fputs("\\&", stdout); |
|
|
putchar(c); |
putchar(c); |
p->seenvs = 0; |
p->seenvs = 0; |
Line 542 texiword(struct texi *p, const char *buf, |
|
Line 544 texiword(struct texi *p, const char *buf, |
|
'\'' == buf[*pos + 1]) { |
'\'' == buf[*pos + 1]) { |
texiputchars(p, "\\(rq"); |
texiputchars(p, "\\(rq"); |
advance(p, buf, pos); |
advance(p, buf, pos); |
|
} else if ('\\' == buf[*pos]) { |
|
texiputchar(p, buf[*pos]); |
|
texiputchar(p, 'e'); |
} else |
} else |
texiputchar(p, buf[*pos]); |
texiputchar(p, buf[*pos]); |
advance(p, buf, pos); |
advance(p, buf, pos); |
Line 1158 argparse(struct texi *p, const char *buf, |
|
Line 1163 argparse(struct texi *p, const char *buf, |
|
args = NULL; |
args = NULL; |
*argsz = 0; |
*argsz = 0; |
|
|
/* Check for no arguments. */ |
if ('{' != buf[*pos] && hint) { |
if ('{' != buf[*pos]) |
/* |
|
* Special case: if we encounter an unbracketed argument |
|
* and we're being invoked with non-zero arguments |
|
* (versus being set, i.e., hint>0), then parse until |
|
* the end of line. |
|
*/ |
|
*argsz = 1; |
|
args = calloc(1, sizeof(char *)); |
|
if (NULL == args) |
|
texiabort(p, NULL); |
|
start = *pos; |
|
while (*pos < sz) { |
|
if ('\n' == buf[*pos]) |
|
break; |
|
advance(p, buf, pos); |
|
} |
|
args[0] = malloc(*pos - start + 1); |
|
memcpy(args[0], &buf[start], *pos - start); |
|
args[0][*pos - start] = '\0'; |
|
if (*pos < sz && '\n' == buf[*pos]) |
|
advance(p, buf, pos); |
|
return(args); |
|
} else if ('{' != buf[*pos]) |
return(args); |
return(args); |
|
|
/* Parse til the closing '}', putting into the array. */ |
/* Parse til the closing '}', putting into the array. */ |