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

Diff for /mandoc/roff.c between version 1.200 and 1.203

version 1.200, 2014/03/20 02:57:28 version 1.203, 2014/04/05 20:34:57
Line 26 
Line 26 
 #include <string.h>  #include <string.h>
   
 #include "mandoc.h"  #include "mandoc.h"
   #include "mandoc_aux.h"
 #include "libroff.h"  #include "libroff.h"
 #include "libmandoc.h"  #include "libmandoc.h"
   
Line 61  enum rofft {
Line 62  enum rofft {
         ROFF_ns,          ROFF_ns,
         ROFF_ps,          ROFF_ps,
         ROFF_rm,          ROFF_rm,
           ROFF_rr,
         ROFF_so,          ROFF_so,
         ROFF_ta,          ROFF_ta,
         ROFF_tr,          ROFF_tr,
Line 201  static enum rofferr  roff_parsetext(char **, size_t *,
Line 203  static enum rofferr  roff_parsetext(char **, size_t *,
 static  enum rofferr     roff_res(struct roff *,  static  enum rofferr     roff_res(struct roff *,
                                 char **, size_t *, int, int);                                  char **, size_t *, int, int);
 static  enum rofferr     roff_rm(ROFF_ARGS);  static  enum rofferr     roff_rm(ROFF_ARGS);
   static  enum rofferr     roff_rr(ROFF_ARGS);
 static  void             roff_setstr(struct roff *,  static  void             roff_setstr(struct roff *,
                                 const char *, const char *, int);                                  const char *, const char *, int);
 static  void             roff_setstrn(struct roffkv **, const char *,  static  void             roff_setstrn(struct roffkv **, const char *,
Line 250  static struct roffmac  roffs[ROFF_MAX] = {
Line 253  static struct roffmac  roffs[ROFF_MAX] = {
         { "ns", roff_line_ignore, NULL, NULL, 0, NULL },          { "ns", roff_line_ignore, NULL, NULL, 0, NULL },
         { "ps", roff_line_ignore, NULL, NULL, 0, NULL },          { "ps", roff_line_ignore, NULL, NULL, 0, NULL },
         { "rm", roff_rm, NULL, NULL, 0, NULL },          { "rm", roff_rm, NULL, NULL, 0, NULL },
           { "rr", roff_rr, NULL, NULL, 0, NULL },
         { "so", roff_so, NULL, NULL, 0, NULL },          { "so", roff_so, NULL, NULL, 0, NULL },
         { "ta", roff_line_ignore, NULL, NULL, 0, NULL },          { "ta", roff_line_ignore, NULL, NULL, 0, NULL },
         { "tr", roff_tr, NULL, NULL, 0, NULL },          { "tr", roff_tr, NULL, NULL, 0, NULL },
Line 655  roff_parsetext(char **bufp, size_t *szp, int pos, int 
Line 659  roff_parsetext(char **bufp, size_t *szp, int pos, int 
   
         /* Spring the input line trap. */          /* Spring the input line trap. */
         if (1 == roffit_lines) {          if (1 == roffit_lines) {
                 isz = asprintf(&p, "%s\n.%s", *bufp, roffit_macro);                  isz = mandoc_asprintf(&p, "%s\n.%s", *bufp, roffit_macro);
                 if (-1 == isz) {  
                         perror(NULL);  
                         exit((int)MANDOCLEVEL_SYSERR);  
                 }  
                 free(*bufp);                  free(*bufp);
                 *bufp = p;                  *bufp = p;
                 *szp = isz + 1;                  *szp = isz + 1;
Line 1502  roff_nr(ROFF_ARGS)
Line 1502  roff_nr(ROFF_ARGS)
   
         roff_setreg(r, key, iv, sign);          roff_setreg(r, key, iv, sign);
   
           return(ROFF_IGN);
   }
   
   static enum rofferr
   roff_rr(ROFF_ARGS)
   {
           struct roffreg  *reg, **prev;
           const char      *name;
           char            *cp;
   
           cp = *bufp + pos;
           name = roff_getname(r, &cp, ln, pos);
   
           prev = &r->regtab;
           while (1) {
                   reg = *prev;
                   if (NULL == reg || !strcmp(name, reg->key.p))
                           break;
                   prev = &reg->next;
           }
           if (NULL != reg) {
                   *prev = reg->next;
                   free(reg->key.p);
                   free(reg);
           }
         return(ROFF_IGN);          return(ROFF_IGN);
 }  }
   

Legend:
Removed from v.1.200  
changed lines
  Added in v.1.203

CVSweb