From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from krisdoz.my.domain (schwarze@localhost [127.0.0.1]) by krisdoz.my.domain (8.14.5/8.14.5) with ESMTP id qAIJYJ42013921 for ; Sun, 18 Nov 2012 14:34:19 -0500 (EST) Received: (from schwarze@localhost) by krisdoz.my.domain (8.14.5/8.14.3/Submit) id qAIJYJhN022030; Sun, 18 Nov 2012 14:34:19 -0500 (EST) Date: Sun, 18 Nov 2012 14:34:19 -0500 (EST) Message-Id: <201211181934.qAIJYJhN022030@krisdoz.my.domain> X-Mailinglist: mdocml-source Reply-To: source@mdocml.bsd.lv MIME-Version: 1.0 From: schwarze@mdocml.bsd.lv To: source@mdocml.bsd.lv Subject: mdocml: Make the generated man(7) code more portable by using .PD X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Log Message: ----------- Make the generated man(7) code more portable by using .PD instead of .sp -1v, which for example Solaris nroff handles poorly. Problem report and patch by millert@, with the print_word chunk tweaked by me. Modified Files: -------------- mdocml: mdoc_man.c Revision Data ------------- Index: mdoc_man.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mdoc_man.c,v retrieving revision 1.43 retrieving revision 1.44 diff -Lmdoc_man.c -Lmdoc_man.c -u -p -r1.43 -r1.44 --- mdoc_man.c +++ mdoc_man.c @@ -253,6 +253,7 @@ static int outflags; #define MMAN_Bk (1 << 7) /* word keep mode */ #define MMAN_An_split (1 << 8) /* author mode is "split" */ #define MMAN_An_nosplit (1 << 9) /* author mode is "nosplit" */ +#define MMAN_PD (1 << 10) /* inter-paragraph spacing disabled */ #define BL_STACK_MAX 32 @@ -304,8 +305,15 @@ print_word(const char *s) * If we need a newline, print it now and start afresh. */ if (MMAN_PP & outflags) { - if ( ! (MMAN_sp & outflags)) - printf("\n.sp -1v"); + if (MMAN_sp & outflags) { + if (MMAN_PD & outflags) { + printf("\n.PD"); + outflags &= ~MMAN_PD; + } + } else if ( ! (MMAN_PD & outflags)) { + printf("\n.PD 0"); + outflags |= MMAN_PD; + } printf("\n.PP\n"); } else if (MMAN_sp & outflags) printf("\n.sp\n"); @@ -379,10 +387,16 @@ print_block(const char *s, int newflags) { outflags &= ~MMAN_PP; - if (MMAN_sp & outflags) + if (MMAN_sp & outflags) { outflags &= ~(MMAN_sp | MMAN_br); - else - print_line(".sp -1v", 0); + if (MMAN_PD & outflags) { + print_line(".PD", 0); + outflags &= ~MMAN_PD; + } + } else if (! (MMAN_PD & outflags)) { + print_line(".PD 0", 0); + outflags |= MMAN_PD; + } outflags |= MMAN_nl; print_word(s); outflags |= newflags; -- To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv