[BACK]Return to mdoc_validate.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/mdoc_validate.c between version 1.226 and 1.227

version 1.226, 2014/07/04 16:12:08 version 1.227, 2014/07/05 01:12:20
Line 594  pre_display(PRE_ARGS)
Line 594  pre_display(PRE_ARGS)
 static int  static int
 pre_bl(PRE_ARGS)  pre_bl(PRE_ARGS)
 {  {
         int               i, comp, dup;  
         const char       *offs, *width;  
         enum mdoc_list    lt;  
         struct mdoc_node *np;          struct mdoc_node *np;
           struct mdoc_argv *argv;
           int               i;
           enum mdoc_list    lt;
   
         if (MDOC_BLOCK != n->type) {          if (MDOC_BLOCK != n->type) {
                 if (ENDBODY_NOT != n->end) {                  if (ENDBODY_NOT != n->end) {
Line 619  pre_bl(PRE_ARGS)
Line 619  pre_bl(PRE_ARGS)
          */           */
   
         for (i = 0; n->args && i < (int)n->args->argc; i++) {          for (i = 0; n->args && i < (int)n->args->argc; i++) {
                   argv = n->args->argv + i;
                 lt = LIST__NONE;                  lt = LIST__NONE;
                 dup = comp = 0;                  switch (argv->arg) {
                 width = offs = NULL;  
                 switch (n->args->argv[i].arg) {  
                 /* Set list types. */                  /* Set list types. */
                 case MDOC_Bullet:                  case MDOC_Bullet:
                         lt = LIST_bullet;                          lt = LIST_bullet;
Line 659  pre_bl(PRE_ARGS)
Line 658  pre_bl(PRE_ARGS)
                         break;                          break;
                 /* Set list arguments. */                  /* Set list arguments. */
                 case MDOC_Compact:                  case MDOC_Compact:
                         dup = n->norm->Bl.comp;                          if (n->norm->Bl.comp)
                         comp = 1;                                  mandoc_msg(MANDOCERR_ARG_REP,
                                       mdoc->parse, argv->line,
                                       argv->pos, "Bl -compact");
                           n->norm->Bl.comp = 1;
                         break;                          break;
                 case MDOC_Width:                  case MDOC_Width:
                         /* NB: this can be empty! */                          if (0 == argv->sz) {
                         if (n->args->argv[i].sz) {                                  mandoc_msg(MANDOCERR_ARG_EMPTY,
                                 width = n->args->argv[i].value[0];                                      mdoc->parse, argv->line,
                                 dup = (NULL != n->norm->Bl.width);                                      argv->pos, "Bl -width");
                                   n->norm->Bl.width = "0n";
                                 break;                                  break;
                         }                          }
                         mdoc_nmsg(mdoc, n, MANDOCERR_IGNARGV);                          if (NULL != n->norm->Bl.width)
                                   mandoc_vmsg(MANDOCERR_ARG_REP,
                                       mdoc->parse, argv->line,
                                       argv->pos, "Bl -width %s",
                                       argv->value[0]);
                           n->norm->Bl.width = argv->value[0];
                         break;                          break;
                 case MDOC_Offset:                  case MDOC_Offset:
                         /* NB: this can be empty! */                          if (0 == argv->sz) {
                         if (n->args->argv[i].sz) {                                  mandoc_msg(MANDOCERR_ARG_EMPTY,
                                 offs = n->args->argv[i].value[0];                                      mdoc->parse, argv->line,
                                 dup = (NULL != n->norm->Bl.offs);                                      argv->pos, "Bl -offset");
                                 break;                                  break;
                         }                          }
                         mdoc_nmsg(mdoc, n, MANDOCERR_IGNARGV);                          if (NULL != n->norm->Bl.offs)
                                   mandoc_vmsg(MANDOCERR_ARG_REP,
                                       mdoc->parse, argv->line,
                                       argv->pos, "Bl -offset %s",
                                       argv->value[0]);
                           n->norm->Bl.offs = argv->value[0];
                         break;                          break;
                 default:                  default:
                         continue;                          continue;
                 }                  }
   
                 /* Check: duplicate auxiliary arguments. */  
   
                 if (dup)  
                         mdoc_nmsg(mdoc, n, MANDOCERR_ARGVREP);  
   
                 if (comp && ! dup)  
                         n->norm->Bl.comp = comp;  
                 if (offs && ! dup)  
                         n->norm->Bl.offs = offs;  
                 if (width && ! dup)  
                         n->norm->Bl.width = width;  
   
                 /* Check: multiple list types. */                  /* Check: multiple list types. */
   
                 if (LIST__NONE != lt && n->norm->Bl.type != LIST__NONE)                  if (LIST__NONE != lt && n->norm->Bl.type != LIST__NONE)
Line 779  pre_bl(PRE_ARGS)
Line 780  pre_bl(PRE_ARGS)
 static int  static int
 pre_bd(PRE_ARGS)  pre_bd(PRE_ARGS)
 {  {
         int               i, dup, comp;  
         enum mdoc_disp    dt;  
         const char       *offs;  
         struct mdoc_node *np;          struct mdoc_node *np;
           struct mdoc_argv *argv;
           int               i;
           enum mdoc_disp    dt;
   
         if (MDOC_BLOCK != n->type) {          if (MDOC_BLOCK != n->type) {
                 if (ENDBODY_NOT != n->end) {                  if (ENDBODY_NOT != n->end) {
Line 798  pre_bd(PRE_ARGS)
Line 799  pre_bd(PRE_ARGS)
         }          }
   
         for (i = 0; n->args && i < (int)n->args->argc; i++) {          for (i = 0; n->args && i < (int)n->args->argc; i++) {
                   argv = n->args->argv + i;
                 dt = DISP__NONE;                  dt = DISP__NONE;
                 dup = comp = 0;  
                 offs = NULL;  
   
                 switch (n->args->argv[i].arg) {                  switch (argv->arg) {
                 case MDOC_Centred:                  case MDOC_Centred:
                         dt = DISP_centred;                          dt = DISP_centred;
                         break;                          break;
Line 822  pre_bd(PRE_ARGS)
Line 822  pre_bd(PRE_ARGS)
                         mdoc_nmsg(mdoc, n, MANDOCERR_BADDISP);                          mdoc_nmsg(mdoc, n, MANDOCERR_BADDISP);
                         return(0);                          return(0);
                 case MDOC_Offset:                  case MDOC_Offset:
                         /* NB: this can be empty! */                          if (0 == argv->sz) {
                         if (n->args->argv[i].sz) {                                  mandoc_msg(MANDOCERR_ARG_EMPTY,
                                 offs = n->args->argv[i].value[0];                                      mdoc->parse, argv->line,
                                 dup = (NULL != n->norm->Bd.offs);                                      argv->pos, "Bd -offset");
                                 break;                                  break;
                         }                          }
                         mdoc_nmsg(mdoc, n, MANDOCERR_IGNARGV);                          if (NULL != n->norm->Bd.offs)
                                   mandoc_vmsg(MANDOCERR_ARG_REP,
                                       mdoc->parse, argv->line,
                                       argv->pos, "Bd -offset %s",
                                       argv->value[0]);
                           n->norm->Bd.offs = argv->value[0];
                         break;                          break;
                 case MDOC_Compact:                  case MDOC_Compact:
                         comp = 1;                          if (n->norm->Bd.comp)
                         dup = n->norm->Bd.comp;                                  mandoc_msg(MANDOCERR_ARG_REP,
                                       mdoc->parse, argv->line,
                                       argv->pos, "Bd -compact");
                           n->norm->Bd.comp = 1;
                         break;                          break;
                 default:                  default:
                         abort();                          abort();
                         /* NOTREACHED */                          /* NOTREACHED */
                 }                  }
   
                 /* Check whether we have duplicates. */  
   
                 if (dup)  
                         mdoc_nmsg(mdoc, n, MANDOCERR_ARGVREP);  
   
                 /* Make our auxiliary assignments. */  
   
                 if (offs && ! dup)  
                         n->norm->Bd.offs = offs;  
                 if (comp && ! dup)  
                         n->norm->Bd.comp = comp;  
   
                 /* Check whether a type has already been assigned. */                  /* Check whether a type has already been assigned. */
   

Legend:
Removed from v.1.226  
changed lines
  Added in v.1.227

CVSweb