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

Diff for /mandoc/mdoc.c between version 1.74 and 1.78

version 1.74, 2009/04/02 06:51:44 version 1.78, 2009/06/15 09:55:43
Line 1 
Line 1 
 /* $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@openbsd.org>   * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *   *
  * 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   * purpose with or without fee is hereby granted, provided that the above
  * above copyright notice and this permission notice appear in all   * copyright notice and this permission notice appear in all copies.
  * copies.  
  *   *
  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL   * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED   * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE   * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL   * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR   * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER   * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  * PERFORMANCE OF THIS SOFTWARE.  
  */   */
 #include <assert.h>  #include <assert.h>
 #include <ctype.h>  #include <ctype.h>
Line 295  mdoc_vwarn(struct mdoc *mdoc, int ln, int pos, 
Line 293  mdoc_vwarn(struct mdoc *mdoc, int ln, int pos, 
   
   
 int  int
   mdoc_nwarn(struct mdoc *mdoc, const struct mdoc_node *node, enum mdoc_warn type,
                   const char *fmt, ...)
   {
           char             buf[256];
           va_list          ap;
   
           if (NULL == mdoc->cb.mdoc_warn)
                   return(0);
   
           va_start(ap, fmt);
           (void)vsnprintf(buf, sizeof(buf) - 1, fmt, ap);
           va_end(ap);
           return((*mdoc->cb.mdoc_warn)(mdoc->data, node->line, node->pos, type,
               buf));
   }
   
   int
   mdoc_nerr(struct mdoc *mdoc, const struct mdoc_node *node, const char *fmt, ...)
   {
           char             buf[256];
           va_list          ap;
   
           if (NULL == mdoc->cb.mdoc_err)
                   return(0);
   
           va_start(ap, fmt);
           (void)vsnprintf(buf, sizeof(buf) - 1, fmt, ap);
           va_end(ap);
           return((*mdoc->cb.mdoc_err)(mdoc->data, node->line, node->pos, buf));
   }
   
   
   int
   mdoc_warn(struct mdoc *mdoc, enum mdoc_warn type, const char *fmt, ...)
   {
           char             buf[256];
           va_list          ap;
   
           if (NULL == mdoc->cb.mdoc_warn)
                   return(0);
   
           va_start(ap, fmt);
           (void)vsnprintf(buf, sizeof(buf) - 1, fmt, ap);
           va_end(ap);
           return((*mdoc->cb.mdoc_warn)(mdoc->data, mdoc->last->line,
               mdoc->last->pos, type, buf));
   }
   
   
   int
   mdoc_err(struct mdoc *mdoc, const char *fmt, ...)
   {
           char             buf[256];
           va_list          ap;
   
           if (NULL == mdoc->cb.mdoc_err)
                   return(0);
   
           va_start(ap, fmt);
           (void)vsnprintf(buf, sizeof(buf) - 1, fmt, ap);
           va_end(ap);
           return((*mdoc->cb.mdoc_err)(mdoc->data, mdoc->last->line,
               mdoc->last->pos, buf));
   }
   
   
   void
   mdoc_msg(struct mdoc *mdoc, const char *fmt, ...)
   {
           char              buf[256];
           va_list           ap;
   
           if (NULL == mdoc->cb.mdoc_msg)
                   return;
   
           va_start(ap, fmt);
           (void)vsnprintf(buf, sizeof(buf) - 1, fmt, ap);
           va_end(ap);
           (*mdoc->cb.mdoc_msg)(mdoc->data, mdoc->last->line, mdoc->last->pos,
               buf);
   }
   
   
   void
   mdoc_pmsg(struct mdoc *mdoc, int line, int pos, const char *fmt, ...)
   {
           char              buf[256];
           va_list           ap;
   
           if (NULL == mdoc->cb.mdoc_msg)
                   return;
   
           va_start(ap, fmt);
           (void)vsnprintf(buf, sizeof(buf) - 1, fmt, ap);
           va_end(ap);
           (*mdoc->cb.mdoc_msg)(mdoc->data, line, pos, buf);
   }
   
   
   int
   mdoc_pwarn(struct mdoc *mdoc, int line, int pos, enum mdoc_warn type,
                   const char *fmt, ...)
   {
           char             buf[256];
           va_list          ap;
   
           if (NULL == mdoc->cb.mdoc_warn)
                   return(0);
   
           va_start(ap, fmt);
           (void)vsnprintf(buf, sizeof(buf) - 1, fmt, ap);
           va_end(ap);
           return((*mdoc->cb.mdoc_warn)(mdoc->data, line, pos, type, buf));
   }
   
   int
   mdoc_perr(struct mdoc *mdoc, int line, int pos, const char *fmt, ...)
   {
           char             buf[256];
           va_list          ap;
   
           if (NULL == mdoc->cb.mdoc_err)
                   return(0);
   
           va_start(ap, fmt);
           (void)vsnprintf(buf, sizeof(buf) - 1, fmt, ap);
           va_end(ap);
           return((*mdoc->cb.mdoc_err)(mdoc->data, line, pos, buf));
   }
   
   
   int
 mdoc_macro(struct mdoc *m, int tok,  mdoc_macro(struct mdoc *m, int tok,
                 int ln, int pp, int *pos, char *buf)                  int ln, int pp, int *pos, char *buf)
 {  {
Line 482  mdoc_block_alloc(struct mdoc *mdoc, int line, int pos,
Line 612  mdoc_block_alloc(struct mdoc *mdoc, int line, int pos,
         p = node_alloc(mdoc, line, pos, tok, MDOC_BLOCK);          p = node_alloc(mdoc, line, pos, tok, MDOC_BLOCK);
         if (NULL == p)          if (NULL == p)
                 return(0);                  return(0);
         if ((p->args = args))          p->args = args;
           if (p->args)
                 (args->refcnt)++;                  (args->refcnt)++;
         return(node_append(mdoc, p));          return(node_append(mdoc, p));
 }  }
Line 497  mdoc_elem_alloc(struct mdoc *mdoc, int line, int pos, 
Line 628  mdoc_elem_alloc(struct mdoc *mdoc, int line, int pos, 
         p = node_alloc(mdoc, line, pos, tok, MDOC_ELEM);          p = node_alloc(mdoc, line, pos, tok, MDOC_ELEM);
         if (NULL == p)          if (NULL == p)
                 return(0);                  return(0);
         if ((p->args = args))          p->args = args;
           if (p->args)
                 (args->refcnt)++;                  (args->refcnt)++;
         return(node_append(mdoc, p));          return(node_append(mdoc, p));
 }  }

Legend:
Removed from v.1.74  
changed lines
  Added in v.1.78

CVSweb