version 1.173, 2011/08/10 14:07:23 |
version 1.181, 2011/12/03 16:58:54 |
Line 545 check_text(struct mdoc *m, int ln, int pos, char *p) |
|
Line 545 check_text(struct mdoc *m, int ln, int pos, char *p) |
|
{ |
{ |
char *cp; |
char *cp; |
|
|
cp = p; |
if (MDOC_LITERAL & m->flags) |
for (cp = p; NULL != (p = strchr(p, '\t')); p++) { |
return; |
if (MDOC_LITERAL & m->flags) |
|
continue; |
for (cp = p; NULL != (p = strchr(p, '\t')); p++) |
mdoc_pmsg(m, ln, (int)(p - cp), MANDOCERR_BADTAB); |
mdoc_pmsg(m, ln, pos + (int)(p - cp), MANDOCERR_BADTAB); |
} |
|
} |
} |
|
|
static int |
static int |
Line 703 pre_bl(PRE_ARGS) |
|
Line 702 pre_bl(PRE_ARGS) |
|
if (LIST_column == lt) { |
if (LIST_column == lt) { |
n->norm->Bl.ncols = |
n->norm->Bl.ncols = |
n->args->argv[i].sz; |
n->args->argv[i].sz; |
n->norm->Bl.cols = (const char **) |
n->norm->Bl.cols = (void *) |
n->args->argv[i].value; |
n->args->argv[i].value; |
} |
} |
} |
} |
Line 1395 post_bl_block_width(POST_ARGS) |
|
Line 1394 post_bl_block_width(POST_ARGS) |
|
|
|
assert(i < (int)n->args->argc); |
assert(i < (int)n->args->argc); |
|
|
snprintf(buf, NUMSIZ, "%zun", width); |
snprintf(buf, NUMSIZ, "%un", (unsigned int)width); |
free(n->args->argv[i].value[0]); |
free(n->args->argv[i].value[0]); |
n->args->argv[i].value[0] = mandoc_strdup(buf); |
n->args->argv[i].value[0] = mandoc_strdup(buf); |
|
|
Line 1445 post_bl_block_tag(POST_ARGS) |
|
Line 1444 post_bl_block_tag(POST_ARGS) |
|
|
|
/* Defaults to ten ens. */ |
/* Defaults to ten ens. */ |
|
|
snprintf(buf, NUMSIZ, "%zun", sz); |
snprintf(buf, NUMSIZ, "%un", (unsigned int)sz); |
|
|
/* |
/* |
* We have to dynamically add this to the macro's argument list. |
* We have to dynamically add this to the macro's argument list. |
Line 1521 post_bl_head(POST_ARGS) |
|
Line 1520 post_bl_head(POST_ARGS) |
|
((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 = (const char **)np->args->argv[j].value; |
mdoc->last->norm->Bl.cols = (void *)np->args->argv[j].value; |
|
|
for (i = 0, nn = mdoc->last->child; nn; i++) { |
for (i = 0, nn = mdoc->last->child; nn; i++) { |
np->args->argv[j].value[i] = nn->string; |
np->args->argv[j].value[i] = nn->string; |
Line 1695 post_rs(POST_ARGS) |
|
Line 1694 post_rs(POST_ARGS) |
|
} |
} |
|
|
/* |
/* |
|
* Nothing to sort if only invalid nodes were found |
|
* inside the `Rs' body. |
|
*/ |
|
|
|
if (NULL == mdoc->last->child) |
|
return(1); |
|
|
|
/* |
* The full `Rs' block needs special handling to order the |
* The full `Rs' block needs special handling to order the |
* sub-elements according to `rsord'. Pick through each element |
* sub-elements according to `rsord'. Pick through each element |
* and correctly order it. This is a insertion sort. |
* and correctly order it. This is a insertion sort. |
|
|
post_sh_head(POST_ARGS) |
post_sh_head(POST_ARGS) |
{ |
{ |
char buf[BUFSIZ]; |
char buf[BUFSIZ]; |
|
struct mdoc_node *n; |
enum mdoc_sec sec; |
enum mdoc_sec sec; |
int c; |
int c; |
|
|
Line 1853 post_sh_head(POST_ARGS) |
|
Line 1861 post_sh_head(POST_ARGS) |
|
|
|
mdoc->lastsec = sec; |
mdoc->lastsec = sec; |
|
|
|
/* |
|
* Set the section attribute for the current HEAD, for its |
|
* parent BLOCK, and for the HEAD children; the latter can |
|
* only be TEXT nodes, so no recursion is needed. |
|
* For other blocks and elements, including .Sh BODY, this is |
|
* done when allocating the node data structures, but for .Sh |
|
* BLOCK and HEAD, the section is still unknown at that time. |
|
*/ |
|
|
|
mdoc->last->parent->sec = sec; |
|
mdoc->last->sec = sec; |
|
for (n = mdoc->last->child; n; n = n->next) |
|
n->sec = sec; |
|
|
/* We don't care about custom sections after this. */ |
/* We don't care about custom sections after this. */ |
|
|
if (SEC_CUSTOM == sec) |
if (SEC_CUSTOM == sec) |
Line 2077 post_dt(POST_ARGS) |
|
Line 2099 post_dt(POST_ARGS) |
|
* arch = NULL |
* arch = NULL |
*/ |
*/ |
|
|
cp = mdoc_a2msec(nn->string); |
cp = mandoc_a2msec(nn->string); |
if (cp) { |
if (cp) { |
mdoc->meta.vol = mandoc_strdup(cp); |
mdoc->meta.vol = mandoc_strdup(cp); |
mdoc->meta.msec = mandoc_strdup(nn->string); |
mdoc->meta.msec = mandoc_strdup(nn->string); |