From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from scc-mailout-kit-01-web.scc.kit.edu (scc-mailout-kit-01-web.scc.kit.edu [129.13.231.93]); by fantadrom.bsd.lv (OpenSMTPD) with ESMTP id d539dd13; for ; Fri, 4 Sep 2015 16:49:05 -0500 (EST) Received: from asta-nat.asta.uni-karlsruhe.de ([172.22.63.82] helo=hekate.usta.de) by scc-mailout-kit-01.scc.kit.edu with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (envelope-from ) id 1ZXyr1-0005uL-AI; Fri, 04 Sep 2015 23:49:04 +0200 Received: from donnerwolke.usta.de ([172.24.96.3]) by hekate.usta.de with esmtp (Exim 4.77) (envelope-from ) id 1ZXyr1-0000ce-8J; Fri, 04 Sep 2015 23:49:03 +0200 Received: from athene.usta.de ([172.24.96.10]) by donnerwolke.usta.de with esmtp (Exim 4.84) (envelope-from ) id 1ZXyr1-0002Kb-1N; Fri, 04 Sep 2015 23:49:03 +0200 Received: from localhost (1031@localhost [local]); by localhost (OpenSMTPD) with ESMTPA id d7432898; Fri, 4 Sep 2015 23:49:02 +0200 (CEST) Date: Fri, 4 Sep 2015 23:49:02 +0200 From: Ingo Schwarze To: Christian Neukirchen Cc: tech@mdocml.bsd.lv Subject: Re: .TH/.nf indentation Message-ID: <20150904214902.GC30476@athene.usta.de> References: <87twrav1oz.fsf@gmail.com> X-Mailinglist: mdocml-tech Reply-To: tech@mdocml.bsd.lv MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87twrav1oz.fsf@gmail.com> User-Agent: Mutt/1.5.23 (2014-03-12) Hi Christian, Christian Neukirchen wrote on Fri, Sep 04, 2015 at 01:55:24PM +0200: > mdocml-1.13.3 and HEAD as of today misrender this: that should be fixed in HEAD now. Thanks for reporting, Ingo > .TH foo 1 > .SH OPTIONS > .TP > .nf > foo > .fi > description of foo > .TP > .nf > bar > .fi > description of bar > > as > > OPTIONS > foo > description of foo > bar > description of bar > > But groff and Plan9 nroff render it as > > OPTIONS > foo > description of foo > > bar > description of bar > > Found in exiv2.1 and all manpages written by ksb. Log Message: ----------- Fill mode changes don't break next-line scope in all cases, in particular not for tagged paragraphs. Issue found by Christian Neukirchen in the exiv2(1) manual page. Modified Files: -------------- mdocml: man.c man_macro.c Revision Data ------------- Index: man.c =================================================================== RCS file: /home/cvs/mdocml/mdocml/man.c,v retrieving revision 1.163 retrieving revision 1.164 diff -Lman.c -Lman.c -u -p -r1.163 -r1.164 --- man.c +++ man.c @@ -283,6 +283,20 @@ man_breakscope(struct roff_man *man, int } /* + * Weird special case: + * Switching fill mode closes section headers. + */ + + if (man->flags & MAN_BLINE && + (tok == MAN_nf || tok == MAN_fi) && + (man->last->tok == MAN_SH || man->last->tok == MAN_SS)) { + n = man->last; + man_unscope(man, n); + roff_body_alloc(man, n->line, n->pos, n->tok); + man->flags &= ~MAN_BLINE; + } + + /* * A block header next line scope is open, * and the new macro is not allowed inside block headers. * Delete the block that is being broken. Index: man_macro.c =================================================================== RCS file: /home/cvs/mdocml/mdocml/man_macro.c,v retrieving revision 1.109 retrieving revision 1.110 diff -Lman_macro.c -Lman_macro.c -u -p -r1.109 -r1.110 --- man_macro.c +++ man_macro.c @@ -63,8 +63,8 @@ const struct man_macro __man_macros[MAN_ { in_line_eoln, 0 }, /* IR */ { in_line_eoln, 0 }, /* RI */ { in_line_eoln, MAN_NSCOPED }, /* sp */ - { in_line_eoln, MAN_BSCOPE }, /* nf */ - { in_line_eoln, MAN_BSCOPE }, /* fi */ + { in_line_eoln, MAN_NSCOPED }, /* nf */ + { in_line_eoln, MAN_NSCOPED }, /* fi */ { blk_close, MAN_BSCOPE }, /* RE */ { blk_exp, MAN_BSCOPE }, /* RS */ { in_line_eoln, 0 }, /* DT */ -- To unsubscribe send an email to tech+unsubscribe@mdocml.bsd.lv