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

Diff for /mandoc/Attic/action.c between version 1.6 and 1.9

version 1.6, 2009/01/09 14:45:44 version 1.9, 2009/01/16 12:23:25
Line 159  post_sh(struct mdoc *mdoc)
Line 159  post_sh(struct mdoc *mdoc)
         if (MDOC_HEAD != mdoc->last->type)          if (MDOC_HEAD != mdoc->last->type)
                 return(1);                  return(1);
   
         assert(MDOC_Sh == mdoc->last->data.head.tok);          assert(MDOC_Sh == mdoc->last->tok);
   
         n = mdoc->last->child;          n = mdoc->last->child;
         assert(n);          assert(n);
Line 189  post_dt(struct mdoc *mdoc)
Line 189  post_dt(struct mdoc *mdoc)
         struct mdoc_node *n;          struct mdoc_node *n;
   
         assert(MDOC_ELEM == mdoc->last->type);          assert(MDOC_ELEM == mdoc->last->type);
         assert(MDOC_Dt == mdoc->last->data.elem.tok);          assert(MDOC_Dt == mdoc->last->tok);
         assert(0 == mdoc->meta.title[0]);          assert(0 == mdoc->meta.title[0]);
   
         sz = META_TITLE_SZ;          sz = META_TITLE_SZ;
Line 203  post_dt(struct mdoc *mdoc)
Line 203  post_dt(struct mdoc *mdoc)
                 case (0):                  case (0):
                         if (xstrlcpy(mdoc->meta.title, p, sz))                          if (xstrlcpy(mdoc->meta.title, p, sz))
                                 break;                                  break;
                         return(mdoc_err(mdoc, ERR_SYNTAX_ARGFORM));                          return(mdoc_nerr(mdoc, n, "badly-formed manual title parameter"));
                 case (1):                  case (1):
                         mdoc->meta.msec = mdoc_atomsec(p);                          mdoc->meta.msec = mdoc_atomsec(p);
                         if (MSEC_DEFAULT != mdoc->meta.msec)                          if (MSEC_DEFAULT != mdoc->meta.msec)
                                 break;                                  break;
                         return(mdoc_err(mdoc, ERR_SYNTAX_ARGFORM));                          return(mdoc_nerr(mdoc, n, "badly-formed manual section parameter"));
                 case (2):                  case (2):
                         mdoc->meta.vol = mdoc_atovol(p);                          mdoc->meta.vol = mdoc_atovol(p);
                         if (VOL_DEFAULT != mdoc->meta.vol)                          if (VOL_DEFAULT != mdoc->meta.vol)
Line 216  post_dt(struct mdoc *mdoc)
Line 216  post_dt(struct mdoc *mdoc)
                         mdoc->meta.arch = mdoc_atoarch(p);                          mdoc->meta.arch = mdoc_atoarch(p);
                         if (ARCH_DEFAULT != mdoc->meta.arch)                          if (ARCH_DEFAULT != mdoc->meta.arch)
                                 break;                                  break;
                         return(mdoc_err(mdoc, ERR_SYNTAX_ARGFORM));                          return(mdoc_nerr(mdoc, n, "badly-formed manual volume parameter"));
                 default:                  default:
                         return(mdoc_err(mdoc, ERR_ARGS_MANY));                          return(mdoc_nerr(mdoc, n, "too many parameters"));
                 }                  }
         }          }
   
Line 236  post_os(struct mdoc *mdoc)
Line 236  post_os(struct mdoc *mdoc)
         struct mdoc_node *n;          struct mdoc_node *n;
   
         assert(MDOC_ELEM == mdoc->last->type);          assert(MDOC_ELEM == mdoc->last->type);
         assert(MDOC_Os == mdoc->last->data.elem.tok);          assert(MDOC_Os == mdoc->last->tok);
         assert(0 == mdoc->meta.os[0]);          assert(0 == mdoc->meta.os[0]);
   
         sz = META_OS_SZ;          sz = META_OS_SZ;
