[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.128 and 1.129

version 1.128, 2010/11/29 15:45:15 version 1.129, 2010/11/29 16:06:46
Line 193  const struct valids mdoc_valids[MDOC_MAX] = {
Line 193  const struct valids mdoc_valids[MDOC_MAX] = {
         { NULL, posts_nm },                     /* Nm */          { NULL, posts_nm },                     /* Nm */
         { NULL, posts_wline },                  /* Op */          { NULL, posts_wline },                  /* Op */
         { NULL, NULL },                         /* Ot */          { NULL, NULL },                         /* Ot */
         { NULL, NULL },                         /* Pa */          { NULL, posts_defaults },               /* Pa */
         { pres_rv, NULL },                      /* Rv */          { pres_rv, NULL },                      /* Rv */
         { NULL, posts_st },                     /* St */          { NULL, posts_st },                     /* St */
         { NULL, NULL },                         /* Va */          { NULL, NULL },                         /* Va */
Line 1154  post_vt(POST_ARGS)
Line 1154  post_vt(POST_ARGS)
 static int  static int
 post_nm(POST_ARGS)  post_nm(POST_ARGS)
 {  {
           struct mdoc_node *nn;
           char              buf[BUFSIZ];
   
         if (mdoc->last->child)          /* If no child specified, make sure we have the meta name. */
   
           if (NULL == mdoc->last->child && NULL == mdoc->meta.name) {
                   mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_NONAME);
                 return(1);                  return(1);
         if (mdoc->meta.name)          } else if (mdoc->meta.name)
                 return(1);                  return(1);
         return(mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_NONAME));  
           /* If no meta name, set it from the child. */
   
           buf[0] = '\0';
   
           for (nn = mdoc->last->child; nn; nn = nn->next) {
                   /* XXX - copied from concat(). */
                   assert(MDOC_TEXT == nn->type);
   
                   if (strlcat(buf, nn->string, BUFSIZ) >= BUFSIZ) {
                           mdoc_nmsg(mdoc, nn, MANDOCERR_MEM);
                           return(0);
                   }
   
                   if (NULL == nn->next)
                           continue;
   
                   if (strlcat(buf, " ", BUFSIZ) >= BUFSIZ) {
                           mdoc_nmsg(mdoc, nn, MANDOCERR_MEM);
                           return(0);
                   }
           }
   
           mdoc->meta.name = mandoc_strdup(buf);
           return(1);
 }  }
   
 static int  static int
Line 1186  post_defaults(POST_ARGS)
Line 1215  post_defaults(POST_ARGS)
   
         /*          /*
          * The `Ar' defaults to "file ..." if no value is provided as an           * The `Ar' defaults to "file ..." if no value is provided as an
          * argument; the `Mt' macro uses "~"; the `Li' just gets an           * argument; the `Mt' and `Pa' macros use "~"; the `Li' just
          * empty string.           * gets an empty string.
          */           */
   
         if (mdoc->last->child)          if (mdoc->last->child)
Line 1213  post_defaults(POST_ARGS)
Line 1242  post_defaults(POST_ARGS)
                 if ( ! mdoc_word_alloc(mdoc, nn->line, nn->pos, ""))                  if ( ! mdoc_word_alloc(mdoc, nn->line, nn->pos, ""))
                         return(0);                          return(0);
                 break;                  break;
           case (MDOC_Pa):
                   /* FALLTHROUGH */
         case (MDOC_Mt):          case (MDOC_Mt):
                 if ( ! mdoc_word_alloc(mdoc, nn->line, nn->pos, "~"))                  if ( ! mdoc_word_alloc(mdoc, nn->line, nn->pos, "~"))
                         return(0);                          return(0);

Legend:
Removed from v.1.128  
changed lines
  Added in v.1.129

CVSweb