[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.343 and 1.347

version 1.343, 2017/06/25 17:43:45 version 1.347, 2017/07/02 15:31:59
Line 33 
Line 33 
   
 #include "mandoc_aux.h"  #include "mandoc_aux.h"
 #include "mandoc.h"  #include "mandoc.h"
   #include "mandoc_xr.h"
 #include "roff.h"  #include "roff.h"
 #include "mdoc.h"  #include "mdoc.h"
 #include "libmandoc.h"  #include "libmandoc.h"
Line 1103  post_fname(POST_ARGS)
Line 1104  post_fname(POST_ARGS)
         if ( ! (cp[0] == '\0' || (cp[0] == '(' && cp[1] == '*')))          if ( ! (cp[0] == '\0' || (cp[0] == '(' && cp[1] == '*')))
                 mandoc_msg(MANDOCERR_FN_PAREN, mdoc->parse,                  mandoc_msg(MANDOCERR_FN_PAREN, mdoc->parse,
                     n->line, n->pos + pos, n->string);                      n->line, n->pos + pos, n->string);
           if (n->sec == SEC_SYNOPSIS && mdoc->meta.msec != NULL)
                   mandoc_xr_add(mdoc->meta.msec, n->string, -1, -1);
 }  }
   
 static void  static void
Line 1168  post_nm(POST_ARGS)
Line 1171  post_nm(POST_ARGS)
   
         n = mdoc->last;          n = mdoc->last;
   
           if ((n->sec == SEC_NAME || n->sec == SEC_SYNOPSIS) &&
               n->child != NULL && n->child->type == ROFFT_TEXT &&
               mdoc->meta.msec != NULL)
                   mandoc_xr_add(mdoc->meta.msec, n->child->string, -1, -1);
   
         if (n->last != NULL &&          if (n->last != NULL &&
             (n->last->tok == MDOC_Pp ||              (n->last->tok == MDOC_Pp ||
              n->last->tok == MDOC_Lp))               n->last->tok == MDOC_Lp))
Line 1460  post_it(POST_ARGS)
Line 1468  post_it(POST_ARGS)
   
                 assert(nit->head->child == NULL);                  assert(nit->head->child == NULL);
   
                 i = 0;                  if (nit->head->next->child == NULL &&
                 for (nch = nit->child; nch != NULL; nch = nch->next)                      nit->head->next->next == NULL) {
                         if (nch->type == ROFFT_BODY)                          mandoc_msg(MANDOCERR_MACRO_EMPTY, mdoc->parse,
                                 i++;                              nit->line, nit->pos, "It");
                           roff_node_delete(mdoc, nit);
                           break;
                   }
   
                   i = 0;
                   for (nch = nit->child; nch != NULL; nch = nch->next) {
                           if (nch->type != ROFFT_BODY)
                                   continue;
                           if (i++ && nch->flags & NODE_LINE)
                                   mandoc_msg(MANDOCERR_TA_LINE, mdoc->parse,
                                       nch->line, nch->pos, "Ta");
                   }
                 if (i < cols || i > cols + 1)                  if (i < cols || i > cols + 1)
                         mandoc_vmsg(MANDOCERR_BL_COL,                          mandoc_vmsg(MANDOCERR_BL_COL,
                             mdoc->parse, nit->line, nit->pos,                              mdoc->parse, nit->line, nit->pos,
                             "%d columns, %d cells", cols, i);                              "%d columns, %d cells", cols, i);
                   else if (nit->head->next->child != NULL &&
                       nit->head->next->child->line > nit->line)
                           mandoc_msg(MANDOCERR_IT_NOARG, mdoc->parse,
                               nit->line, nit->pos, "Bl -column It");
                 break;                  break;
         default:          default:
                 abort();                  abort();
Line 1983  post_hyph(POST_ARGS)
Line 2006  post_hyph(POST_ARGS)
 static void  static void
 post_ns(POST_ARGS)  post_ns(POST_ARGS)
 {  {
           struct roff_node        *n;
   
         if (mdoc->last->flags & NODE_LINE)          n = mdoc->last;
           if (n->flags & NODE_LINE ||
               (n->next != NULL && n->next->flags & NODE_DELIMC))
                 mandoc_msg(MANDOCERR_NS_SKIP, mdoc->parse,                  mandoc_msg(MANDOCERR_NS_SKIP, mdoc->parse,
                     mdoc->last->line, mdoc->last->pos, NULL);                      n->line, n->pos, NULL);
 }  }
   
 static void  static void
Line 2318  post_xr(POST_ARGS)
Line 2344  post_xr(POST_ARGS)
         if (nch->next == NULL) {          if (nch->next == NULL) {
                 mandoc_vmsg(MANDOCERR_XR_NOSEC, mdoc->parse,                  mandoc_vmsg(MANDOCERR_XR_NOSEC, mdoc->parse,
                     n->line, n->pos, "Xr %s", nch->string);                      n->line, n->pos, "Xr %s", nch->string);
         } else          } else {
                 assert(nch->next == n->last);                  assert(nch->next == n->last);
                   if(mandoc_xr_add(nch->next->string, nch->string,
                       nch->line, nch->pos))
                           mandoc_vmsg(MANDOCERR_XR_SELF, mdoc->parse,
                               nch->line, nch->pos, "Xr %s %s",
                               nch->string, nch->next->string);
           }
         post_delim(mdoc);          post_delim(mdoc);
 }  }
   

Legend:
Removed from v.1.343  
changed lines
  Added in v.1.347

CVSweb