version 1.346, 2018/12/13 02:06:07 |
version 1.348, 2018/12/13 05:23:38 |
|
|
#include "roff.h" |
#include "roff.h" |
#include "libmandoc.h" |
#include "libmandoc.h" |
#include "roff_int.h" |
#include "roff_int.h" |
#include "libroff.h" |
|
#include "tbl_parse.h" |
#include "tbl_parse.h" |
|
#include "eqn_parse.h" |
|
|
/* Maximum number of string expansions per line, to break infinite loops. */ |
/* Maximum number of string expansions per line, to break infinite loops. */ |
#define EXPAND_LIMIT 1000 |
#define EXPAND_LIMIT 1000 |
Line 723 roff_free1(struct roff *r) |
|
Line 723 roff_free1(struct roff *r) |
|
tbl_free(r->first_tbl); |
tbl_free(r->first_tbl); |
r->first_tbl = r->last_tbl = r->tbl = NULL; |
r->first_tbl = r->last_tbl = r->tbl = NULL; |
|
|
if (r->last_eqn != NULL) |
eqn_free(r->last_eqn); |
eqn_free(r->last_eqn); |
|
r->last_eqn = r->eqn = NULL; |
r->last_eqn = r->eqn = NULL; |
|
|
while (r->mstackpos >= 0) |
while (r->mstackpos >= 0) |
Line 1079 roff_node_free(struct roff_node *n) |
|
Line 1078 roff_node_free(struct roff_node *n) |
|
mdoc_argv_free(n->args); |
mdoc_argv_free(n->args); |
if (n->type == ROFFT_BLOCK || n->type == ROFFT_ELEM) |
if (n->type == ROFFT_BLOCK || n->type == ROFFT_ELEM) |
free(n->norm); |
free(n->norm); |
if (n->eqn != NULL) |
eqn_box_free(n->eqn); |
eqn_box_free(n->eqn); |
|
free(n->string); |
free(n->string); |
free(n); |
free(n); |
} |
} |
Line 3155 roff_EQ(ROFF_ARGS) |
|
Line 3153 roff_EQ(ROFF_ARGS) |
|
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) |
n->flags |= NODE_LINE; |
n->flags |= NODE_LINE; |
n->eqn = mandoc_calloc(1, sizeof(*n->eqn)); |
n->eqn = eqn_box_new(); |
n->eqn->expectargs = UINT_MAX; |
|
roff_node_append(r->man, n); |
roff_node_append(r->man, n); |
r->man->next = ROFF_NEXT_SIBLING; |
r->man->next = ROFF_NEXT_SIBLING; |
|
|