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

Diff for /mandoc/mdoc.c between version 1.204 and 1.209

version 1.204, 2013/10/05 22:08:12 version 1.209, 2014/03/23 11:25:26
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>   * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010, 2012 Ingo Schwarze <schwarze@openbsd.org>   * Copyright (c) 2010, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
  *   *
  * Permission to use, copy, modify, and distribute this software for any   * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above   * purpose with or without fee is hereby granted, provided that the above
Line 30 
Line 30 
   
 #include "mdoc.h"  #include "mdoc.h"
 #include "mandoc.h"  #include "mandoc.h"
   #include "mandoc_aux.h"
 #include "libmdoc.h"  #include "libmdoc.h"
 #include "libmandoc.h"  #include "libmandoc.h"
   
Line 197  mdoc_free(struct mdoc *mdoc)
Line 198  mdoc_free(struct mdoc *mdoc)
  * Allocate volatile and non-volatile parse resources.   * Allocate volatile and non-volatile parse resources.
  */   */
 struct mdoc *  struct mdoc *
 mdoc_alloc(struct roff *roff, struct mparse *parse, char *defos)  mdoc_alloc(struct roff *roff, struct mparse *parse,
           char *defos, int quick)
 {  {
         struct mdoc     *p;          struct mdoc     *p;
   
Line 205  mdoc_alloc(struct roff *roff, struct mparse *parse, ch
Line 207  mdoc_alloc(struct roff *roff, struct mparse *parse, ch
   
         p->parse = parse;          p->parse = parse;
         p->defos = defos;          p->defos = defos;
           p->quick = quick;
         p->roff = roff;          p->roff = roff;
   
         mdoc_hash_init();          mdoc_hash_init();
Line 434  node_alloc(struct mdoc *mdoc, int line, int pos, 
Line 437  node_alloc(struct mdoc *mdoc, int line, int pos, 
         p->sec = mdoc->lastsec;          p->sec = mdoc->lastsec;
         p->line = line;          p->line = line;
         p->pos = pos;          p->pos = pos;
           p->lastline = line;
         p->tok = tok;          p->tok = tok;
         p->type = type;          p->type = type;
   
Line 582  mdoc_word_alloc(struct mdoc *mdoc, int line, int pos, 
Line 586  mdoc_word_alloc(struct mdoc *mdoc, int line, int pos, 
         return(1);          return(1);
 }  }
   
   void
   mdoc_word_append(struct mdoc *mdoc, const char *p)
   {
           struct mdoc_node        *n;
           char                    *addstr, *newstr;
   
           n = mdoc->last;
           addstr = roff_strdup(mdoc->roff, p);
           if (-1 == asprintf(&newstr, "%s %s", n->string, addstr)) {
                   perror(NULL);
                   exit((int)MANDOCLEVEL_SYSERR);
           }
           free(addstr);
           free(n->string);
           n->string = newstr;
           mdoc->next = MDOC_NEXT_SIBLING;
   }
   
 static void  static void
 mdoc_node_free(struct mdoc_node *p)  mdoc_node_free(struct mdoc_node *p)
 {  {
Line 828  mdoc_ptext(struct mdoc *mdoc, int line, char *buf, int
Line 849  mdoc_ptext(struct mdoc *mdoc, int line, char *buf, int
   
         assert(buf < end);          assert(buf < end);
   
         if (mandoc_eos(buf+offs, (size_t)(end-buf-offs), 0))          if (mandoc_eos(buf+offs, (size_t)(end-buf-offs)))
                 mdoc->last->flags |= MDOC_EOS;                  mdoc->last->flags |= MDOC_EOS;
   
         return(1);          return(1);
Line 942  mdoc_pmacro(struct mdoc *mdoc, int ln, char *buf, int 
Line 963  mdoc_pmacro(struct mdoc *mdoc, int ln, char *buf, int 
   
         if ( ! mdoc_macro(mdoc, tok, ln, sv, &offs, buf))          if ( ! mdoc_macro(mdoc, tok, ln, sv, &offs, buf))
                 goto err;                  goto err;
   
           /* In quick mode (for mandocdb), abort after the NAME section. */
   
           if (mdoc->quick && MDOC_Sh == tok &&
               SEC_NAME != mdoc->last->sec)
                   return(2);
   
         return(1);          return(1);
   

Legend:
Removed from v.1.204  
changed lines
  Added in v.1.209

CVSweb