source@mandoc.bsd.lv
 help / color / mirror / Atom feed
From: schwarze@mandoc.bsd.lv
To: source@mandoc.bsd.lv
Subject: docbook2mdoc: provide an -s command line option to override the section
Date: Wed, 1 May 2019 04:02:55 -0500 (EST)	[thread overview]
Message-ID: <e3fed772dd12db2e@fantadrom.bsd.lv> (raw)

Log Message:
-----------
provide an -s command line option to override the section in .Dt

Modified Files:
--------------
    docbook2mdoc:
        docbook2mdoc.1
        main.c
        reorg.c
        reorg.h

Revision Data
-------------
Index: reorg.c
===================================================================
RCS file: /home/cvs/mdocml/docbook2mdoc/reorg.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -Lreorg.c -Lreorg.c -u -p -r1.4 -r1.5
--- reorg.c
+++ reorg.c
@@ -24,7 +24,7 @@
  */
 
 static void
-reorg_root(struct pnode *root)
+reorg_root(struct pnode *root, const char *sec)
 {
 	struct pnode	*date, *info, *name, *vol, *nc;
 
@@ -53,11 +53,12 @@ reorg_root(struct pnode *root)
 		pnode_alloc_text(name,
 		    pnode_getattr_raw(root, ATTRKEY_ID, "UNKNOWN"));
 	}
-	if (vol == NULL) {
+	if (vol == NULL || sec != NULL) {
+		pnode_unlink(vol);
 		vol = pnode_alloc(NULL);
 		vol->node = NODE_MANVOLNUM;
 		vol->parent = root;
-		pnode_alloc_text(vol, "1");
+		pnode_alloc_text(vol, sec == NULL ? "1" : sec);
 	}
 
 	/* Insert prologue information at the beginning. */
@@ -271,8 +272,8 @@ reorg_recurse(struct pnode *n)
 }
 
 void
-ptree_reorg(struct ptree *tree)
+ptree_reorg(struct ptree *tree, const char *sec)
 {
-	reorg_root(tree->root);
+	reorg_root(tree->root, sec);
 	reorg_recurse(tree->root);
 }
Index: docbook2mdoc.1
===================================================================
RCS file: /home/cvs/mdocml/docbook2mdoc/docbook2mdoc.1,v
retrieving revision 1.14
retrieving revision 1.15
diff -Ldocbook2mdoc.1 -Ldocbook2mdoc.1 -u -p -r1.14 -r1.15
--- docbook2mdoc.1
+++ docbook2mdoc.1
@@ -24,6 +24,7 @@
 .Sh SYNOPSIS
 .Nm docbook2mdoc
 .Op Fl W
+.Op Fl s Ar section
 .Op Fl T Cm mdoc | tree | lint
 .Op Ar file
 .Sh DESCRIPTION
@@ -43,6 +44,19 @@ or omitted, standard input is used.
 .Pp
 The options are as follows:
 .Bl -tag -width 2n
+.It Fl s
+Specify the manual page
+.Ar section
+to be used as the second argument of the
+.Ic \&Dt
+macro.
+Defaults to the content of the first
+.Eo < Ic manvolnum Ec >
+element in the first
+.Eo < Ic refmeta Ec >
+block, if any, or to
+.Qq 1
+otherwise.
 .It Fl T
 Select the output mode.
 The following arguments are supported:
Index: reorg.h
===================================================================
RCS file: /home/cvs/mdocml/docbook2mdoc/reorg.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -Lreorg.h -Lreorg.h -u -p -r1.1 -r1.2
--- reorg.h
+++ reorg.h
@@ -19,4 +19,4 @@
  * The interface of the tree reorganizer.
  */
 
-void	 ptree_reorg(struct ptree *);
+void	 ptree_reorg(struct ptree *, const char *sec);
Index: main.c
===================================================================
RCS file: /home/cvs/mdocml/docbook2mdoc/main.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -Lmain.c -Lmain.c -u -p -r1.9 -r1.10
--- main.c
+++ main.c
@@ -42,7 +42,7 @@ main(int argc, char *argv[])
 	struct parse	*parser;
 	struct ptree	*tree;
 	const char	*progname;
-	const char	*fname, *bname;
+	const char	*bname, *fname, *sec;
 	int		 ch, fd, rc, warn;
 	enum outt	 outtype;
 
@@ -51,10 +51,14 @@ main(int argc, char *argv[])
 	else
 		progname++;
 
+	sec = NULL;
 	warn = 0;
 	outtype = OUTT_MDOC;
-	while ((ch = getopt(argc, argv, "T:W")) != -1) {
+	while ((ch = getopt(argc, argv, "s:T:W")) != -1) {
 		switch (ch) {
+		case 's':
+			sec = optarg;
+			break;
 		case 'T':
 			if (strcmp(optarg, "mdoc") == 0)
 				outtype = OUTT_MDOC;
@@ -98,7 +102,7 @@ main(int argc, char *argv[])
 
 	parser = parse_alloc(warn);
 	tree = parse_file(parser, fd, fname);
-	ptree_reorg(tree);
+	ptree_reorg(tree, sec);
 	rc = tree->flags & TREE_ERROR ? 3 : tree->flags & TREE_WARN ? 2 : 0;
 
 	/* Format. */
@@ -121,7 +125,7 @@ main(int argc, char *argv[])
 	return rc;
 
 usage:
-	fprintf(stderr, "usage: %s [-W] [-T mdoc | tree | lint] "
-	    "[input_filename]\n", progname);
+	fprintf(stderr, "usage: %s [-W] [-s section] "
+	    "[-T mdoc | tree | lint] [input_filename]\n", progname);
 	return 5;
 }
--
 To unsubscribe send an email to source+unsubscribe@mandoc.bsd.lv

                 reply	other threads:[~2019-05-01  9:02 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e3fed772dd12db2e@fantadrom.bsd.lv \
    --to=schwarze@mandoc.bsd.lv \
    --cc=source@mandoc.bsd.lv \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).