* docbook2mdoc: Add refmetainfo, which seems to be a holdover from early
@ 2014-04-30 12:54 kristaps
0 siblings, 0 replies; only message in thread
From: kristaps @ 2014-04-30 12:54 UTC (permalink / raw)
To: source
Log Message:
-----------
Add refmetainfo, which seems to be a holdover from early DocBook days.
Also add the -W flag to differentiate failure and warning in scanning output.
Modified Files:
--------------
docbook2mdoc:
docbook2mdoc.1
docbook2mdoc.c
extern.h
rules.c
Revision Data
-------------
Index: extern.h
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/docbook2mdoc/extern.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -Lextern.h -Lextern.h -u -p -r1.20 -r1.21
--- extern.h
+++ extern.h
@@ -52,6 +52,7 @@ enum nodeid {
NODE_REFENTRYINFO,
NODE_REFENTRYTITLE,
NODE_REFMETA,
+ NODE_REFMETAINFO,
NODE_REFMISCINFO,
NODE_REFNAME,
NODE_REFNAMEDIV,
Index: docbook2mdoc.1
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/docbook2mdoc/docbook2mdoc.1,v
retrieving revision 1.3
retrieving revision 1.4
diff -Ldocbook2mdoc.1 -Ldocbook2mdoc.1 -u -p -r1.3 -r1.4
--- docbook2mdoc.1
+++ docbook2mdoc.1
@@ -38,7 +38,11 @@ If unspecified or
.Ar \&- ,
.Ar file
is taken to be standard input.
-It accepts no arguments.
+The arguments are as follows:
+.Bl -tag -width Ds
+.It Fl W
+Output non-fatal warning messages.
+.El
.Pp
.Nm
supports only well-formed XML DocBook V4.x until V5.1.
Index: docbook2mdoc.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/docbook2mdoc/docbook2mdoc.c,v
retrieving revision 1.37
retrieving revision 1.38
diff -Ldocbook2mdoc.c -Ldocbook2mdoc.c -u -p -r1.37 -r1.38
--- docbook2mdoc.c
+++ docbook2mdoc.c
@@ -133,6 +133,7 @@ static const struct node nodes[NODE__MAX
{ "refentryinfo", NODE_IGNTEXT },
{ "refentrytitle", 0 },
{ "refmeta", NODE_IGNTEXT },
+ { "refmetainfo", NODE_IGNTEXT },
{ "refmiscinfo", NODE_IGNTEXT },
{ "refname", 0 },
{ "refnamediv", NODE_IGNTEXT },
@@ -169,6 +170,8 @@ static const struct node nodes[NODE__MAX
{ "year", NODE_IGNTEXT },
};
+static int warn = 0;
+
static void
pnode_print(struct parse *p, struct pnode *pn);
@@ -346,32 +349,35 @@ xml_elem_start(void *arg, const XML_Char
if (0 == strcmp(*att, attrkeys[key]))
break;
if (ATTRKEY__MAX == key) {
- fprintf(stderr, "%s:%zu:%zu: warning: "
- "unknown attribute \"%s\"\n",
- ps->fname,
- XML_GetCurrentLineNumber(ps->xml),
- XML_GetCurrentColumnNumber(ps->xml),
- *att);
+ if (warn)
+ fprintf(stderr, "%s:%zu:%zu: warning: "
+ "unknown attribute \"%s\"\n",
+ ps->fname,
+ XML_GetCurrentLineNumber(ps->xml),
+ XML_GetCurrentColumnNumber(ps->xml),
+ *att);
continue;
} else if ( ! isattrkey(node, key)) {
- fprintf(stderr, "%s:%zu:%zu: warning: "
- "bad attribute \"%s\"\n",
- ps->fname,
- XML_GetCurrentLineNumber(ps->xml),
- XML_GetCurrentColumnNumber(ps->xml),
- *att);
+ if (warn)
+ fprintf(stderr, "%s:%zu:%zu: warning: "
+ "bad attribute \"%s\"\n",
+ ps->fname,
+ XML_GetCurrentLineNumber(ps->xml),
+ XML_GetCurrentColumnNumber(ps->xml),
+ *att);
continue;
}
for (val = 0; val < ATTRVAL__MAX; val++)
if (0 == strcmp(*(att + 1), attrvals[val]))
break;
if (ATTRVAL__MAX != val && ! isattrval(key, val)) {
- fprintf(stderr, "%s:%zu:%zu: warning: "
- "bad attribute value \"%s\"\n",
- ps->fname,
- XML_GetCurrentLineNumber(ps->xml),
- XML_GetCurrentColumnNumber(ps->xml),
- *(att + 1));
+ if (warn)
+ fprintf(stderr, "%s:%zu:%zu: warning: "
+ "bad attribute value \"%s\"\n",
+ ps->fname,
+ XML_GetCurrentLineNumber(ps->xml),
+ XML_GetCurrentColumnNumber(ps->xml),
+ *(att + 1));
continue;
}
pattr = calloc(1, sizeof(struct pattr));
@@ -1468,15 +1474,28 @@ main(int argc, char *argv[])
XML_Parser xp;
const char *fname;
char *buf;
- int fd, rc;
+ int fd, rc, ch;
+ const char *progname;
+
+ progname = strrchr(argv[0], '/');
+ if (progname == NULL)
+ progname = argv[0];
+ else
+ ++progname;
fname = "-";
xp = NULL;
buf = NULL;
rc = 0;
- if (-1 != getopt(argc, argv, ""))
- return(EXIT_FAILURE);
+ while (-1 != (ch = getopt(argc, argv, "W")))
+ switch (ch) {
+ case ('W'):
+ warn = 1;
+ break;
+ default:
+ goto usage;
+ }
argc -= optind;
argv += optind;
@@ -1510,4 +1529,8 @@ main(int argc, char *argv[])
if (STDIN_FILENO != fd)
close(fd);
return(rc ? EXIT_SUCCESS : EXIT_FAILURE);
+
+usage:
+ fprintf(stderr, "usage: %s [-W]\n", progname);
+ return(EXIT_FAILURE);
}
Index: rules.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/docbook2mdoc/rules.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -Lrules.c -Lrules.c -u -p -r1.20 -r1.21
--- rules.c
+++ rules.c
@@ -267,6 +267,8 @@ isparent(enum nodeid node, enum nodeid p
case (NODE_COPYRIGHT):
switch (parent) {
case (NODE_INFO):
+ case (NODE_REFENTRYINFO):
+ case (NODE_REFMETAINFO):
return(1);
default:
break;
@@ -784,6 +786,8 @@ isparent(enum nodeid node, enum nodeid p
}
case (NODE_REFMETA):
return(parent == NODE_REFENTRY);
+ case (NODE_REFMETAINFO):
+ return(parent == NODE_REFMETA);
case (NODE_REFMISCINFO):
return(parent == NODE_REFMETA);
case (NODE_REFNAME):
--
To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2014-04-30 12:54 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-04-30 12:54 docbook2mdoc: Add refmetainfo, which seems to be a holdover from early kristaps
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).