=================================================================== RCS file: /cvs/docbook2mdoc/parse.c,v retrieving revision 1.18 retrieving revision 1.22 diff -u -p -r1.18 -r1.22 --- docbook2mdoc/parse.c 2019/04/07 17:00:56 1.18 +++ docbook2mdoc/parse.c 2019/04/07 19:33:27 1.22 @@ -1,4 +1,4 @@ -/* $Id: parse.c,v 1.18 2019/04/07 17:00:56 schwarze Exp $ */ +/* $Id: parse.c,v 1.22 2019/04/07 19:33:27 schwarze Exp $ */ /* * Copyright (c) 2014 Kristaps Dzonsons * Copyright (c) 2019 Ingo Schwarze @@ -66,12 +66,14 @@ static const struct element elements[] = { { "acronym", NODE_IGNORE }, { "affiliation", NODE_AFFILIATION }, { "anchor", NODE_DELETE }, + { "appendix", NODE_APPENDIX }, { "application", NODE_APPLICATION }, { "arg", NODE_ARG }, + { "article", NODE_SECTION }, { "author", NODE_AUTHOR }, { "authorgroup", NODE_AUTHORGROUP }, { "blockquote", NODE_BLOCKQUOTE }, - { "book", NODE_BOOK }, + { "book", NODE_SECTION }, { "bookinfo", NODE_BOOKINFO }, { "caution", NODE_CAUTION }, { "chapter", NODE_SECTION }, @@ -101,6 +103,11 @@ static const struct element elements[] = { { "funcsynopsis", NODE_FUNCSYNOPSIS }, { "funcsynopsisinfo", NODE_FUNCSYNOPSISINFO }, { "function", NODE_FUNCTION }, + { "glossary", NODE_VARIABLELIST }, + { "glossdef", NODE_IGNORE }, + { "glossdiv", NODE_IGNORE }, + { "glossentry", NODE_VARLISTENTRY }, + { "glosslist", NODE_VARIABLELIST }, { "glossterm", NODE_GLOSSTERM }, { "group", NODE_GROUP }, { "holder", NODE_HOLDER }, @@ -463,7 +470,9 @@ xml_elem_start(struct parse *ps, const char *name) */ switch (dat->node = elem->node) { + case NODE_APPENDIX: case NODE_AUTHORGROUP: + case NODE_BLOCKQUOTE: case NODE_BOOKINFO: case NODE_CAUTION: case NODE_EDITOR: @@ -518,7 +527,7 @@ xml_attrkey(struct parse *ps, const char *name) struct pattr *attr; enum attrkey key; - if (ps->del > 0 || *name == '\0') + if (ps->del > 0 || ps->ncur == NODE_IGNORE || *name == '\0') return; if ((key = attrkey_parse(name)) == ATTRKEY__MAX) { ps->attr = 0; @@ -540,7 +549,7 @@ xml_attrval(struct parse *ps, const char *name) { struct pattr *attr; - if (ps->del > 0 || ps->attr == 0) + if (ps->del > 0 || ps->ncur == NODE_IGNORE || ps->attr == 0) return; if ((attr = TAILQ_LAST(&ps->cur->attrq, pattrq)) == NULL) return;