=================================================================== RCS file: /cvs/docbook2mdoc/Attic/rules.c,v retrieving revision 1.10 retrieving revision 1.15 diff -u -p -r1.10 -r1.15 --- docbook2mdoc/Attic/rules.c 2014/03/30 17:46:17 1.10 +++ docbook2mdoc/Attic/rules.c 2014/04/02 10:27:29 1.15 @@ -8,12 +8,26 @@ isattrkey(enum nodeid node, enum attrkey key) switch (key) { case (ATTRKEY_CHOICE): - return(node == NODE_ARG); + switch (node) { + case (NODE_ARG): + case (NODE_GROUP): + return(1); + default: + break; + } + return(0); case (ATTRKEY_ID): /* Common to all. */ return(1); case (ATTRKEY_REP): - return(node == NODE_ARG); + switch (node) { + case (NODE_ARG): + case (NODE_GROUP): + return(1); + default: + break; + } + return(0); default: break; } @@ -55,8 +69,11 @@ isparent(enum nodeid node, enum nodeid parent) case (NODE_ACRONYM): switch (parent) { case (NODE_EMPHASIS): + case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): + case (NODE_PARA): case (NODE_PROGRAMLISTING): + case (NODE_QUOTE): case (NODE_REFDESCRIPTOR): case (NODE_REFENTRYTITLE): case (NODE_REFNAME): @@ -70,10 +87,35 @@ isparent(enum nodeid node, enum nodeid parent) break; } return(0); + case (NODE_APPLICATION): + switch (parent) { + case (NODE_EMPHASIS): + case (NODE_ENTRY): + case (NODE_FUNCSYNOPSISINFO): + case (NODE_LINK): + case (NODE_PARA): + case (NODE_PROGRAMLISTING): + case (NODE_QUOTE): + case (NODE_REFCLASS): + case (NODE_REFDESCRIPTOR): + case (NODE_REFENTRYTITLE): + case (NODE_REFNAME): + case (NODE_REFPURPOSE): + case (NODE_SCREEN): + case (NODE_SYNOPSIS): + case (NODE_TERM): + case (NODE_TITLE): + case (NODE_ULINK): + return(1); + default: + break; + } + return(0); case (NODE_ARG): switch (parent) { case (NODE_ARG): case (NODE_CMDSYNOPSIS): + case (NODE_GROUP): return(1); default: break; @@ -82,10 +124,12 @@ isparent(enum nodeid node, enum nodeid parent) case (NODE_CITEREFENTRY): switch (parent) { case (NODE_EMPHASIS): + case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): case (NODE_LINK): case (NODE_PARA): case (NODE_PROGRAMLISTING): + case (NODE_QUOTE): case (NODE_REFDESCRIPTOR): case (NODE_REFENTRYTITLE): case (NODE_REFNAME): @@ -102,6 +146,7 @@ isparent(enum nodeid node, enum nodeid parent) return(0); case (NODE_CMDSYNOPSIS): switch (parent) { + case (NODE_ENTRY): case (NODE_ITEMIZEDLIST): case (NODE_LISTITEM): case (NODE_ORDEREDLIST): @@ -118,10 +163,12 @@ isparent(enum nodeid node, enum nodeid parent) case (NODE_CODE): switch (parent) { case (NODE_EMPHASIS): + case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): case (NODE_LINK): case (NODE_PARA): case (NODE_PROGRAMLISTING): + case (NODE_QUOTE): case (NODE_REFDESCRIPTOR): case (NODE_REFENTRYTITLE): case (NODE_REFNAME): @@ -141,10 +188,12 @@ isparent(enum nodeid node, enum nodeid parent) switch (parent) { case (NODE_CMDSYNOPSIS): case (NODE_EMPHASIS): + case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): case (NODE_LINK): case (NODE_PARA): case (NODE_PROGRAMLISTING): + case (NODE_QUOTE): case (NODE_REFDESCRIPTOR): case (NODE_REFENTRYTITLE): case (NODE_REFNAME): @@ -163,10 +212,12 @@ isparent(enum nodeid node, enum nodeid parent) case (NODE_DATE): switch (parent) { case (NODE_EMPHASIS): + case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): case (NODE_LINK): case (NODE_PARA): case (NODE_PROGRAMLISTING): + case (NODE_QUOTE): case (NODE_REFDESCRIPTOR): case (NODE_REFENTRYINFO): case (NODE_REFENTRYTITLE): @@ -184,10 +235,12 @@ isparent(enum nodeid node, enum nodeid parent) case (NODE_EMPHASIS): switch (parent) { case (NODE_EMPHASIS): + case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): case (NODE_LINK): case (NODE_PARA): case (NODE_PROGRAMLISTING): + case (NODE_QUOTE): case (NODE_REFDESCRIPTOR): case (NODE_REFENTRYTITLE): case (NODE_REFNAME): @@ -202,13 +255,17 @@ isparent(enum nodeid node, enum nodeid parent) break; } return(0); + case (NODE_ENTRY): + return(NODE_ROW == parent); case (NODE_ENVAR): switch (parent) { case (NODE_EMPHASIS): + case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): case (NODE_LINK): case (NODE_PARA): case (NODE_PROGRAMLISTING): + case (NODE_QUOTE): case (NODE_REFDESCRIPTOR): case (NODE_REFENTRYTITLE): case (NODE_REFNAME): @@ -227,10 +284,12 @@ isparent(enum nodeid node, enum nodeid parent) case (NODE_FILENAME): switch (parent) { case (NODE_EMPHASIS): + case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): case (NODE_LINK): case (NODE_PARA): case (NODE_PROGRAMLISTING): + case (NODE_QUOTE): case (NODE_REFDESCRIPTOR): case (NODE_REFENTRYTITLE): case (NODE_REFNAME): @@ -252,6 +311,7 @@ isparent(enum nodeid node, enum nodeid parent) return(NODE_FUNCSYNOPSIS == parent); case (NODE_FUNCSYNOPSIS): switch (parent) { + case (NODE_ENTRY): case (NODE_ITEMIZEDLIST): case (NODE_LISTITEM): case (NODE_ORDEREDLIST): @@ -271,11 +331,13 @@ isparent(enum nodeid node, enum nodeid parent) switch (parent) { case (NODE_CODE): case (NODE_EMPHASIS): + case (NODE_ENTRY): case (NODE_FUNCDEF): case (NODE_FUNCSYNOPSISINFO): case (NODE_LINK): case (NODE_PARA): case (NODE_PROGRAMLISTING): + case (NODE_QUOTE): case (NODE_REFDESCRIPTOR): case (NODE_REFENTRYTITLE): case (NODE_REFNAME): @@ -292,6 +354,7 @@ isparent(enum nodeid node, enum nodeid parent) return(0); case (NODE_ITEMIZEDLIST): switch (parent) { + case (NODE_ENTRY): case (NODE_ITEMIZEDLIST): case (NODE_LISTITEM): case (NODE_ORDEREDLIST): @@ -304,14 +367,26 @@ isparent(enum nodeid node, enum nodeid parent) break; } return(0); + case (NODE_GROUP): + switch (parent) { + case (NODE_ARG): + case (NODE_CMDSYNOPSIS): + case (NODE_GROUP): + return(1); + default: + break; + } + return(0); case (NODE_LINK): case (NODE_ULINK): /* Synonyms. */ switch (parent) { case (NODE_ACRONYM): + case (NODE_APPLICATION): case (NODE_ARG): case (NODE_CODE): case (NODE_COMMAND): case (NODE_EMPHASIS): + case (NODE_ENTRY): case (NODE_ENVAR): case (NODE_FILENAME): case (NODE_FUNCDEF): @@ -326,6 +401,7 @@ isparent(enum nodeid node, enum nodeid parent) case (NODE_PARAMETER): case (NODE_PROGRAMLISTING): case (NODE_PROMPT): + case (NODE_QUOTE): case (NODE_REFDESCRIPTOR): case (NODE_REFENTRYTITLE): case (NODE_REFMISCINFO): @@ -336,6 +412,7 @@ isparent(enum nodeid node, enum nodeid parent) case (NODE_TERM): case (NODE_ULINK): case (NODE_USERINPUT): + case (NODE_VARNAME): return(1); default: break; @@ -354,10 +431,12 @@ isparent(enum nodeid node, enum nodeid parent) case (NODE_LITERAL): switch (parent) { case (NODE_EMPHASIS): + case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): case (NODE_LINK): case (NODE_PARA): case (NODE_PROGRAMLISTING): + case (NODE_QUOTE): case (NODE_REFDESCRIPTOR): case (NODE_REFENTRYTITLE): case (NODE_REFNAME): @@ -386,10 +465,13 @@ isparent(enum nodeid node, enum nodeid parent) switch (parent) { case (NODE_ARG): case (NODE_EMPHASIS): + case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): + case (NODE_GROUP): case (NODE_LINK): case (NODE_PARA): case (NODE_PROGRAMLISTING): + case (NODE_QUOTE): case (NODE_REFDESCRIPTOR): case (NODE_REFENTRYTITLE): case (NODE_REFNAME): @@ -407,6 +489,7 @@ isparent(enum nodeid node, enum nodeid parent) return(0); case (NODE_ORDEREDLIST): switch (parent) { + case (NODE_ENTRY): case (NODE_ITEMIZEDLIST): case (NODE_LISTITEM): case (NODE_ORDEREDLIST): @@ -422,6 +505,7 @@ isparent(enum nodeid node, enum nodeid parent) return(0); case (NODE_PARA): switch (parent) { + case (NODE_ENTRY): case (NODE_ITEMIZEDLIST): case (NODE_LISTITEM): case (NODE_ORDEREDLIST): @@ -439,11 +523,13 @@ isparent(enum nodeid node, enum nodeid parent) case (NODE_PARAMETER): switch (parent) { case (NODE_CODE): + case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): case (NODE_LINK): case (NODE_PARA): case (NODE_PARAMDEF): case (NODE_PROGRAMLISTING): + case (NODE_QUOTE): case (NODE_REFDESCRIPTOR): case (NODE_REFENTRYTITLE): case (NODE_REFNAME): @@ -461,6 +547,7 @@ isparent(enum nodeid node, enum nodeid parent) return(0); case (NODE_PROGRAMLISTING): switch (parent) { + case (NODE_ENTRY): case (NODE_ITEMIZEDLIST): case (NODE_LISTITEM): case (NODE_ORDEREDLIST): @@ -477,10 +564,12 @@ isparent(enum nodeid node, enum nodeid parent) case (NODE_PROMPT): switch (parent) { case (NODE_EMPHASIS): + case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): case (NODE_LINK): case (NODE_PARA): case (NODE_PROGRAMLISTING): + case (NODE_QUOTE): case (NODE_REFDESCRIPTOR): case (NODE_REFENTRYTITLE): case (NODE_REFNAME): @@ -496,6 +585,30 @@ isparent(enum nodeid node, enum nodeid parent) break; } return(0); + case (NODE_QUOTE): + switch (parent) { + case (NODE_EMPHASIS): + case (NODE_ENTRY): + case (NODE_FUNCSYNOPSISINFO): + case (NODE_LINK): + case (NODE_PARA): + case (NODE_PROGRAMLISTING): + case (NODE_QUOTE): + case (NODE_REFDESCRIPTOR): + case (NODE_REFENTRYTITLE): + case (NODE_REFNAME): + case (NODE_REFPURPOSE): + case (NODE_SCREEN): + case (NODE_SYNOPSIS): + case (NODE_TERM): + case (NODE_TITLE): + case (NODE_ULINK): + return(1); + default: + break; + } + return(0); + case (NODE_REFCLASS): return(parent == NODE_REFNAMEDIV); case (NODE_REFDESCRIPTOR): @@ -538,15 +651,18 @@ isparent(enum nodeid node, enum nodeid parent) case (NODE_REPLACEABLE): switch (parent) { case (NODE_ACRONYM): + case (NODE_APPLICATION): case (NODE_ARG): case (NODE_CODE): case (NODE_COMMAND): case (NODE_EMPHASIS): + case (NODE_ENTRY): case (NODE_ENVAR): case (NODE_FILENAME): case (NODE_FUNCDEF): case (NODE_FUNCSYNOPSISINFO): case (NODE_FUNCTION): + case (NODE_GROUP): case (NODE_LINK): case (NODE_LITERAL): case (NODE_MANVOLNUM): @@ -556,6 +672,7 @@ isparent(enum nodeid node, enum nodeid parent) case (NODE_PARAMETER): case (NODE_PROGRAMLISTING): case (NODE_PROMPT): + case (NODE_QUOTE): case (NODE_REFDESCRIPTOR): case (NODE_REFENTRYTITLE): case (NODE_REFMISCINFO): @@ -568,14 +685,26 @@ isparent(enum nodeid node, enum nodeid parent) case (NODE_TITLE): case (NODE_ULINK): case (NODE_USERINPUT): + case (NODE_VARNAME): default: return(1); } return(0); + case (NODE_ROW): + switch (parent) { + case (NODE_TBODY): + case (NODE_TFOOT): + case (NODE_THEAD): + return(1); + default: + break; + } + return(0); case (NODE_SBR): switch (parent) { case (NODE_ARG): case (NODE_CMDSYNOPSIS): + case (NODE_GROUP): return(1); default: break; @@ -583,6 +712,7 @@ isparent(enum nodeid node, enum nodeid parent) return(0); case (NODE_SCREEN): switch (parent) { + case (NODE_ENTRY): case (NODE_ITEMIZEDLIST): case (NODE_LISTITEM): case (NODE_ORDEREDLIST): @@ -618,6 +748,7 @@ isparent(enum nodeid node, enum nodeid parent) return(0); case (NODE_SYNOPSIS): switch (parent) { + case (NODE_ENTRY): case (NODE_ITEMIZEDLIST): case (NODE_LISTITEM): case (NODE_ORDEREDLIST): @@ -629,6 +760,29 @@ isparent(enum nodeid node, enum nodeid parent) break; } return(0); + case (NODE_TABLE): + switch (parent) { + case (NODE_ENTRY): + case (NODE_ITEMIZEDLIST): + case (NODE_LISTITEM): + case (NODE_ORDEREDLIST): + case (NODE_PARA): + case (NODE_REFSECT1): + case (NODE_REFSYNOPSISDIV): + case (NODE_VARIABLELIST): + return(1); + default: + break; + } + return(0); + case (NODE_TBODY): + return(NODE_TGROUP == parent); + case (NODE_TFOOT): + return(NODE_TGROUP == parent); + case (NODE_TGROUP): + return(NODE_TABLE == parent); + case (NODE_THEAD): + return(NODE_TGROUP == parent); case (NODE_TITLE): switch (parent) { case (NODE_ITEMIZEDLIST): @@ -637,6 +791,7 @@ isparent(enum nodeid node, enum nodeid parent) case (NODE_REFSECT1): case (NODE_REFSECT2): case (NODE_REFSYNOPSISDIV): + case (NODE_TABLE): case (NODE_VARIABLELIST): return(1); default: @@ -650,10 +805,12 @@ isparent(enum nodeid node, enum nodeid parent) case (NODE_USERINPUT): switch (parent) { case (NODE_EMPHASIS): + case (NODE_ENTRY): case (NODE_FUNCSYNOPSISINFO): case (NODE_LINK): case (NODE_PARA): case (NODE_PROGRAMLISTING): + case (NODE_QUOTE): case (NODE_REFDESCRIPTOR): case (NODE_REFENTRYTITLE): case (NODE_REFNAME): @@ -671,6 +828,7 @@ isparent(enum nodeid node, enum nodeid parent) return(0); case (NODE_VARIABLELIST): switch (parent) { + case (NODE_ENTRY): case (NODE_ITEMIZEDLIST): case (NODE_ORDEREDLIST): case (NODE_PARA): @@ -678,6 +836,30 @@ isparent(enum nodeid node, enum nodeid parent) case (NODE_REFSECT2): case (NODE_REFSYNOPSISDIV): case (NODE_VARIABLELIST): + return(1); + default: + break; + } + return(0); + case (NODE_VARNAME): + switch (parent) { + case (NODE_CODE): + case (NODE_EMPHASIS): + case (NODE_ENTRY): + case (NODE_FUNCSYNOPSISINFO): + case (NODE_LINK): + case (NODE_PARA): + case (NODE_PROGRAMLISTING): + case (NODE_QUOTE): + case (NODE_REFDESCRIPTOR): + case (NODE_REFENTRYTITLE): + case (NODE_REFNAME): + case (NODE_REFPURPOSE): + case (NODE_SCREEN): + case (NODE_SYNOPSIS): + case (NODE_TERM): + case (NODE_TITLE): + case (NODE_ULINK): return(1); default: break;