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

Diff for /mandoc/Attic/action.c between version 1.14 and 1.16

version 1.14, 2009/01/20 13:44:05 version 1.16, 2009/01/21 11:35:26
Line 193  post_sh(struct mdoc *mdoc)
Line 193  post_sh(struct mdoc *mdoc)
                 return(1);                  return(1);
         if (xstrlcats(buf, mdoc->last->child, 64)) {          if (xstrlcats(buf, mdoc->last->child, 64)) {
                 if (SEC_CUSTOM != (sec = mdoc_atosec(buf)))                  if (SEC_CUSTOM != (sec = mdoc_atosec(buf)))
                         mdoc->sec_lastn = sec;                          mdoc->lastnamed = sec;
                 mdoc->sec_last = sec;  
                 return(1);                  return(1);
         }          }
   
Line 246  post_dt(struct mdoc *mdoc)
Line 245  post_dt(struct mdoc *mdoc)
         if (NULL == mdoc->meta.title)          if (NULL == mdoc->meta.title)
                 mdoc->meta.title = xstrdup("untitled");                  mdoc->meta.title = xstrdup("untitled");
   
           mdoc_msg(mdoc, "title: %s", mdoc->meta.title);
   
         return(post_prologue(mdoc));          return(post_prologue(mdoc));
 }  }
   
Line 266  post_os(struct mdoc *mdoc)
Line 267  post_os(struct mdoc *mdoc)
                 return(mdoc_err(mdoc, "macro parameters too long"));                  return(mdoc_err(mdoc, "macro parameters too long"));
   
         mdoc->meta.os = xstrdup(buf[0] ? buf : "local");          mdoc->meta.os = xstrdup(buf[0] ? buf : "local");
         mdoc->sec_lastn = mdoc->sec_last = SEC_BODY;          mdoc->lastnamed = SEC_BODY;
         mdoc->flags |= MDOC_BODYPARSE;  
   
         return(post_prologue(mdoc));          return(post_prologue(mdoc));
 }  }
Line 279  post_os(struct mdoc *mdoc)
Line 279  post_os(struct mdoc *mdoc)
 static int  static int
 post_dd(struct mdoc *mdoc)  post_dd(struct mdoc *mdoc)
 {  {
         char              date[64];          char              buf[64];
         size_t            sz;  
         char             *p;  
         struct mdoc_node *n;  
   
         assert(MDOC_ELEM == mdoc->last->type);          assert(MDOC_ELEM == mdoc->last->type);
         assert(MDOC_Dd == mdoc->last->tok);          assert(MDOC_Dd == mdoc->last->tok);
   
         n = mdoc->last->child;  
         assert(0 == mdoc->meta.date);          assert(0 == mdoc->meta.date);
         date[0] = 0;  
   
         sz = 64;          if ( ! xstrlcats(buf, mdoc->last->child, 64))
                   return(mdoc_err(mdoc, "macro parameters too long"));
           if (0 == (mdoc->meta.date = mdoc_atotime(buf)))
                   return(mdoc_err(mdoc, "invalid parameter syntax"));
   
         for ( ; 0 == mdoc->meta.date && n; n = n->next) {          mdoc_msg(mdoc, "date: %u", mdoc->meta.date);
                 assert(MDOC_TEXT == n->type);  
                 p = n->data.text.string;  
   
                 if (xstrcmp(p, "$Mdocdate$")) {          return(post_prologue(mdoc));
                         mdoc->meta.date = time(NULL);  
                         continue;  
                 } else if (xstrcmp(p, "$")) {  
                         mdoc->meta.date = mdoc_atotime(date);  
                         continue;  
                 } else if (xstrcmp(p, "$Mdocdate:"))  
                         continue;  
   
                 if ( ! xstrlcat(date, n->data.text.string, sz))  
                         return(mdoc_nerr(mdoc, n, "invalid parameter syntax"));  
                 if (n->next && ! xstrlcat(date, " ", sz))  
                         return(mdoc_nerr(mdoc, n, "invalid parameter syntax"));  
         }  
   
         if (mdoc->meta.date && NULL == n)  
                 return(post_prologue(mdoc));  
         else if (n)  
                 return(mdoc_err(mdoc, "invalid parameter syntax"));  
         if ((mdoc->meta.date = mdoc_atotime(date)))  
                 return(post_prologue(mdoc));  
         return(mdoc_err(mdoc, "invalid parameter syntax"));  
 }  }
   
   

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.16

CVSweb