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

Diff for /mandoc/mdoc.c between version 1.221 and 1.224

version 1.221, 2014/07/30 21:18:24 version 1.224, 2014/08/10 23:54:41
Line 15 
Line 15 
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF   * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */   */
 #ifdef HAVE_CONFIG_H  
 #include "config.h"  #include "config.h"
 #endif  
   
 #include <sys/types.h>  #include <sys/types.h>
   
Line 123  mdoc_free1(struct mdoc *mdoc)
Line 121  mdoc_free1(struct mdoc *mdoc)
   
         if (mdoc->first)          if (mdoc->first)
                 mdoc_node_delete(mdoc, mdoc->first);                  mdoc_node_delete(mdoc, mdoc->first);
         if (mdoc->meta.title)          free(mdoc->meta.msec);
                 free(mdoc->meta.title);          free(mdoc->meta.vol);
         if (mdoc->meta.os)          free(mdoc->meta.arch);
                 free(mdoc->meta.os);          free(mdoc->meta.date);
         if (mdoc->meta.name)          free(mdoc->meta.title);
                 free(mdoc->meta.name);          free(mdoc->meta.os);
         if (mdoc->meta.arch)          free(mdoc->meta.name);
                 free(mdoc->meta.arch);  
         if (mdoc->meta.vol)  
                 free(mdoc->meta.vol);  
         if (mdoc->meta.msec)  
                 free(mdoc->meta.msec);  
         if (mdoc->meta.date)  
                 free(mdoc->meta.date);  
 }  }
   
 /*  /*
Line 271  mdoc_macro(MACRO_PROT_ARGS)
Line 262  mdoc_macro(MACRO_PROT_ARGS)
 {  {
         assert(tok < MDOC_MAX);          assert(tok < MDOC_MAX);
   
         /* If we're in the body, deny prologue calls. */          if (mdoc->flags & MDOC_PBODY) {
                   if (tok == MDOC_Dt) {
         if (MDOC_PROLOGUE & mdoc_macros[tok].flags &&                          mandoc_vmsg(MANDOCERR_DT_LATE,
             MDOC_PBODY & mdoc->flags) {                              mdoc->parse, line, ppos,
                 mandoc_vmsg(MANDOCERR_PROLOG_ONLY, mdoc->parse,                              "Dt %s", buf + *pos);
                     line, ppos, "%s", mdoc_macronames[tok]);                          return(1);
                 return(1);                  }
         }          } else if ( ! (mdoc_macros[tok].flags & MDOC_PROLOGUE)) {
                   if (mdoc->meta.title == NULL) {
         /* If we're in the prologue, deny "body" macros.  */                          mandoc_vmsg(MANDOCERR_DT_NOTITLE,
                               mdoc->parse, line, ppos, "%s %s",
         if ( ! (MDOC_PROLOGUE & mdoc_macros[tok].flags) &&                              mdoc_macronames[tok], buf + *pos);
              ! (MDOC_PBODY & mdoc->flags)) {                          mdoc->meta.title = mandoc_strdup("UNTITLED");
                 mandoc_vmsg(MANDOCERR_PROLOG_BAD, mdoc->parse,                  }
                     line, ppos, "%s", mdoc_macronames[tok]);  
                 if (NULL == mdoc->meta.msec)  
                         mdoc->meta.msec = mandoc_strdup("1");  
                 if (NULL == mdoc->meta.title)  
                         mdoc->meta.title = mandoc_strdup("UNKNOWN");  
                 if (NULL == mdoc->meta.vol)                  if (NULL == mdoc->meta.vol)
                         mdoc->meta.vol = mandoc_strdup("LOCAL");                          mdoc->meta.vol = mandoc_strdup("LOCAL");
                 if (NULL == mdoc->meta.os)  
                         mdoc->meta.os = mandoc_strdup("LOCAL");  
                 if (NULL == mdoc->meta.date)  
                         mdoc->meta.date = mandoc_normdate  
                                 (mdoc->parse, NULL, line, ppos);  
                 mdoc->flags |= MDOC_PBODY;                  mdoc->flags |= MDOC_PBODY;
         }          }
   
Line 838  mdoc_pmacro(struct mdoc *mdoc, int ln, char *buf, int 
Line 819  mdoc_pmacro(struct mdoc *mdoc, int ln, char *buf, int 
         tok = (i > 1 && i < 4) ? mdoc_hash_find(mac) : MDOC_MAX;          tok = (i > 1 && i < 4) ? mdoc_hash_find(mac) : MDOC_MAX;
   
         if (MDOC_MAX == tok) {          if (MDOC_MAX == tok) {
                 mandoc_vmsg(MANDOCERR_MACRO, mdoc->parse,                  mandoc_msg(MANDOCERR_MACRO, mdoc->parse,
                     ln, sv, "%s", buf + sv - 1);                      ln, sv, buf + sv - 1);
                 return(1);                  return(1);
         }          }
   

Legend:
Removed from v.1.221  
changed lines
  Added in v.1.224

CVSweb