version 1.193, 2011/07/27 12:41:02 |
version 1.196, 2011/09/30 00:13:28 |
Line 160 mdoc_alloc1(struct mdoc *mdoc) |
|
Line 160 mdoc_alloc1(struct mdoc *mdoc) |
|
mdoc->last = mandoc_calloc(1, sizeof(struct mdoc_node)); |
mdoc->last = mandoc_calloc(1, sizeof(struct mdoc_node)); |
mdoc->first = mdoc->last; |
mdoc->first = mdoc->last; |
mdoc->last->type = MDOC_ROOT; |
mdoc->last->type = MDOC_ROOT; |
|
mdoc->last->tok = MDOC_MAX; |
mdoc->next = MDOC_NEXT_CHILD; |
mdoc->next = MDOC_NEXT_CHILD; |
} |
} |
|
|
|
|
mdoc_word_alloc(struct mdoc *m, int line, int pos, const char *p) |
mdoc_word_alloc(struct mdoc *m, int line, int pos, const char *p) |
{ |
{ |
struct mdoc_node *n; |
struct mdoc_node *n; |
size_t sv, len; |
|
|
|
len = strlen(p); |
|
|
|
n = node_alloc(m, line, pos, MDOC_MAX, MDOC_TEXT); |
n = node_alloc(m, line, pos, MDOC_MAX, MDOC_TEXT); |
n->string = mandoc_malloc(len + 1); |
n->string = roff_strdup(m->roff, p); |
sv = strlcpy(n->string, p, len + 1); |
|
|
|
/* Prohibit truncation. */ |
|
assert(sv < len + 1); |
|
|
|
if ( ! node_append(m, n)) |
if ( ! node_append(m, n)) |
return(0); |
return(0); |