source@mandoc.bsd.lv
 help / color / Atom feed
* docbook2mdoc: Yet more whitespace improvements: * Do not forcefully 
@ 2019-05-02  4:16 schwarze
  0 siblings, 0 replies; only message in thread
From: schwarze @ 2019-05-02  4:16 UTC (permalink / raw)
  To: source

Log Message:
-----------
Yet more whitespace improvements:
* Do not forcefully break a macro line after closing delimiters,
let it continue when needed.
* In no-fill context, use .No to append text to a macro line when needed.
* In no-fill context, allow .Pf as a child macro when needed.
* Use macro_open() for .Ns, with the proper flags before and after.

Modified Files:
--------------
    docbook2mdoc:
        docbook2mdoc.c

Revision Data
-------------
Index: docbook2mdoc.c
===================================================================
RCS file: /home/cvs/mdocml/docbook2mdoc/docbook2mdoc.c,v
retrieving revision 1.147
retrieving revision 1.148
diff -Ldocbook2mdoc.c -Ldocbook2mdoc.c -u -p -r1.147 -r1.148
--- docbook2mdoc.c
+++ docbook2mdoc.c
@@ -55,15 +55,18 @@ pnode_printtext(struct format *f, struct
 		if (isspace((unsigned char)*cp)) {
 			while (isspace((unsigned char)*cp))
 				cp++;
-			macro_close(f);
+			n->flags |= NFLAG_SPC;
 		} else {
-			fputs(" Ns", stdout);
-			f->flags &= FMT_IMPL;
+			f->flags &= ~FMT_NOSPC;
+			f->flags |= FMT_CHILD;
+			macro_open(f, "Ns");
+			f->flags &= ~FMT_ARG;
+			f->flags |= FMT_CHILD;
 			accept_arg = 1;
 		}
 	}
-	if (f->linestate == LINE_MACRO && !accept_arg &&
-	    (f->flags & (FMT_CHILD | FMT_IMPL)) == 0)
+	if (f->linestate == LINE_MACRO && f->nofill == 0 &&
+	    !accept_arg && (f->flags & FMT_IMPL) == 0)
 		macro_close(f);
 
 	/*
@@ -72,7 +75,7 @@ pnode_printtext(struct format *f, struct
 	 * Set the spacing flag to avoid a redundant .Ns macro.
 	 */
 
-	if (f->linestate != LINE_MACRO &&
+	if ((f->nofill || f->linestate != LINE_MACRO) &&
 	    (nn = TAILQ_NEXT(n, child)) != NULL &&
 	     (nn->flags & NFLAG_SPC) == 0) {
 		switch (pnode_class(nn->node)) {
@@ -101,9 +104,16 @@ pnode_printtext(struct format *f, struct
 		}
 		break;
 	case LINE_MACRO:
-		if (accept_arg == 0)
-			macro_close(f);
-		else if (n->flags & NFLAG_SPC ||
+		if (accept_arg == 0) {
+			if (f->nofill) {
+				f->flags &= ~FMT_NOSPC;
+				f->flags |= FMT_CHILD;
+				macro_open(f, "No ");
+				f->flags &= ~FMT_ARG;
+				f->flags |= FMT_CHILD;
+			} else
+				macro_close(f);
+		} else if (n->flags & NFLAG_SPC ||
 		    (f->flags & FMT_ARG) == 0 ||
 		    (nn = TAILQ_PREV(n, pnodeq, child)) == NULL ||
 		    pnode_class(nn->node) != CLASS_TEXT)
--
 To unsubscribe send an email to source+unsubscribe@mandoc.bsd.lv

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

only message in thread, back to index

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-02  4:16 docbook2mdoc: Yet more whitespace improvements: * Do not forcefully schwarze

source@mandoc.bsd.lv

Archives are clonable: git clone --mirror http://inbox.vuxu.org/mandoc-source

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://inbox.vuxu.org/vuxu.archive.mandoc.source


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git