[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.107 and 1.111

version 1.107, 2010/07/02 15:03:14 version 1.111, 2010/07/19 11:11:54
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@bsd.lv>   * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
  *   *
  * Permission to use, copy, modify, and distribute this software for any   * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above   * purpose with or without fee is hereby granted, provided that the above
Line 32 
Line 32 
 #include "libmandoc.h"  #include "libmandoc.h"
   
 /* FIXME: .Bl -diag can't have non-text children in HEAD. */  /* FIXME: .Bl -diag can't have non-text children in HEAD. */
 /* TODO: ignoring Pp (it's superfluous in some invocations). */  
   
 #define PRE_ARGS  struct mdoc *mdoc, struct mdoc_node *n  #define PRE_ARGS  struct mdoc *mdoc, struct mdoc_node *n
 #define POST_ARGS struct mdoc *mdoc  #define POST_ARGS struct mdoc *mdoc
Line 647  pre_bl(PRE_ARGS)
Line 646  pre_bl(PRE_ARGS)
   
                 /* Assign list type. */                  /* Assign list type. */
   
                 if (LIST__NONE != lt && n->data.Bl->type == LIST__NONE)                  if (LIST__NONE != lt && n->data.Bl->type == LIST__NONE) {
                         n->data.Bl->type = lt;                          n->data.Bl->type = lt;
                           /* Set column information, too. */
                           if (LIST_column == lt) {
                                   n->data.Bl->ncols =
                                           n->args->argv[i].sz;
                                   n->data.Bl->cols = (const char **)
                                           n->args->argv[i].value;
                           }
                   }
   
                 /* The list type should come first. */                  /* The list type should come first. */
   
Line 1132  post_it(POST_ARGS)
Line 1139  post_it(POST_ARGS)
                 if (NULL == mdoc->last->head->child)                  if (NULL == mdoc->last->head->child)
                         if ( ! mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_NOARGS))                          if ( ! mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_NOARGS))
                                 return(0);                                  return(0);
                 if (NULL == mdoc->last->body->child)  
                         if ( ! mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_NOBODY))  
                                 return(0);  
                 break;                  break;
         case (LIST_bullet):          case (LIST_bullet):
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
Line 1143  post_it(POST_ARGS)
Line 1147  post_it(POST_ARGS)
         case (LIST_enum):          case (LIST_enum):
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
         case (LIST_hyphen):          case (LIST_hyphen):
                   if (NULL == mdoc->last->body->child)
                           if ( ! mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_NOBODY))
                                   return(0);
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
         case (LIST_item):          case (LIST_item):
                 if (mdoc->last->head->child)                  if (mdoc->last->head->child)
                         if ( ! mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_ARGSLOST))                          if ( ! mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_ARGSLOST))
                                 return(0);                                  return(0);
                 if (NULL == mdoc->last->body->child)  
                         if ( ! mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_NOBODY))  
                                 return(0);  
                 break;                  break;
         case (LIST_column):          case (LIST_column):
                 cols = -1;                  cols = (int)n->data.Bl->ncols;
                 for (i = 0; i < (int)n->args->argc; i++)  
                         if (MDOC_Column == n->args->argv[i].arg) {  
                                 cols = (int)n->args->argv[i].sz;  
                                 break;  
                         }  
   
                 assert(-1 != cols);  
                 assert(NULL == mdoc->last->head->child);                  assert(NULL == mdoc->last->head->child);
   
                 if (NULL == mdoc->last->body->child)                  if (NULL == mdoc->last->body->child)
Line 1200  post_bl_head(POST_ARGS) 
Line 1198  post_bl_head(POST_ARGS) 
         n = mdoc->last->parent;          n = mdoc->last->parent;
   
         if (LIST_column == n->data.Bl->type) {          if (LIST_column == n->data.Bl->type) {
                 for (i = 0; i < (int)n->args->argc; i++)                  if (n->data.Bl->ncols && mdoc->last->nchild) {
                         if (MDOC_Column == n->args->argv[i].arg)  
                                 break;  
                 assert(i < (int)n->args->argc);  
   
                 if (n->args->argv[i].sz && mdoc->last->nchild) {  
                         mdoc_nmsg(mdoc, n, MANDOCERR_COLUMNS);                          mdoc_nmsg(mdoc, n, MANDOCERR_COLUMNS);
                         return(0);                          return(0);
                 }                  }

Legend:
Removed from v.1.107  
changed lines
  Added in v.1.111

CVSweb