=================================================================== RCS file: /cvs/docbook2mdoc/parse.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -p -r1.7 -r1.8 --- docbook2mdoc/parse.c 2019/03/28 20:41:33 1.7 +++ docbook2mdoc/parse.c 2019/04/02 13:11:09 1.8 @@ -1,4 +1,4 @@ -/* $Id: parse.c,v 1.7 2019/03/28 20:41:33 schwarze Exp $ */ +/* $Id: parse.c,v 1.8 2019/04/02 13:11:09 schwarze Exp $ */ /* * Copyright (c) 2014 Kristaps Dzonsons * Copyright (c) 2019 Ingo Schwarze @@ -522,6 +522,7 @@ struct ptree * parse_file(struct parse *p, int fd, const char *fname) { char b[4096]; + char *cp; ssize_t rsz; /* Return value from read(2). */ size_t rlen; /* Number of bytes in b[]. */ size_t poff; /* Parse offset in b[]. */ @@ -647,6 +648,29 @@ parse_file(struct parse *p, int fd, const char *fname) if (advance(p, b, rlen, &pend, " >") && rsz > 0) break; + if (pend > poff + 3 && + strncmp(b + poff, ""); + 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; if (b[pend] != '>') in_tag = 1;