version 1.63, 2010/05/30 11:00:53 |
version 1.66, 2010/06/12 10:09:19 |
Line 194 static const struct actions mdoc_actions[MDOC_MAX] = { |
|
Line 194 static const struct actions mdoc_actions[MDOC_MAX] = { |
|
{ NULL, NULL }, /* br */ |
{ NULL, NULL }, /* br */ |
{ NULL, NULL }, /* sp */ |
{ NULL, NULL }, /* sp */ |
{ NULL, NULL }, /* %U */ |
{ NULL, NULL }, /* %U */ |
|
{ NULL, NULL }, /* Ta */ |
}; |
}; |
|
|
#define RSORD_MAX 14 |
#define RSORD_MAX 14 |
Line 947 pre_offset(PRE_ARGS) |
|
Line 948 pre_offset(PRE_ARGS) |
|
* stipulated by mdoc.samples. |
* stipulated by mdoc.samples. |
*/ |
*/ |
|
|
assert(n->args); |
for (i = 0; n->args && i < (int)n->args->argc; i++) { |
for (i = 0; i < (int)n->args->argc; i++) { |
|
if (MDOC_Offset != n->args->argv[i].arg) |
if (MDOC_Offset != n->args->argv[i].arg) |
continue; |
continue; |
if (n->args->argv[i].sz) |
if (n->args->argv[i].sz) |
Line 968 pre_offset(PRE_ARGS) |
|
Line 968 pre_offset(PRE_ARGS) |
|
static int |
static int |
pre_bl(PRE_ARGS) |
pre_bl(PRE_ARGS) |
{ |
{ |
int pos; |
|
|
|
if (MDOC_BLOCK != n->type) { |
if (MDOC_BLOCK == n->type) |
assert(n->parent); |
return(pre_offset(m, n)); |
assert(MDOC_BLOCK == n->parent->type); |
return(1); |
assert(MDOC_Bl == n->parent->tok); |
|
assert(LIST__NONE != n->parent->data.list); |
|
n->data.list = n->parent->data.list; |
|
return(1); |
|
} |
|
|
|
assert(LIST__NONE == n->data.list); |
|
|
|
for (pos = 0; pos < (int)n->args->argc; pos++) { |
|
switch (n->args->argv[pos].arg) { |
|
case (MDOC_Bullet): |
|
n->data.list = LIST_bullet; |
|
break; |
|
case (MDOC_Dash): |
|
n->data.list = LIST_dash; |
|
break; |
|
case (MDOC_Enum): |
|
n->data.list = LIST_enum; |
|
break; |
|
case (MDOC_Hyphen): |
|
n->data.list = LIST_hyphen; |
|
break; |
|
case (MDOC_Item): |
|
n->data.list = LIST_item; |
|
break; |
|
case (MDOC_Tag): |
|
n->data.list = LIST_tag; |
|
break; |
|
case (MDOC_Diag): |
|
n->data.list = LIST_diag; |
|
break; |
|
case (MDOC_Hang): |
|
n->data.list = LIST_hang; |
|
break; |
|
case (MDOC_Ohang): |
|
n->data.list = LIST_ohang; |
|
break; |
|
case (MDOC_Inset): |
|
n->data.list = LIST_inset; |
|
break; |
|
case (MDOC_Column): |
|
n->data.list = LIST_column; |
|
break; |
|
default: |
|
break; |
|
} |
|
if (LIST__NONE != n->data.list) |
|
break; |
|
} |
|
|
|
assert(LIST__NONE != n->data.list); |
|
return(pre_offset(m, n)); |
|
} |
} |
|
|
|
|
static int |
static int |
pre_bd(PRE_ARGS) |
pre_bd(PRE_ARGS) |
{ |
{ |
int i; |
|
|
|
if (MDOC_BLOCK == n->type) |
if (MDOC_BLOCK == n->type) |
return(pre_offset(m, n)); |
return(pre_offset(m, n)); |
if (MDOC_BODY != n->type) |
if (MDOC_BODY != n->type) |
return(1); |
return(1); |
|
|
/* Enter literal context if `Bd -literal' or `-unfilled'. */ |
if (DISP_literal == n->data.disp) |
|
m->flags |= MDOC_LITERAL; |
for (n = n->parent, i = 0; i < (int)n->args->argc; i++) |
if (DISP_unfilled == n->data.disp) |
if (MDOC_Literal == n->args->argv[i].arg) |
m->flags |= MDOC_LITERAL; |
m->flags |= MDOC_LITERAL; |
|
else if (MDOC_Unfilled == n->args->argv[i].arg) |
|
m->flags |= MDOC_LITERAL; |
|
|
|
return(1); |
return(1); |
} |
} |