version 1.96, 2010/06/12 11:58:22 |
version 1.97, 2010/06/12 12:10:55 |
Line 532 pre_display(PRE_ARGS) |
|
Line 532 pre_display(PRE_ARGS) |
|
static int |
static int |
pre_bl(PRE_ARGS) |
pre_bl(PRE_ARGS) |
{ |
{ |
int i, width, offs, cmpt, dupl; |
int i, width, offs, comp, dup; |
enum mdoc_list lt; |
enum mdoc_list lt; |
|
|
if (MDOC_BLOCK != n->type) { |
if (MDOC_BLOCK != n->type) { |
Line 552 pre_bl(PRE_ARGS) |
|
Line 552 pre_bl(PRE_ARGS) |
|
*/ |
*/ |
|
|
assert(LIST__NONE == n->data.Bl.type); |
assert(LIST__NONE == n->data.Bl.type); |
offs = width = cmpt = -1; |
offs = width = -1; |
|
|
/* LINTED */ |
/* LINTED */ |
for (i = 0; n->args && i < (int)n->args->argc; i++) { |
for (i = 0; n->args && i < (int)n->args->argc; i++) { |
lt = LIST__NONE; |
lt = LIST__NONE; |
dupl = 0; |
dup = comp = 0; |
switch (n->args->argv[i].arg) { |
switch (n->args->argv[i].arg) { |
/* Set list types. */ |
/* Set list types. */ |
case (MDOC_Bullet): |
case (MDOC_Bullet): |
Line 595 pre_bl(PRE_ARGS) |
|
Line 595 pre_bl(PRE_ARGS) |
|
break; |
break; |
/* Set list arguments. */ |
/* Set list arguments. */ |
case (MDOC_Compact): |
case (MDOC_Compact): |
if (cmpt >= 0) |
dup = n->data.Bl.comp; |
dupl++; |
comp = 1; |
cmpt = i; |
|
break; |
break; |
case (MDOC_Width): |
case (MDOC_Width): |
if (width >= 0) |
if (width >= 0) |
dupl++; |
dup++; |
width = i; |
width = i; |
break; |
break; |
case (MDOC_Offset): |
case (MDOC_Offset): |
if (offs >= 0) |
if (offs >= 0) |
dupl++; |
dup++; |
offs = i; |
offs = i; |
break; |
break; |
} |
} |
|
|
/* Check: duplicate auxiliary arguments. */ |
/* Check: duplicate auxiliary arguments. */ |
|
|
if (dupl) |
if (dup && ! mdoc_nmsg(mdoc, n, MANDOCERR_ARGVREP)) |
if ( ! mdoc_nmsg(mdoc, n, MANDOCERR_ARGVREP)) |
return(0); |
return(0); |
|
|
|
|
if (comp && ! dup) |
|
n->data.Bl.comp = comp; |
|
|
/* Check: multiple list types. */ |
/* Check: multiple list types. */ |
|
|
if (LIST__NONE != lt && n->data.Bl.type != LIST__NONE) |
if (LIST__NONE != lt && n->data.Bl.type != LIST__NONE) |
Line 631 pre_bl(PRE_ARGS) |
|
Line 632 pre_bl(PRE_ARGS) |
|
/* The list type should come first. */ |
/* The list type should come first. */ |
|
|
if (n->data.Bl.type == LIST__NONE) |
if (n->data.Bl.type == LIST__NONE) |
if (width >= 0 || offs >= 0 || cmpt >= 0) |
if (width >= 0 || offs >= 0 || n->data.Bl.comp) |
if ( ! mdoc_nmsg(mdoc, n, MANDOCERR_LISTFIRST)) |
if ( ! mdoc_nmsg(mdoc, n, MANDOCERR_LISTFIRST)) |
return(0); |
return(0); |
|
|