source@mandoc.bsd.lv
 help / color / mirror / Atom feed
* docbook2mdoc: many new nodes found below
@ 2019-03-22 16:10 schwarze
  0 siblings, 0 replies; only message in thread
From: schwarze @ 2019-03-22 16:10 UTC (permalink / raw)
  To: source

Log Message:
-----------
many new nodes found below /usr/xenocara/proto/xorgproto/specs/

Modified Files:
--------------
    docbook2mdoc:
        docbook2mdoc.c
        extern.h

Revision Data
-------------
Index: extern.h
===================================================================
RCS file: /home/cvs/mdocml/docbook2mdoc/extern.h,v
retrieving revision 1.27
retrieving revision 1.28
diff -Lextern.h -Lextern.h -u -p -r1.27 -r1.28
--- extern.h
+++ extern.h
@@ -1,3 +1,21 @@
+/* $Id$ */
+/*
+ * Copyright (c) 2014 Kristaps Dzonsons <kristaps@bsd.lv>
+ * Copyright (c) 2019 Ingo Schwarze <schwarze@openbsd.org>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
 /*
  * All recognised node types.
  */
@@ -5,11 +23,19 @@ enum	nodeid {
 	NODE_ROOT = 0, /* Must comes first. */
 	/* Alpha-ordered hereafter. */
 	NODE_ACRONYM,
+	NODE_AFFILIATION,
 	NODE_ANCHOR,
 	NODE_APPLICATION,
 	NODE_ARG,
+	NODE_AUTHOR,
+	NODE_AUTHORGROUP,
+	NODE_BLOCKQUOTE,
+	NODE_BOOK,
+	NODE_BOOKINFO,
 	NODE_CAUTION,
+	NODE_CHAPTER,
 	NODE_CITEREFENTRY,
+	NODE_CITETITLE,
 	NODE_CMDSYNOPSIS,
 	NODE_CODE,
 	NODE_COLSPEC,
@@ -17,27 +43,38 @@ enum	nodeid {
 	NODE_CONSTANT,
 	NODE_COPYRIGHT,
 	NODE_DATE,
+	NODE_EDITOR,
 	NODE_EMPHASIS,
 	NODE_ENTRY,
 	NODE_ENVAR,
 	NODE_FIELDSYNOPSIS,
 	NODE_FILENAME,
+	NODE_FIRSTNAME,
+	NODE_FIRSTTERM,
+	NODE_FOOTNOTE,
 	NODE_FUNCDEF,
 	NODE_FUNCPROTOTYPE,
 	NODE_FUNCSYNOPSIS,
 	NODE_FUNCSYNOPSISINFO,
 	NODE_FUNCTION,
+	NODE_GLOSSTERM,
 	NODE_GROUP,
 	NODE_HOLDER,
+	NODE_INDEX,
+	NODE_INDEXTERM,
 	NODE_INFO,
 	NODE_INFORMALEQUATION,
 	NODE_INFORMALTABLE,
 	NODE_INLINEEQUATION,
 	NODE_ITEMIZEDLIST,
+	NODE_KEYSYM,
+	NODE_LEGALNOTICE,
 	NODE_LINK,
 	NODE_LISTITEM,
 	NODE_LITERAL,
+	NODE_LITERALLAYOUT,
 	NODE_MANVOLNUM,
+	NODE_MEMBER,
 	NODE_MML_MATH,
 	NODE_MML_MFENCED,
 	NODE_MML_MFRAC,
@@ -51,9 +88,15 @@ enum	nodeid {
 	NODE_NOTE,
 	NODE_OPTION,
 	NODE_ORDEREDLIST,
+	NODE_ORGNAME,
+	NODE_OTHERNAME,
 	NODE_PARA,
 	NODE_PARAMDEF,
 	NODE_PARAMETER,
+	NODE_PART,
+	NODE_PHRASE,
+	NODE_PREFACE,
+	NODE_PRIMARY,
 	NODE_PROGRAMLISTING,
 	NODE_PROMPT,
 	NODE_QUOTE,
@@ -73,12 +116,21 @@ enum	nodeid {
 	NODE_REFSECT3,
 	NODE_REFSECTION,
 	NODE_REFSYNOPSISDIV,
+	NODE_RELEASEINFO,
 	NODE_REPLACEABLE,
 	NODE_ROW,
 	NODE_SBR,
 	NODE_SCREEN,
+	NODE_SECONDARY,
+	NODE_SECT1,
+	NODE_SECT2,
+	NODE_SECTION,
 	NODE_SGMLTAG,
+	NODE_SIMPLELIST,
+	NODE_SPANSPEC,
 	NODE_STRUCTNAME,
+	NODE_SUBTITLE,
+	NODE_SURNAME,
 	NODE_SYNOPSIS,
 	NODE_TABLE,
 	NODE_TBODY,
Index: docbook2mdoc.c
===================================================================
RCS file: /home/cvs/mdocml/docbook2mdoc/docbook2mdoc.c,v
retrieving revision 1.49
retrieving revision 1.50
diff -Ldocbook2mdoc.c -Ldocbook2mdoc.c -u -p -r1.49 -r1.50
--- docbook2mdoc.c
+++ docbook2mdoc.c
@@ -1,6 +1,7 @@
-/*	$Id$ */
+/* $Id$ */
 /*
  * Copyright (c) 2014 Kristaps Dzonsons <kristaps@bsd.lv>
+ * Copyright (c) 2019 Ingo Schwarze <schwarze@openbsd.org>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -93,11 +94,19 @@ static	const char *attrvals[ATTRVAL__MAX
 static	const struct node nodes[NODE__MAX] = {
 	{ NULL, 0 },
 	{ "acronym", 0 },
+	{ "affiliation", NODE_IGNTEXT },
 	{ "anchor", NODE_IGNTEXT },
 	{ "application", 0 },
 	{ "arg", 0 },
+	{ "author", NODE_IGNTEXT },
+	{ "authorgroup", NODE_IGNTEXT },
+	{ "blockquote", NODE_IGNTEXT },
+	{ "book", NODE_IGNTEXT },
+	{ "bookinfo", NODE_IGNTEXT },
 	{ "caution", NODE_IGNTEXT },
+	{ "chapter", NODE_IGNTEXT },
 	{ "citerefentry", NODE_IGNTEXT },
+	{ "citetitle", 0 },
 	{ "cmdsynopsis", NODE_IGNTEXT },
 	{ "code", 0 },
 	{ "colspec", NODE_IGNTEXT },
@@ -105,27 +114,38 @@ static	const struct node nodes[NODE__MAX
 	{ "constant", 0 },
 	{ "copyright", NODE_IGNTEXT },
 	{ "date", 0 },
+	{ "editor", NODE_IGNTEXT },
 	{ "emphasis", 0 },
 	{ "entry", 0 },
 	{ "envar", 0 },
 	{ "fieldsynopsis", NODE_IGNTEXT },
 	{ "filename", 0 },
+	{ "firstname", 0 },
+	{ "firstterm", 0 },
+	{ "footnote", 0 },
 	{ "funcdef", 0 },
 	{ "funcprototype", NODE_IGNTEXT },
 	{ "funcsynopsis", NODE_IGNTEXT },
 	{ "funcsynopsisinfo", 0 },
 	{ "function", 0 },
+	{ "glossterm", 0 },
 	{ "group", NODE_IGNTEXT },
 	{ "holder", NODE_IGNTEXT },
+	{ "index", NODE_IGNTEXT },
+	{ "indexterm", NODE_IGNTEXT },
 	{ "info", NODE_IGNTEXT },
 	{ "informalequation", NODE_IGNTEXT },
 	{ "informaltable", NODE_IGNTEXT },
 	{ "inlineequation", NODE_IGNTEXT },
 	{ "itemizedlist", NODE_IGNTEXT },
+	{ "keysym", 0 },
+	{ "legalnotice", NODE_IGNTEXT },
 	{ "link", 0 },
 	{ "listitem", NODE_IGNTEXT },
 	{ "literal", 0 },
+	{ "literallayout", 0 },
 	{ "manvolnum", 0 },
+	{ "member", 0 },
 	{ "mml:math", NODE_IGNTEXT },
 	{ "mml:mfenced", 0 },
 	{ "mml:mfrac", 0 },
@@ -139,9 +159,15 @@ static	const struct node nodes[NODE__MAX
 	{ "note", NODE_IGNTEXT },
 	{ "option", 0 },
 	{ "orderedlist", NODE_IGNTEXT },
+	{ "orgname", 0 },
+	{ "othername", 0 },
 	{ "para", 0 },
 	{ "paramdef", 0 },
 	{ "parameter", 0 },
+	{ "part", NODE_IGNTEXT },
+	{ "phrase", 0 },
+	{ "preface", NODE_IGNTEXT },
+	{ "primary", 0 },
 	{ "programlisting", 0 },
 	{ "prompt", 0 },
 	{ "quote", 0 },
@@ -161,12 +187,21 @@ static	const struct node nodes[NODE__MAX
 	{ "refsect3", NODE_IGNTEXT },
 	{ "refsection", NODE_IGNTEXT },
 	{ "refsynopsisdiv", NODE_IGNTEXT },
+	{ "releaseinfo", 0 },
 	{ "replaceable", 0 },
 	{ "row", NODE_IGNTEXT },
 	{ "sbr", NODE_IGNTEXT },
 	{ "screen", NODE_IGNTEXT },
+	{ "secondary", 0 },
+	{ "sect1", NODE_IGNTEXT },
+	{ "sect2", NODE_IGNTEXT },
+	{ "section", NODE_IGNTEXT },
 	{ "sgmltag", 0 },
+	{ "simplelist", NODE_IGNTEXT },
+	{ "spanspec", NODE_IGNTEXT },
 	{ "structname", 0 },
+	{ "subtitle", 0 },
+	{ "surname", 0 },
 	{ "synopsis", 0 },
 	{ "table", NODE_IGNTEXT },
 	{ "tbody", NODE_IGNTEXT },
@@ -327,8 +362,10 @@ xml_elem_start(void *arg, const XML_Char
 			XML_GetCurrentColumnNumber(ps->xml));
 		ps->stop = 1;
 		return;
-	} else if (NODE_ROOT == ps->node && NODE_REFENTRY != node)
+	} else if (NODE_ROOT == ps->node && NODE_REFENTRY != node &&
+	    NODE_PART != node && NODE_BOOK != node) {
 		return;
+	}
 
 	if (NODE_INLINEEQUATION == node)
 		ps->flags |= PARSE_EQN;
@@ -681,9 +718,15 @@ pnode_printrefsect(struct parse *p, stru
 
 	switch (pn->node) {
 	case (NODE_REFSECT1):
+		/* FALLTHROUGH */
+	case (NODE_SECT1):
+		/* FALLTHROUGH */
+	case (NODE_CHAPTER):
 		fputs(".Sh", stdout);
 		break;
 	case (NODE_REFSECT2):
+		/* FALLTHROUGH */
+	case (NODE_SECT2):
 		fputs(".Ss", stdout);
 		break;
 	case (NODE_REFSECT3):
@@ -712,12 +755,12 @@ pnode_printrefsect(struct parse *p, stru
 
 	if (NULL != pp) {
 		pnode_printmacrolinetext(p, pp,
-			NODE_REFSECT1 == pn->node ?
+			NODE_REFSECT1 == pn->node || NODE_SECT1 == pn->node ?
 			MACROLINE_UPPER : 0);
 		pnode_printmclose(p, 1);
 		pnode_unlink(pp);
 	} else {
-		puts(NODE_REFSECT1 == pn->node ?
+		puts(NODE_REFSECT1 == pn->node || NODE_SECT1 == pn->node ?
 			"UNKNOWN" : "unknown");
 		p->newln = 1;
 	}
@@ -1191,6 +1234,7 @@ pnode_print(struct parse *p, struct pnod
 
 	sv = p->newln;
 
+	/* XXX fprintf(stderr, "NODE %s\n", nodes[pn->node].name); */
 	switch (pn->node) {
 	case (NODE_APPLICATION):
 		pnode_printmopen(p);
@@ -1203,6 +1247,18 @@ pnode_print(struct parse *p, struct pnod
 		pnode_printarg(p, pn);
 		pnode_unlinksub(pn);
 		break;
+	case (NODE_AUTHOR):
+		pnode_printmopen(p);
+		fputs("An", stdout);
+		break;
+	case (NODE_AUTHORGROUP):
+		assert(p->newln);
+		puts(".An -split");
+		break;
+	case (NODE_BOOKINFO):
+		assert(p->newln);
+		puts(".Sh NAME");
+		break;
 	case (NODE_CITEREFENTRY):
 		pnode_printmopen(p);
 		fputs("Xr", stdout);
@@ -1221,6 +1277,11 @@ pnode_print(struct parse *p, struct pnod
 		pnode_printmopen(p);
 		fputs("Dv", stdout);
 		break;
+	case (NODE_EDITOR):
+		puts("editor: ");
+		pnode_printmopen(p);
+		fputs("An", stdout);
+		break;
 	case (NODE_EMPHASIS):
 		pnode_printmopen(p);
 		fputs("Em", stdout);
@@ -1265,6 +1326,10 @@ pnode_print(struct parse *p, struct pnod
 		pnode_printgroup(p, pn);
 		pnode_unlinksub(pn);
 		break;
+	case (NODE_LEGALNOTICE):
+		assert(p->newln);
+		puts(".Sh LEGAL NOTICE");
+		break;
 	case (NODE_LITERAL):
 		pnode_printmopen(p);
 		fputs("Li", stdout);
@@ -1315,6 +1380,8 @@ pnode_print(struct parse *p, struct pnod
 		pnode_printmopen(p);
 		fputs("Qo", stdout);
 		break;
+	case (NODE_LITERALLAYOUT):
+		/* FALLTHROUGH */
 	case (NODE_PROGRAMLISTING):
 		/* FALLTHROUGH */
 	case (NODE_SCREEN):
@@ -1358,6 +1425,12 @@ pnode_print(struct parse *p, struct pnod
 		/* FALLTHROUGH */
 	case (NODE_REFSECTION):
 		/* FALLTHROUGH */
+	case (NODE_CHAPTER):
+		/* FALLTHROUGH */
+	case (NODE_SECT1):
+		/* FALLTHROUGH */
+	case (NODE_SECT2):
+		/* FALLTHROUGH */
 	case (NODE_NOTE):
 		/* FALLTHROUGH */
 	case (NODE_TIP):
@@ -1438,6 +1511,12 @@ pnode_print(struct parse *p, struct pnod
 		}
 		p->newln = 0;
 		break;
+	case (NODE_TITLE):
+		if (pn->parent->node == NODE_BOOKINFO) {
+			pnode_printmopen(p);
+			fputs("Nd", stdout);
+		}
+		break;
 	case (NODE_TYPE):
 		pnode_printmopen(p);
 		fputs("Vt", stdout);
@@ -1487,10 +1566,12 @@ pnode_print(struct parse *p, struct pnod
 		break;
 	case (NODE_APPLICATION):
 	case (NODE_ARG):
+	case (NODE_AUTHOR):
 	case (NODE_CITEREFENTRY):
 	case (NODE_CODE):
 	case (NODE_COMMAND):
 	case (NODE_CONSTANT):
+	case (NODE_EDITOR):
 	case (NODE_EMPHASIS):
 	case (NODE_ENVAR):
 	case (NODE_FILENAME):
@@ -1529,12 +1610,20 @@ pnode_print(struct parse *p, struct pnod
 			fputs(" ,", stdout);
 		pnode_printmclose(p, sv);
 		break;
+	case (NODE_LITERALLAYOUT):
+		/* FALLTHROUGH */
 	case (NODE_PROGRAMLISTING):
 		/* FALLTHROUGH */
 	case (NODE_SCREEN):
 		assert(p->newln);
 		puts(".Ed");
 		p->newln = 1;
+		break;
+	case (NODE_TITLE):
+		if (pn->parent->node == NODE_BOOKINFO) {
+			pnode_printmclose(p, 1);
+			puts(".Sh AUTHORS");
+		}
 		break;
 	default:
 		break;
--
 To unsubscribe send an email to source+unsubscribe@mandoc.bsd.lv

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-03-22 16:10 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-22 16:10 docbook2mdoc: many new nodes found below schwarze

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).