version 1.212, 2014/04/20 20:48:53 |
version 1.214, 2014/04/23 21:06:41 |
Line 1183 post_defaults(POST_ARGS) |
|
Line 1183 post_defaults(POST_ARGS) |
|
static int |
static int |
post_at(POST_ARGS) |
post_at(POST_ARGS) |
{ |
{ |
const char *p, *q; |
struct mdoc_node *n; |
char *buf; |
const char *std_att; |
size_t sz; |
char *att; |
|
|
/* |
/* |
* If we have a child, look it up in the standard keys. If a |
* If we have a child, look it up in the standard keys. If a |
Line 1193 post_at(POST_ARGS) |
|
Line 1193 post_at(POST_ARGS) |
|
* prefix "AT&T UNIX " to the existing data. |
* prefix "AT&T UNIX " to the existing data. |
*/ |
*/ |
|
|
if (NULL == mdoc->last->child) |
if (NULL == (n = mdoc->last->child)) |
return(1); |
return(1); |
|
|
assert(MDOC_TEXT == mdoc->last->child->type); |
assert(MDOC_TEXT == n->type); |
p = mdoc_a2att(mdoc->last->child->string); |
if (NULL == (std_att = mdoc_a2att(n->string))) { |
|
|
if (p) { |
|
free(mdoc->last->child->string); |
|
mdoc->last->child->string = mandoc_strdup(p); |
|
} else { |
|
mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_BADATT); |
mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_BADATT); |
p = "AT&T UNIX "; |
mandoc_asprintf(&att, "AT&T UNIX %s", n->string); |
q = mdoc->last->child->string; |
} else |
sz = strlen(p) + strlen(q) + 1; |
att = mandoc_strdup(std_att); |
buf = mandoc_malloc(sz); |
|
strlcpy(buf, p, sz); |
|
strlcat(buf, q, sz); |
|
free(mdoc->last->child->string); |
|
mdoc->last->child->string = buf; |
|
} |
|
|
|
|
free(n->string); |
|
n->string = att; |
return(1); |
return(1); |
} |
} |
|
|
Line 1469 post_bl_block_tag(POST_ARGS) |
|
Line 1460 post_bl_block_tag(POST_ARGS) |
|
assert(n->args); |
assert(n->args); |
i = (int)(n->args->argc)++; |
i = (int)(n->args->argc)++; |
|
|
n->args->argv = mandoc_realloc(n->args->argv, |
n->args->argv = mandoc_reallocarray(n->args->argv, |
n->args->argc * sizeof(struct mdoc_argv)); |
n->args->argc, sizeof(struct mdoc_argv)); |
|
|
n->args->argv[i].arg = MDOC_Width; |
n->args->argv[i].arg = MDOC_Width; |
n->args->argv[i].line = n->line; |
n->args->argv[i].line = n->line; |
Line 1530 post_bl_head(POST_ARGS) |
|
Line 1521 post_bl_head(POST_ARGS) |
|
*/ |
*/ |
|
|
np->args->argv[j].sz = (size_t)mdoc->last->nchild; |
np->args->argv[j].sz = (size_t)mdoc->last->nchild; |
np->args->argv[j].value = mandoc_malloc( |
np->args->argv[j].value = mandoc_reallocarray(NULL, |
(size_t)mdoc->last->nchild * sizeof(char *)); |
(size_t)mdoc->last->nchild, sizeof(char *)); |
|
|
mdoc->last->norm->Bl.ncols = np->args->argv[j].sz; |
mdoc->last->norm->Bl.ncols = np->args->argv[j].sz; |
mdoc->last->norm->Bl.cols = (void *)np->args->argv[j].value; |
mdoc->last->norm->Bl.cols = (void *)np->args->argv[j].value; |