version 1.364, 2019/04/21 22:48:58 |
version 1.366, 2019/07/01 22:56:24 |
Line 783 roff_reset(struct roff *r) |
|
Line 783 roff_reset(struct roff *r) |
|
void |
void |
roff_free(struct roff *r) |
roff_free(struct roff *r) |
{ |
{ |
int i; |
int i; |
|
|
roff_free1(r); |
roff_free1(r); |
for (i = 0; i < r->mstacksz; i++) |
for (i = 0; i < r->mstacksz; i++) |
|
|
roff_getarg(struct roff *r, char **cpp, int ln, int *pos) |
roff_getarg(struct roff *r, char **cpp, int ln, int *pos) |
{ |
{ |
struct buf buf; |
struct buf buf; |
char *cp, *start; |
char *cp, *start; |
int newesc, pairs, quoted, white; |
int newesc, pairs, quoted, white; |
|
|
/* Quoting can only start with a new word. */ |
/* Quoting can only start with a new word. */ |
Line 3841 roff_userdef(ROFF_ARGS) |
|
Line 3841 roff_userdef(ROFF_ARGS) |
|
char *arg, *ap, *dst, *src; |
char *arg, *ap, *dst, *src; |
size_t sz; |
size_t sz; |
|
|
|
/* If the macro is empty, ignore it altogether. */ |
|
|
|
if (*r->current_string == '\0') |
|
return ROFF_IGN; |
|
|
/* Initialize a new macro stack context. */ |
/* Initialize a new macro stack context. */ |
|
|
if (++r->mstackpos == r->mstacksz) { |
if (++r->mstackpos == r->mstacksz) { |
Line 3888 roff_userdef(ROFF_ARGS) |
|
Line 3893 roff_userdef(ROFF_ARGS) |
|
buf->sz = strlen(buf->buf) + 1; |
buf->sz = strlen(buf->buf) + 1; |
*offs = 0; |
*offs = 0; |
|
|
return buf->sz > 1 && buf->buf[buf->sz - 2] == '\n' ? |
return buf->buf[buf->sz - 2] == '\n' ? |
ROFF_REPARSE | ROFF_USERCALL : ROFF_IGN | ROFF_APPEND; |
ROFF_REPARSE | ROFF_USERCALL : ROFF_IGN | ROFF_APPEND; |
} |
} |
|
|