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

Diff for /mandoc/read.c between version 1.149 and 1.155

version 1.149, 2016/07/10 13:34:30 version 1.155, 2016/12/28 17:34:18
Line 19 
Line 19 
 #include "config.h"  #include "config.h"
   
 #include <sys/types.h>  #include <sys/types.h>
 #if HAVE_MMAP  
 #include <sys/mman.h>  #include <sys/mman.h>
 #include <sys/stat.h>  #include <sys/stat.h>
 #endif  
   
 #include <assert.h>  #include <assert.h>
 #include <ctype.h>  #include <ctype.h>
Line 143  static const char * const mandocerrs[MANDOCERR_MAX] = 
Line 141  static const char * const mandocerrs[MANDOCERR_MAX] = 
         "empty argument, using 0n",          "empty argument, using 0n",
         "missing display type, using -ragged",          "missing display type, using -ragged",
         "list type is not the first argument",          "list type is not the first argument",
         "missing -width in -tag list, using 8n",          "missing -width in -tag list, using 6n",
         "missing utility name, using \"\"",          "missing utility name, using \"\"",
         "missing function name, using \"\"",          "missing function name, using \"\"",
         "empty head in list item",          "empty head in list item",
Line 152  static const char * const mandocerrs[MANDOCERR_MAX] = 
Line 150  static const char * const mandocerrs[MANDOCERR_MAX] = 
         "unknown font type, using \\fR",          "unknown font type, using \\fR",
         "nothing follows prefix",          "nothing follows prefix",
         "empty reference block",          "empty reference block",
           "missing section argument",
         "missing -std argument, adding it",          "missing -std argument, adding it",
         "missing option string, using \"\"",          "missing option string, using \"\"",
         "missing resource identifier, using \"\"",          "missing resource identifier, using \"\"",
Line 291  choose_parser(struct mparse *curp)
Line 290  choose_parser(struct mparse *curp)
                 }                  }
         }          }
   
         if (curp->man == NULL) {  
                 curp->man = roff_man_alloc(curp->roff, curp, curp->defos,  
                     curp->options & MPARSE_QUICK ? 1 : 0);  
                 curp->man->macroset = MACROSET_MAN;  
                 curp->man->first->tok = TOKEN_NONE;  
         }  
   
         if (format == MPARSE_MDOC) {          if (format == MPARSE_MDOC) {
                 mdoc_hash_init();                  mdoc_hash_init();
                 curp->man->macroset = MACROSET_MDOC;                  curp->man->macroset = MACROSET_MDOC;
Line 324  mparse_buf_r(struct mparse *curp, struct buf blk, size
Line 316  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 429  mparse_buf_r(struct mparse *curp, struct buf blk, size
Line 422  mparse_buf_r(struct mparse *curp, struct buf blk, size
                         }                          }
   
                         if ('"' == blk.buf[i + 1] || '#' == blk.buf[i + 1]) {                          if ('"' == blk.buf[i + 1] || '#' == blk.buf[i + 1]) {
                                   j = i;
                                 i += 2;                                  i += 2;
                                 /* Comment, skip to end of line */                                  /* Comment, skip to end of line */
                                 for (; i < blk.sz; ++i) {                                  for (; i < blk.sz; ++i) {
                                         if ('\n' == blk.buf[i]) {                                          if (blk.buf[i] != '\n')
                                                 ++i;                                                  continue;
                                                 ++lnn;                                          if (blk.buf[i - 1] == ' ' ||
                                                 break;                                              blk.buf[i - 1] == '\t')
                                         }                                                  mandoc_msg(
                                                       MANDOCERR_SPACE_EOL,
                                                       curp, curp->line,
                                                       pos + i-1 - j, NULL);
                                           ++i;
                                           ++lnn;
                                           break;
                                 }                                  }
   
                                 /* Backout trailing whitespaces */                                  /* Backout trailing whitespaces */
Line 562  rerun:
Line 562  rerun:
                         break;                          break;
                 }                  }
   
                 /*                  if (curp->man->macroset == MACROSET_NONE)
                  * If input parsers have not been allocated, do so now.  
                  * We keep these instanced between parsers, but set them  
                  * locally per parse routine since we can use different  
                  * parsers with each one.  
                  */  
   
                 if (curp->man == NULL ||  
                     curp->man->macroset == MACROSET_NONE)  
                         choose_parser(curp);                          choose_parser(curp);
   
                 /*                  /*
Line 613  read_whole_file(struct mparse *curp, const char *file,
Line 605  read_whole_file(struct mparse *curp, const char *file,
         size_t           off;          size_t           off;
         ssize_t          ssz;          ssize_t          ssz;
   
 #if HAVE_MMAP  
         struct stat      st;          struct stat      st;
   
         if (fstat(fd, &st) == -1)          if (fstat(fd, &st) == -1)
Line 637  read_whole_file(struct mparse *curp, const char *file,
Line 628  read_whole_file(struct mparse *curp, const char *file,
                 if (fb->buf != MAP_FAILED)                  if (fb->buf != MAP_FAILED)
                         return 1;                          return 1;
         }          }
 #endif  
   
         if (curp->gzip) {          if (curp->gzip) {
                 if ((gz = gzdopen(fd, "rb")) == NULL)                  if ((gz = gzdopen(fd, "rb")) == NULL)
Line 683  read_whole_file(struct mparse *curp, const char *file,
Line 673  read_whole_file(struct mparse *curp, const char *file,
 static void  static void
 mparse_end(struct mparse *curp)  mparse_end(struct mparse *curp)
 {  {
   
         if (curp->man == NULL && curp->sodest == NULL)  
                 curp->man = roff_man_alloc(curp->roff, curp, curp->defos,  
                     curp->options & MPARSE_QUICK ? 1 : 0);  
         if (curp->man->macroset == MACROSET_NONE)          if (curp->man->macroset == MACROSET_NONE)
                 curp->man->macroset = MACROSET_MAN;                  curp->man->macroset = MACROSET_MAN;
         if (curp->man->macroset == MACROSET_MDOC)          if (curp->man->macroset == MACROSET_MDOC)
Line 766  mparse_readfd(struct mparse *curp, int fd, const char 
Line 752  mparse_readfd(struct mparse *curp, int fd, const char 
                     (MPARSE_UTF8 | MPARSE_LATIN1);                      (MPARSE_UTF8 | MPARSE_LATIN1);
                 mparse_parse_buffer(curp, blk, file);                  mparse_parse_buffer(curp, blk, file);
                 curp->filenc = save_filenc;                  curp->filenc = save_filenc;
 #if HAVE_MMAP  
                 if (with_mmap)                  if (with_mmap)
                         munmap(blk.buf, blk.sz);                          munmap(blk.buf, blk.sz);
                 else                  else
 #endif  
                         free(blk.buf);                          free(blk.buf);
         }          }
         return curp->file_status;          return curp->file_status;
Line 842  mparse_alloc(int options, enum mandoclevel wlevel, man
Line 826  mparse_alloc(int options, enum mandoclevel wlevel, man
 void  void
 mparse_reset(struct mparse *curp)  mparse_reset(struct mparse *curp)
 {  {
   
         roff_reset(curp->roff);          roff_reset(curp->roff);
           roff_man_reset(curp->man);
         if (curp->man != NULL)  
                 roff_man_reset(curp->man);  
         if (curp->secondary)          if (curp->secondary)
                 curp->secondary->sz = 0;                  curp->secondary->sz = 0;
   

Legend:
Removed from v.1.149  
changed lines
  Added in v.1.155

CVSweb