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

Diff for /mandoc/man_validate.c between version 1.151 and 1.155

version 1.151, 2020/03/13 15:32:28 version 1.155, 2020/10/30 13:24:33
Line 34 
Line 34 
 #include "mandoc_aux.h"  #include "mandoc_aux.h"
 #include "mandoc.h"  #include "mandoc.h"
 #include "roff.h"  #include "roff.h"
 #include "tag.h"  
 #include "man.h"  #include "man.h"
 #include "libmandoc.h"  #include "libmandoc.h"
 #include "roff_int.h"  #include "roff_int.h"
 #include "libman.h"  #include "libman.h"
   #include "tag.h"
   
 #define CHKARGS   struct roff_man *man, struct roff_node *n  #define CHKARGS   struct roff_man *man, struct roff_node *n
   
Line 311  static void
Line 311  static void
 post_SH(CHKARGS)  post_SH(CHKARGS)
 {  {
         struct roff_node        *nc;          struct roff_node        *nc;
           char                    *cp, *tag;
   
         if (n->type != ROFFT_BODY || (nc = n->child) == NULL)          nc = n->child;
           switch (n->type) {
           case ROFFT_HEAD:
                   tag = NULL;
                   deroff(&tag, n);
                   if (tag != NULL) {
                           for (cp = tag; *cp != '\0'; cp++)
                                   if (*cp == ' ')
                                           *cp = '_';
                           if (nc != NULL && nc->type == ROFFT_TEXT &&
                               strcmp(nc->string, tag) == 0)
                                   tag_put(NULL, TAG_STRONG, n);
                           else
                                   tag_put(tag, TAG_FALLBACK, n);
                           free(tag);
                   }
                 return;                  return;
           case ROFFT_BODY:
                   if (nc != NULL)
                           break;
                   return;
           default:
                   return;
           }
   
         if (nc->tok == MAN_PP && nc->body->child != NULL) {          if (nc->tok == MAN_PP && nc->body->child != NULL) {
                 while (nc->body->last != NULL) {                  while (nc->body->last != NULL) {
Line 487  post_TH(CHKARGS)
Line 510  post_TH(CHKARGS)
   
         if (n != NULL)          if (n != NULL)
                 n = n->next;                  n = n->next;
         if (n != NULL && n->string != NULL)          if (n != NULL && n->string != NULL) {
                 man->meta.msec = mandoc_strdup(n->string);                  man->meta.msec = mandoc_strdup(n->string);
         else {                  if (man->filesec != '\0' &&
                       man->filesec != *n->string &&
                       *n->string >= '1' && *n->string <= '9')
                           mandoc_msg(MANDOCERR_MSEC_FILE, n->line, n->pos,
                               "*.%c vs TH ... %c", man->filesec, *n->string);
           } else {
                 man->meta.msec = mandoc_strdup("");                  man->meta.msec = mandoc_strdup("");
                 mandoc_msg(MANDOCERR_MSEC_MISSING,                  mandoc_msg(MANDOCERR_MSEC_MISSING,
                     nb->line, nb->pos, "TH %s", man->meta.title);                      nb->line, nb->pos, "TH %s", man->meta.title);

Legend:
Removed from v.1.151  
changed lines
  Added in v.1.155

CVSweb