Line 246  post_os(struct mdoc *mdoc)
Line 246  post_os(struct mdoc *mdoc)
                 p = n->data.text.string;                  p = n->data.text.string;
   
                 if ( ! xstrlcat(mdoc->meta.os, p, sz))                  if ( ! xstrlcat(mdoc->meta.os, p, sz))
                         return(mdoc_err(mdoc, ERR_SYNTAX_ARGFORM));                          return(mdoc_nerr(mdoc, n, "badly-formed manual system parameter"));
                 if ( ! xstrlcat(mdoc->meta.os, " ", sz))                  if ( ! xstrlcat(mdoc->meta.os, " ", sz))
                         return(mdoc_err(mdoc, ERR_SYNTAX_ARGFORM));                          return(mdoc_nerr(mdoc, n, "badly-formed manual system parameter"));
         }          }
   
         if (0 == mdoc->meta.os[0])          if (0 == mdoc->meta.os[0])
Line 269  post_dd(struct mdoc *mdoc)
Line 269  post_dd(struct mdoc *mdoc)
         struct mdoc_node *n;          struct mdoc_node *n;
   
         assert(MDOC_ELEM == mdoc->last->type);          assert(MDOC_ELEM == mdoc->last->type);
         assert(MDOC_Dd == mdoc->last->data.elem.tok);          assert(MDOC_Dd == mdoc->last->tok);
   
         n = mdoc->last->child;          n = mdoc->last->child;
         assert(0 == mdoc->meta.date);          assert(0 == mdoc->meta.date);
Line 291  post_dd(struct mdoc *mdoc)
Line 291  post_dd(struct mdoc *mdoc)
                         continue;                          continue;
   
                 if ( ! xstrlcat(date, n->data.text.string, sz))                  if ( ! xstrlcat(date, n->data.text.string, sz))
                         return(mdoc_err(mdoc, ERR_SYNTAX_ARGFORM));                          return(mdoc_nerr(mdoc, n, "badly-formed manual date parameter"));
                 if ( ! xstrlcat(date, " ", sz))                  if (n->next && ! xstrlcat(date, " ", sz))
                         return(mdoc_err(mdoc, ERR_SYNTAX_ARGFORM));                          return(mdoc_nerr(mdoc, n, "badly-formed manual date parameter"));
         }          }
   
         if (mdoc->meta.date && NULL == n) {          if (mdoc->meta.date && NULL == n) {
                 mdoc_msg(mdoc, "parsed time: %u since epoch",                  mdoc_msg(mdoc, "parsed time: %u since epoch",
                                 mdoc->meta.date);                                  mdoc->meta.date);
                 return(1);                  return(1);
           } else if (n)
                   return(mdoc_err(mdoc, "badly-formed manual date"));
   
           if ((mdoc->meta.date = mdoc_atotime(date))) {
                   mdoc_msg(mdoc, "parsed time: %u since epoch",
                                   mdoc->meta.date);
                   return(1);
         }          }
   
         return(mdoc_err(mdoc, ERR_SYNTAX_ARGFORM));          return(mdoc_err(mdoc, "badly-formed manual date"));
 }  }
   
   
Line 317  mdoc_action_pre(struct mdoc *mdoc, struct mdoc_node *n
Line 324  mdoc_action_pre(struct mdoc *mdoc, struct mdoc_node *n
 int  int
 mdoc_action_post(struct mdoc *mdoc)  mdoc_action_post(struct mdoc *mdoc)
 {  {
         int              t;  
   
         switch (mdoc->last->type) {          if (MDOC_TEXT == mdoc->last->type)
         case (MDOC_BODY):  
                 t = mdoc->last->data.body.tok;  
                 break;  
         case (MDOC_ELEM):  
                 t = mdoc->last->data.elem.tok;  
                 break;  
         case (MDOC_BLOCK):  
                 t = mdoc->last->data.block.tok;  
                 break;  
         case (MDOC_HEAD):  
                 t = mdoc->last->data.head.tok;  
                 break;  
         default:  
                 return(1);                  return(1);
         }          if (MDOC_ROOT == mdoc->last->type)
                   return(1);
   
         if (NULL == mdoc_actions[t].post)          if (NULL == mdoc_actions[mdoc->last->tok].post)
                 return(1);                  return(1);
         /* TODO: MDOC_Nm... ? */          /* TODO: MDOC_Nm... ? */
         return((*mdoc_actions[t].post)(mdoc));          return((*mdoc_actions[mdoc->last->tok].post)(mdoc));
 }  }

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.9

CVSweb