=================================================================== RCS file: /cvs/docbook2mdoc/parse.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -p -r1.25 -r1.26 --- docbook2mdoc/parse.c 2019/04/08 23:40:17 1.25 +++ docbook2mdoc/parse.c 2019/04/09 01:39:09 1.26 @@ -1,4 +1,4 @@ -/* $Id: parse.c,v 1.25 2019/04/08 23:40:17 schwarze Exp $ */ +/* $Id: parse.c,v 1.26 2019/04/09 01:39:09 schwarze Exp $ */ /* * Copyright (c) 2014 Kristaps Dzonsons * Copyright (c) 2019 Ingo Schwarze @@ -213,7 +213,7 @@ static const struct element elements[] = { { "varname", NODE_VARNAME }, { "warning", NODE_WARNING }, { "wordasword", NODE_WORDASWORD }, - { "xi:include", NODE_DELETE_WARN }, + { "xi:include", NODE_INCLUDE }, { "year", NODE_YEAR }, { NULL, NODE_IGNORE } }; @@ -641,6 +641,8 @@ static void xml_elem_end(struct parse *ps, const char *name) { const struct element *elem; + struct pnode *n; + const char *cp; enum nodeid node; /* @@ -670,6 +672,18 @@ xml_elem_end(struct parse *ps, const char *name) ps->del--; break; case NODE_IGNORE: + break; + case NODE_INCLUDE: + n = ps->cur; + ps->cur = ps->cur->parent; + cp = pnode_getattr_raw(n, ATTRKEY_HREF, NULL); + if (cp == NULL) + error_msg(ps, " element " + "without href attribute"); + else + parse_file(ps, -1, cp); + pnode_unlink(n); + ps->flags &= ~PFLAG_SPC; break; case NODE_DOCTYPE: ps->flags &= ~PFLAG_EEND;