version 1.6, 2019/03/28 15:05:40 |
version 1.8, 2019/04/02 13:11:09 |
Line 73 static const struct element elements[] = { |
|
Line 73 static const struct element elements[] = { |
|
{ "colspec", NODE_COLSPEC }, |
{ "colspec", NODE_COLSPEC }, |
{ "command", NODE_COMMAND }, |
{ "command", NODE_COMMAND }, |
{ "constant", NODE_CONSTANT }, |
{ "constant", NODE_CONSTANT }, |
|
{ "contrib", NODE_CONTRIB }, |
{ "copyright", NODE_COPYRIGHT }, |
{ "copyright", NODE_COPYRIGHT }, |
{ "date", NODE_DATE }, |
{ "date", NODE_DATE }, |
{ "editor", NODE_EDITOR }, |
{ "editor", NODE_EDITOR }, |
Line 82 static const struct element elements[] = { |
|
Line 83 static const struct element elements[] = { |
|
{ "envar", NODE_ENVAR }, |
{ "envar", NODE_ENVAR }, |
{ "fieldsynopsis", NODE_FIELDSYNOPSIS }, |
{ "fieldsynopsis", NODE_FIELDSYNOPSIS }, |
{ "filename", NODE_FILENAME }, |
{ "filename", NODE_FILENAME }, |
{ "firstname", NODE_IGNORE }, |
{ "firstname", NODE_PERSONNAME }, |
{ "firstterm", NODE_FIRSTTERM }, |
{ "firstterm", NODE_FIRSTTERM }, |
{ "footnote", NODE_FOOTNOTE }, |
{ "footnote", NODE_FOOTNOTE }, |
{ "funcdef", NODE_FUNCDEF }, |
{ "funcdef", NODE_FUNCDEF }, |
Line 122 static const struct element elements[] = { |
|
Line 123 static const struct element elements[] = { |
|
{ "option", NODE_OPTION }, |
{ "option", NODE_OPTION }, |
{ "orderedlist", NODE_ORDEREDLIST }, |
{ "orderedlist", NODE_ORDEREDLIST }, |
{ "orgname", NODE_ORGNAME }, |
{ "orgname", NODE_ORGNAME }, |
{ "othername", NODE_IGNORE }, |
{ "othername", NODE_PERSONNAME }, |
{ "para", NODE_PARA }, |
{ "para", NODE_PARA }, |
{ "paramdef", NODE_PARAMDEF }, |
{ "paramdef", NODE_PARAMDEF }, |
{ "parameter", NODE_PARAMETER }, |
{ "parameter", NODE_PARAMETER }, |
Line 164 static const struct element elements[] = { |
|
Line 165 static const struct element elements[] = { |
|
{ "spanspec", NODE_SPANSPEC }, |
{ "spanspec", NODE_SPANSPEC }, |
{ "structname", NODE_STRUCTNAME }, |
{ "structname", NODE_STRUCTNAME }, |
{ "subtitle", NODE_SUBTITLE }, |
{ "subtitle", NODE_SUBTITLE }, |
{ "surname", NODE_IGNORE }, |
{ "surname", NODE_PERSONNAME }, |
{ "synopsis", NODE_SYNOPSIS }, |
{ "synopsis", NODE_SYNOPSIS }, |
{ "table", NODE_TABLE }, |
{ "table", NODE_TABLE }, |
{ "tbody", NODE_TBODY }, |
{ "tbody", NODE_TBODY }, |
|
|
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 646 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; |