version 1.355, 2018/12/21 17:15:19 |
version 1.357, 2018/12/31 04:55:47 |
Line 807 roff_alloc(int options) |
|
Line 807 roff_alloc(int options) |
|
static void |
static void |
roff_man_free1(struct roff_man *man) |
roff_man_free1(struct roff_man *man) |
{ |
{ |
|
if (man->meta.first != NULL) |
if (man->first != NULL) |
roff_node_delete(man, man->meta.first); |
roff_node_delete(man, man->first); |
|
free(man->meta.msec); |
free(man->meta.msec); |
free(man->meta.vol); |
free(man->meta.vol); |
free(man->meta.os); |
free(man->meta.os); |
Line 817 roff_man_free1(struct roff_man *man) |
|
Line 816 roff_man_free1(struct roff_man *man) |
|
free(man->meta.title); |
free(man->meta.title); |
free(man->meta.name); |
free(man->meta.name); |
free(man->meta.date); |
free(man->meta.date); |
|
free(man->meta.sodest); |
} |
} |
|
|
static void |
void |
roff_man_alloc1(struct roff_man *man) |
roff_state_reset(struct roff_man *man) |
{ |
{ |
|
man->last = man->meta.first; |
memset(&man->meta, 0, sizeof(man->meta)); |
|
man->first = mandoc_calloc(1, sizeof(*man->first)); |
|
man->first->type = ROFFT_ROOT; |
|
man->last = man->first; |
|
man->last_es = NULL; |
man->last_es = NULL; |
man->flags = 0; |
man->flags = 0; |
man->macroset = MACROSET_NONE; |
|
man->lastsec = man->lastnamed = SEC_NONE; |
man->lastsec = man->lastnamed = SEC_NONE; |
man->next = ROFF_NEXT_CHILD; |
man->next = ROFF_NEXT_CHILD; |
|
roff_setreg(man->roff, "nS", 0, '='); |
} |
} |
|
|
|
static void |
|
roff_man_alloc1(struct roff_man *man) |
|
{ |
|
memset(&man->meta, 0, sizeof(man->meta)); |
|
man->meta.first = mandoc_calloc(1, sizeof(*man->meta.first)); |
|
man->meta.first->type = ROFFT_ROOT; |
|
man->meta.macroset = MACROSET_NONE; |
|
roff_state_reset(man); |
|
} |
|
|
void |
void |
roff_man_reset(struct roff_man *man) |
roff_man_reset(struct roff_man *man) |
{ |
{ |
|
|
roff_man_free1(man); |
roff_man_free1(man); |
roff_man_alloc1(man); |
roff_man_alloc1(man); |
} |
} |
Line 845 roff_man_reset(struct roff_man *man) |
|
Line 850 roff_man_reset(struct roff_man *man) |
|
void |
void |
roff_man_free(struct roff_man *man) |
roff_man_free(struct roff_man *man) |
{ |
{ |
|
|
roff_man_free1(man); |
roff_man_free1(man); |
free(man); |
free(man); |
} |
} |
Line 1020 roff_addtbl(struct roff_man *man, int line, struct tbl |
|
Line 1024 roff_addtbl(struct roff_man *man, int line, struct tbl |
|
struct roff_node *n; |
struct roff_node *n; |
struct tbl_span *span; |
struct tbl_span *span; |
|
|
if (man->macroset == MACROSET_MAN) |
if (man->meta.macroset == MACROSET_MAN) |
man_breakscope(man, ROFF_TS); |
man_breakscope(man, ROFF_TS); |
while ((span = tbl_span(tbl)) != NULL) { |
while ((span = tbl_span(tbl)) != NULL) { |
n = roff_node_alloc(man, line, 0, ROFFT_TBL, TOKEN_NONE); |
n = roff_node_alloc(man, line, 0, ROFFT_TBL, TOKEN_NONE); |
Line 1064 roff_node_unlink(struct roff_man *man, struct roff_nod |
|
Line 1068 roff_node_unlink(struct roff_man *man, struct roff_nod |
|
man->next = ROFF_NEXT_SIBLING; |
man->next = ROFF_NEXT_SIBLING; |
} |
} |
} |
} |
if (man->first == n) |
if (man->meta.first == n) |
man->first = NULL; |
man->meta.first = NULL; |
} |
} |
|
|
void |
void |
Line 3281 roff_EQ(ROFF_ARGS) |
|
Line 3285 roff_EQ(ROFF_ARGS) |
|
{ |
{ |
struct roff_node *n; |
struct roff_node *n; |
|
|
if (r->man->macroset == MACROSET_MAN) |
if (r->man->meta.macroset == MACROSET_MAN) |
man_breakscope(r->man, ROFF_EQ); |
man_breakscope(r->man, ROFF_EQ); |
n = roff_node_alloc(r->man, ln, ppos, ROFFT_EQN, TOKEN_NONE); |
n = roff_node_alloc(r->man, ln, ppos, ROFFT_EQN, TOKEN_NONE); |
if (ln > r->man->last->line) |
if (ln > r->man->last->line) |
Line 4021 roff_getstrn(struct roff *r, const char *name, size_t |
|
Line 4025 roff_getstrn(struct roff *r, const char *name, size_t |
|
break; |
break; |
} |
} |
} |
} |
if (r->man->macroset != MACROSET_MAN) { |
if (r->man->meta.macroset != MACROSET_MAN) { |
for (tok = MDOC_Dd; tok < MDOC_MAX; tok++) { |
for (tok = MDOC_Dd; tok < MDOC_MAX; tok++) { |
if (strncmp(name, roff_name[tok], len) != 0 || |
if (strncmp(name, roff_name[tok], len) != 0 || |
roff_name[tok][len] != '\0') |
roff_name[tok][len] != '\0') |
Line 4035 roff_getstrn(struct roff *r, const char *name, size_t |
|
Line 4039 roff_getstrn(struct roff *r, const char *name, size_t |
|
} |
} |
} |
} |
} |
} |
if (r->man->macroset != MACROSET_MDOC) { |
if (r->man->meta.macroset != MACROSET_MDOC) { |
for (tok = MAN_TH; tok < MAN_MAX; tok++) { |
for (tok = MAN_TH; tok < MAN_MAX; tok++) { |
if (strncmp(name, roff_name[tok], len) != 0 || |
if (strncmp(name, roff_name[tok], len) != 0 || |
roff_name[tok][len] != '\0') |
roff_name[tok][len] != '\0') |