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

Diff for /mandoc/read.c between version 1.32 and 1.35

version 1.32, 2012/11/16 22:21:05 version 1.35, 2013/05/30 03:52:59
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, 2011 Ingo Schwarze <schwarze@openbsd.org>   * Copyright (c) 2010, 2011, 2012, 2013 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 180  static const char * const mandocerrs[MANDOCERR_MAX] = 
Line 180  static const char * const mandocerrs[MANDOCERR_MAX] = 
         "skipping unknown macro",          "skipping unknown macro",
         "NOT IMPLEMENTED, please use groff: skipping request",          "NOT IMPLEMENTED, please use groff: skipping request",
         "argument count wrong",          "argument count wrong",
           "skipping column outside column list",
         "skipping end of block that is not open",          "skipping end of block that is not open",
         "missing end of block",          "missing end of block",
         "scope open on exit",          "scope open on exit",
Line 327  mparse_buf_r(struct mparse *curp, struct buf blk, int 
Line 328  mparse_buf_r(struct mparse *curp, struct buf blk, int 
                                 break;                                  break;
                         }                          }
   
                           /*
                            * Make sure we have space for at least
                            * one backslash and one other character
                            * and the trailing NUL byte.
                            */
   
                           if (pos + 2 >= (int)ln.sz)
                                   resize_buf(&ln, 256);
   
                         /*                          /*
                          * Warn about bogus characters.  If you're using                           * Warn about bogus characters.  If you're using
                          * non-ASCII encoding, you're screwing your                           * non-ASCII encoding, you're screwing your
Line 343  mparse_buf_r(struct mparse *curp, struct buf blk, int 
Line 353  mparse_buf_r(struct mparse *curp, struct buf blk, int 
                                 mandoc_msg(MANDOCERR_BADCHAR, curp,                                  mandoc_msg(MANDOCERR_BADCHAR, curp,
                                                 curp->line, pos, NULL);                                                  curp->line, pos, NULL);
                                 i++;                                  i++;
                                 if (pos >= (int)ln.sz)  
                                         resize_buf(&ln, 256);  
                                 ln.buf[pos++] = '?';                                  ln.buf[pos++] = '?';
                                 continue;                                  continue;
                         }                          }
Line 352  mparse_buf_r(struct mparse *curp, struct buf blk, int 
Line 360  mparse_buf_r(struct mparse *curp, struct buf blk, int 
                         /* Trailing backslash = a plain char. */                          /* Trailing backslash = a plain char. */
   
                         if ('\\' != blk.buf[i] || i + 1 == (int)blk.sz) {                          if ('\\' != blk.buf[i] || i + 1 == (int)blk.sz) {
                                 if (pos >= (int)ln.sz)  
                                         resize_buf(&ln, 256);  
                                 ln.buf[pos++] = blk.buf[i++];                                  ln.buf[pos++] = blk.buf[i++];
                                 continue;                                  continue;
                         }                          }
Line 395  mparse_buf_r(struct mparse *curp, struct buf blk, int 
Line 401  mparse_buf_r(struct mparse *curp, struct buf blk, int 
                                 break;                                  break;
                         }                          }
   
                         /* Some other escape sequence, copy & cont. */                          /* Catch escaped bogus characters. */
   
                         if (pos + 1 >= (int)ln.sz)                          c = (unsigned char) blk.buf[i+1];
                                 resize_buf(&ln, 256);  
   
                           if ( ! (isascii(c) &&
                                           (isgraph(c) || isblank(c)))) {
                                   mandoc_msg(MANDOCERR_BADCHAR, curp,
                                                   curp->line, pos, NULL);
                                   i += 2;
                                   ln.buf[pos++] = '?';
                                   continue;
                           }
   
                           /* Some other escape sequence, copy & cont. */
   
                         ln.buf[pos++] = blk.buf[i++];                          ln.buf[pos++] = blk.buf[i++];
                         ln.buf[pos++] = blk.buf[i++];                          ln.buf[pos++] = blk.buf[i++];
                 }                  }
Line 740  mparse_alloc(enum mparset inttype, enum mandoclevel wl
Line 756  mparse_alloc(enum mparset inttype, enum mandoclevel wl
         curp->inttype = inttype;          curp->inttype = inttype;
         curp->defos = defos;          curp->defos = defos;
   
         curp->roff = roff_alloc(curp);          curp->roff = roff_alloc(inttype, curp);
         return(curp);          return(curp);
 }  }
   

Legend:
Removed from v.1.32  
changed lines
  Added in v.1.35

CVSweb