source@mandoc.bsd.lv
 help / color / mirror / Atom feed
* mdocml: A few days ago, a patch from <G dot Branden dot Robinson at
@ 2017-05-01 23:28 schwarze
  0 siblings, 0 replies; only message in thread
From: schwarze @ 2017-05-01 23:28 UTC (permalink / raw)
  To: source

Log Message:
-----------
A few days ago, a patch from <G dot Branden dot Robinson at gmail dot com>
got committed to groff which changed .TP from using .it to using .itc,
such that groff now supports more than one man(7) macro line in the .TP
head if all but the last line in the head end with \c.

Of course, relying on that behaviour is utterly non-portable, but if
authors are reckless enough to use that idiom, let's do what they want.

Modified Files:
--------------
    mdocml:
        man.c

Revision Data
-------------
Index: man.c
===================================================================
RCS file: /home/cvs/mdocml/mdocml/man.c,v
retrieving revision 1.170
retrieving revision 1.171
diff -Lman.c -Lman.c -u -p -r1.170 -r1.171
--- man.c
+++ man.c
@@ -1,7 +1,7 @@
 /*	$Id$ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2013, 2014, 2015 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2013, 2014, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
  * Copyright (c) 2011 Joerg Sonnenberger <joerg@netbsd.org>
  *
  * Permission to use, copy, modify, and distribute this software for any
@@ -200,6 +200,20 @@ man_pmacro(struct roff_man *man, int ln,
 
 	man_breakscope(man, tok);
 	bline = man->flags & MAN_BLINE;
+
+	/*
+	 * If the line in next-line scope ends with \c, keep the
+	 * next-line scope open for the subsequent input line.
+	 * That is not at all portable, only groff >= 1.22.4
+	 * does it, but *if* this weird idiom occurs in a manual
+	 * page, that's very likely what the author intended.
+	 */
+
+	if (bline) {
+		cp = strchr(buf + offs, '\0') - 2;
+		if (cp >= buf && cp[0] == '\\' && cp[1] == 'c')
+			bline = 0;
+	}
 
 	/* Call to handler... */
 
--
 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:[~2017-05-01 23:28 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-01 23:28 mdocml: A few days ago, a patch from <G dot Branden dot Robinson at 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).