=================================================================== RCS file: /cvs/docbook2mdoc/node.h,v retrieving revision 1.24 retrieving revision 1.35 diff -u -p -r1.24 -r1.35 --- docbook2mdoc/node.h 2019/04/14 14:00:16 1.24 +++ docbook2mdoc/node.h 2019/04/28 20:26:49 1.35 @@ -1,4 +1,4 @@ -/* $Id: node.h,v 1.24 2019/04/14 14:00:16 schwarze Exp $ */ +/* $Id: node.h,v 1.35 2019/04/28 20:26:49 schwarze Exp $ */ /* * Copyright (c) 2014 Kristaps Dzonsons * Copyright (c) 2019 Ingo Schwarze @@ -31,7 +31,8 @@ enum nodeclass { CLASS_TRANS, /* Transparent: only the children are shown. */ CLASS_LINE, /* Generates only simple in-line macros. */ CLASS_ENCL, /* Explicit or implicit partial blocks. */ - CLASS_BLOCK /* Output linebreak before and after. */ + CLASS_BLOCK, /* Output linebreak before and after. */ + CLASS_NOFILL /* Block preserving leading whitespace. */ }; /* @@ -39,7 +40,7 @@ enum nodeclass { * More DocBook XML elements are recognized, but remapped or discarded. */ enum nodeid { - NODE_AFFILIATION, + NODE_ABSTRACT, NODE_APPENDIX, NODE_ARG, NODE_AUTHOR, @@ -75,7 +76,7 @@ enum nodeid { NODE_FUNCTION, NODE_GLOSSTERM, NODE_GROUP, - NODE_HOLDER, + NODE_IMAGEDATA, NODE_INCLUDE, NODE_INDEX, NODE_INFO, @@ -102,14 +103,15 @@ enum nodeid { NODE_MML_MSUP, NODE_MODIFIER, NODE_NOTE, + NODE_OLINK, NODE_OPTION, NODE_ORDEREDLIST, - NODE_ORGNAME, NODE_PARA, NODE_PARAMDEF, NODE_PARAMETER, NODE_PERSONNAME, NODE_PREFACE, + NODE_PRODUCTNAME, NODE_PROGRAMLISTING, NODE_PROMPT, NODE_PUBDATE, @@ -126,15 +128,17 @@ enum nodeid { NODE_REFNAMEDIV, NODE_REFPURPOSE, NODE_REFSYNOPSISDIV, - NODE_RELEASEINFO, NODE_REPLACEABLE, NODE_ROW, NODE_SBR, NODE_SCREEN, NODE_SECTION, NODE_SIMPLELIST, + NODE_SIMPLESECT, NODE_SPANSPEC, + NODE_SUBSCRIPT, NODE_SUBTITLE, + NODE_SUPERSCRIPT, NODE_SYNOPSIS, NODE_SYSTEMITEM, NODE_TABLE, @@ -149,9 +153,10 @@ enum nodeid { NODE_VARIABLELIST, NODE_VARLISTENTRY, NODE_VARNAME, + NODE_VOID, NODE_WARNING, NODE_WORDASWORD, - NODE_YEAR, + NODE_XREF, NODE_UNKNOWN, NODE_TEXT, NODE_ESCAPE, @@ -172,14 +177,19 @@ enum attrkey { ATTRKEY_COLS, ATTRKEY_DEFINITION, ATTRKEY_ENDTERM, + ATTRKEY_ENTITYREF, + ATTRKEY_FILEREF, ATTRKEY_HREF, ATTRKEY_ID, ATTRKEY_LINKEND, + ATTRKEY_LOCALINFO, ATTRKEY_NAME, ATTRKEY_OPEN, ATTRKEY_PUBLIC, ATTRKEY_REP, ATTRKEY_SYSTEM, + ATTRKEY_TARGETDOC, + ATTRKEY_TARGETPTR, ATTRKEY_URL, ATTRKEY_XLINK_HREF, ATTRKEY__MAX @@ -222,8 +232,10 @@ struct pattr { struct pnode { enum nodeid node; /* Node type. */ char *b; /* String value. */ - int spc; /* Whitespace before this node. */ struct pnode *parent; /* Parent node or NULL. */ + int flags; +#define NFLAG_LINE (1 << 0) /* New line before this node. */ +#define NFLAG_SPC (1 << 1) /* Whitespace before this node. */ struct pnodeq childq; /* Queue of children. */ struct pattrq attrq; /* Attributes of the node. */ TAILQ_ENTRY(pnode) child; @@ -250,6 +262,7 @@ const char *pnode_name(enum nodeid); enum nodeclass pnode_class(enum nodeid); struct pnode *pnode_alloc(struct pnode *); +struct pnode *pnode_alloc_text(struct pnode *, const char *); void pnode_unlink(struct pnode *); void pnode_unlinksub(struct pnode *); enum attrval pnode_getattr(struct pnode *, enum attrkey);