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

Diff for /mandoc/read.c between version 1.166 and 1.178

version 1.166, 2017/05/30 19:30:39 version 1.178, 2017/06/17 23:07:00
Line 88  static const char * const mandocerrs[MANDOCERR_MAX] = 
Line 88  static const char * const mandocerrs[MANDOCERR_MAX] = 
   
         "generic style suggestion",          "generic style suggestion",
   
           "Mdocdate found",
           "Mdocdate missing",
           "legacy man(7) date format",
           "RCS id missing",
           "duplicate RCS id",
         "useless macro",          "useless macro",
           "consider using OS macro",
           "errnos out of order",
           "duplicate errno",
           "description line ends with a full stop",
           "no blank before trailing delimiter",
           "function name without markup",
   
         "generic warning",          "generic warning",
   
Line 137  static const char * const mandocerrs[MANDOCERR_MAX] = 
Line 148  static const char * const mandocerrs[MANDOCERR_MAX] = 
         "fill mode already enabled, skipping",          "fill mode already enabled, skipping",
         "fill mode already disabled, skipping",          "fill mode already disabled, skipping",
         "line scope broken",          "line scope broken",
           "skipping blank line in line scope",
   
         /* related to missing macro arguments */          /* related to missing macro arguments */
         "skipping empty request",          "skipping empty request",
Line 172  static const char * const mandocerrs[MANDOCERR_MAX] = 
Line 184  static const char * const mandocerrs[MANDOCERR_MAX] = 
         "unknown AT&T UNIX version",          "unknown AT&T UNIX version",
         "comma in function argument",          "comma in function argument",
         "parenthesis in function name",          "parenthesis in function name",
           "unknown library name",
         "invalid content in Rs block",          "invalid content in Rs block",
         "invalid Boolean argument",          "invalid Boolean argument",
         "unknown font, skipping request",          "unknown font, skipping request",
Line 224  static const char * const mandocerrs[MANDOCERR_MAX] = 
Line 237  static const char * const mandocerrs[MANDOCERR_MAX] = 
         "NOT IMPLEMENTED: Bd -file",          "NOT IMPLEMENTED: Bd -file",
         "skipping display without arguments",          "skipping display without arguments",
         "missing list type, using -item",          "missing list type, using -item",
           "argument is not numeric, using 1",
         "missing manual name, using \"\"",          "missing manual name, using \"\"",
         "uname(3) system call failed, using UNKNOWN",          "uname(3) system call failed, using UNKNOWN",
         "unknown standard specifier",          "unknown standard specifier",
Line 323  mparse_buf_r(struct mparse *curp, struct buf blk, size
Line 337  mparse_buf_r(struct mparse *curp, struct buf blk, size
         const char      *save_file;          const char      *save_file;
         char            *cp;          char            *cp;
         size_t           pos; /* byte number in the ln buffer */          size_t           pos; /* byte number in the ln buffer */
         size_t           j;  /* auxiliary byte number in the blk buffer */  
         enum rofferr     rr;          enum rofferr     rr;
         int              of;          int              of;
         int              lnn; /* line number in the real file */          int              lnn; /* line number in the real file */
Line 405  mparse_buf_r(struct mparse *curp, struct buf blk, size
Line 418  mparse_buf_r(struct mparse *curp, struct buf blk, size
                                 continue;                                  continue;
                         }                          }
   
                         /* Trailing backslash = a plain char. */  
   
                         if (blk.buf[i] != '\\' || i + 1 == blk.sz) {  
                                 ln.buf[pos++] = blk.buf[i++];  
                                 continue;  
                         }  
   
                         /*  
                          * Found escape and at least one other character.  
                          * When it's a newline character, skip it.  
                          * When there is a carriage return in between,  
                          * skip that one as well.  
                          */  
   
                         if ('\r' == blk.buf[i + 1] && i + 2 < blk.sz &&  
                             '\n' == blk.buf[i + 2])  
                                 ++i;  
                         if ('\n' == blk.buf[i + 1]) {  
                                 i += 2;  
                                 ++lnn;  
                                 continue;  
                         }  
   
                         if ('"' == blk.buf[i + 1] || '#' == blk.buf[i + 1]) {  
                                 j = i;  
                                 i += 2;  
                                 /* Comment, skip to end of line */  
                                 for (; i < blk.sz; ++i) {  
                                         if (blk.buf[i] != '\n')  
                                                 continue;  
                                         if (blk.buf[i - 1] == ' ' ||  
                                             blk.buf[i - 1] == '\t')  
                                                 mandoc_msg(  
                                                     MANDOCERR_SPACE_EOL,  
                                                     curp, curp->line,  
                                                     pos + i-1 - j, NULL);  
                                         ++i;  
                                         ++lnn;  
                                         break;  
                                 }  
   
                                 /* Backout trailing whitespaces */  
                                 for (; pos > 0; --pos) {  
                                         if (ln.buf[pos - 1] != ' ')  
                                                 break;  
                                         if (pos > 2 && ln.buf[pos - 2] == '\\')  
                                                 break;  
                                 }  
                                 break;  
                         }  
   
                         /* Catch escaped bogus characters. */  
   
                         c = (unsigned char) blk.buf[i+1];  
   
                         if ( ! (isascii(c) &&  
                             (isgraph(c) || isblank(c)))) {  
                                 mandoc_vmsg(MANDOCERR_CHAR_BAD, curp,  
                                     curp->line, pos, "0x%x", c);  
                                 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++];  
                 }                  }
   
                 if (pos >= ln.sz)                  if (pos + 1 >= ln.sz)
                         resize_buf(&ln, 256);                          resize_buf(&ln, 256);
   
                   if (i == blk.sz || blk.buf[i] == '\0')
                           ln.buf[pos++] = '\n';
                 ln.buf[pos] = '\0';                  ln.buf[pos] = '\0';
   
                 /*                  /*

Legend:
Removed from v.1.166  
changed lines
  Added in v.1.178

CVSweb