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

Diff for /docbook2mdoc/parse.c between version 1.7 and 1.8

version 1.7, 2019/03/28 20:41:33 version 1.8, 2019/04/02 13:11:09
Line 522  struct ptree *
Line 522  struct ptree *
 parse_file(struct parse *p, int fd, const char *fname)  parse_file(struct parse *p, int fd, const char *fname)
 {  {
         char             b[4096];          char             b[4096];
           char            *cp;
         ssize_t          rsz;   /* Return value from read(2). */          ssize_t          rsz;   /* Return value from read(2). */
         size_t           rlen;  /* Number of bytes in b[]. */          size_t           rlen;  /* Number of bytes in b[]. */
         size_t           poff;  /* Parse offset in b[]. */          size_t           poff;  /* Parse offset in b[]. */
Line 647  parse_file(struct parse *p, int fd, const char *fname)
Line 648  parse_file(struct parse *p, int fd, const char *fname)
                                 if (advance(p, b, rlen, &pend, " >") &&                                  if (advance(p, b, rlen, &pend, " >") &&
                                     rsz > 0)                                      rsz > 0)
                                         break;                                          break;
                                   if (pend > poff + 3 &&
                                       strncmp(b + poff, "<!--", 4) == 0) {
   
                                           /* Skip a comment. */
   
                                           cp = strstr(b + pend - 2, "-->");
                                           if (cp == NULL) {
                                                   if (rsz > 0) {
                                                           pend = rlen;
                                                           break;
                                                   }
                                                   cp = b + rlen;
                                           } else
                                                   cp += 3;
                                           while (b + pend < cp) {
                                                   if (b[++pend] == '\n') {
                                                           p->nline++;
                                                           p->ncol = 1;
                                                   } else
                                                           p->ncol++;
                                           }
                                           continue;
                                   }
                                 elem_end = 0;                                  elem_end = 0;
                                 if (b[pend] != '>')                                  if (b[pend] != '>')
                                         in_tag = 1;                                          in_tag = 1;

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

CVSweb