version 1.22, 2015/03/01 16:57:39 |
version 1.25, 2015/03/03 22:37:24 |
Line 184 texiputchar(struct texi *p, char c) |
|
Line 184 texiputchar(struct texi *p, char c) |
|
if ('\'' == c && 0 == p->outcol) |
if ('\'' == c && 0 == p->outcol) |
fputs("\\&", p->outfile); |
fputs("\\&", p->outfile); |
|
|
fputc(c, p->outfile); |
if (p->uppercase) |
|
fputc(toupper((unsigned int)c), p->outfile); |
|
else |
|
fputc(c, p->outfile); |
if ('\\' == c) |
if ('\\' == c) |
fputc('e', p->outfile); |
fputc('e', p->outfile); |
p->seenvs = 0; |
p->seenvs = 0; |
Line 210 texiputchars(struct texi *p, const char *s) |
|
Line 213 texiputchars(struct texi *p, const char *s) |
|
fputs("\\&", p->outfile); |
fputs("\\&", p->outfile); |
if ('\'' == *s && 0 == p->outcol) |
if ('\'' == *s && 0 == p->outcol) |
fputs("\\&", p->outfile); |
fputs("\\&", p->outfile); |
p->outcol += fputs(s, p->outfile); |
if (p->uppercase) |
|
for ( ; '\0' != *s; s++) |
|
p->outcol += fputc(toupper |
|
((unsigned int)*s), p->outfile); |
|
else |
|
p->outcol += fputs(s, p->outfile); |
p->seenvs = 0; |
p->seenvs = 0; |
} |
} |
|
|
Line 472 texiexecmacro(struct texi *p, struct teximacro *m, siz |
|
Line 480 texiexecmacro(struct texi *p, struct teximacro *m, siz |
|
* The "sv" value was initialised at the start of the macro. |
* The "sv" value was initialised at the start of the macro. |
*/ |
*/ |
if (sv > 0) |
if (sv > 0) |
if (++p->files[p->filepos].depth > 64) |
if (++p->files[p->filepos - 1].depth > 64) |
texierr(p, "maximium recursive depth"); |
texierr(p, "maximium recursive depth"); |
|
|
args = argparse(p, pos, &asz, m->argsz); |
args = argparse(p, pos, &asz, m->argsz); |
|
|
parseword(struct texi *p, size_t *pos, char extra) |
parseword(struct texi *p, size_t *pos, char extra) |
{ |
{ |
|
|
|
/* |
|
* Some line control: if we (non-macro, non-literal) already |
|
* have more than 72 characters written to the screen, then |
|
* output a newline before getting started. |
|
*/ |
if (p->seenws && 0 == p->outmacro && |
if (p->seenws && 0 == p->outmacro && |
p->outcol > 72 && 0 == p->literal) |
p->outcol > 72 && 0 == p->literal) |
texiputchar(p, '\n'); |
texiputchar(p, '\n'); |
/* FIXME: abstract this: we use it elsewhere. */ |
|
|
/* Usual padding in the case of seen whitespace. */ |
if (p->seenws && p->outcol && 0 == p->literal) |
if (p->seenws && p->outcol && 0 == p->literal) |
texiputchar(p, ' '); |
texiputchar(p, ' '); |
|
|
Line 593 parseword(struct texi *p, size_t *pos, char extra) |
|
Line 607 parseword(struct texi *p, size_t *pos, char extra) |
|
texiputchar(p, BUF(p)[*pos]); |
texiputchar(p, BUF(p)[*pos]); |
advance(p, pos); |
advance(p, pos); |
} |
} |
|
|
|
/* |
|
* New sentence, new line:if we (non-macro, non-literal) see a |
|
* period at the end of the last printed word, then open a |
|
* newline. |
|
*/ |
|
if (0 == p->literal && 0 == p->outmacro && |
|
*pos < BUFSZ(p) && '.' == BUF(p)[*pos - 1]) |
|
texiputchar(p, '\n'); |
} |
} |
|
|
/* |
/* |
Line 616 texicmd(const struct texi *p, size_t pos, size_t *end, |
|
Line 639 texicmd(const struct texi *p, size_t pos, size_t *end, |
|
return(TEXICMD__MAX); |
return(TEXICMD__MAX); |
|
|
/* Alphabetic commands are special. */ |
/* Alphabetic commands are special. */ |
if ( ! isalpha((unsigned char)BUF(p)[pos])) { |
if ( ! isalpha((unsigned int)BUF(p)[pos])) { |
if ((*end = pos + 1) == BUFSZ(p)) |
if ((*end = pos + 1) == BUFSZ(p)) |
return(TEXICMD__MAX); |
return(TEXICMD__MAX); |
for (i = 0; i < TEXICMD__MAX; i++) { |
for (i = 0; i < TEXICMD__MAX; i++) { |