From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from localhost (fantadrom.bsd.lv [local]) by fantadrom.bsd.lv (OpenSMTPD) with ESMTPA id edd705e3 for ; Sat, 3 Jun 2017 10:55:58 -0500 (EST) Date: Sat, 3 Jun 2017 10:55:58 -0500 (EST) Message-Id: <303590969999578257.enqueue@fantadrom.bsd.lv> 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: ignore blank lines in man(7) next line scope; strange groff edge X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Log Message: ----------- ignore blank lines in man(7) next line scope; strange groff edge case behaviour found in multimedia/mjpegtools Modified Files: -------------- mdocml: man.c mandoc.h read.c mdocml/regress/man/B: Makefile mdocml/regress/man/SH: Makefile noarg.in noarg.out_ascii noarg.out_lint mdocml/regress/man/SS: Makefile noarg.in noarg.out_ascii noarg.out_lint mdocml/regress/man/TP: Makefile broken.in broken.out_ascii broken.out_lint Added Files: ----------- mdocml/regress/man/B: blank.in blank.out_ascii blank.out_lint Revision Data ------------- Index: Makefile =================================================================== RCS file: /home/cvs/mdocml/mdocml/regress/man/SH/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -Lregress/man/SH/Makefile -Lregress/man/SH/Makefile -u -p -r1.1 -r1.2 --- regress/man/SH/Makefile +++ regress/man/SH/Makefile @@ -10,6 +10,7 @@ LINT_TARGETS = broken broken_eline empty # - If .HP breaks .SH, a line is broken after the next input line. # - If .RS/RE/nf/fi breaks .SH, the next input line becomes bold. # - .UR does not break .SH. +# - blank line in .SH next line scope causes blank lines and bogus indent SKIP_GROFF = broken broken_eline noarg Index: noarg.in =================================================================== RCS file: /home/cvs/mdocml/mdocml/regress/man/SH/noarg.in,v retrieving revision 1.1 retrieving revision 1.2 diff -Lregress/man/SH/noarg.in -Lregress/man/SH/noarg.in -u -p -r1.1 -r1.2 --- regress/man/SH/noarg.in +++ regress/man/SH/noarg.in @@ -40,3 +40,7 @@ no-fill mode .SH .fi back in fill mode +.SH + +SEE ALSO +broken(1) Index: noarg.out_lint =================================================================== RCS file: /home/cvs/mdocml/mdocml/regress/man/SH/noarg.out_lint,v retrieving revision 1.1 retrieving revision 1.2 diff -Lregress/man/SH/noarg.out_lint -Lregress/man/SH/noarg.out_lint -u -p -r1.1 -r1.2 --- regress/man/SH/noarg.out_lint +++ regress/man/SH/noarg.out_lint @@ -11,3 +11,4 @@ mandoc: noarg.in:31:2: WARNING: line sco mandoc: noarg.in:34:2: WARNING: line scope broken: UE breaks SH mandoc: noarg.in:35:2: ERROR: skipping end of block that is not open: UE mandoc: noarg.in:41:2: WARNING: fill mode already enabled, skipping: fi +mandoc: noarg.in:44:1: WARNING: skipping blank line in line scope Index: noarg.out_ascii =================================================================== RCS file: /home/cvs/mdocml/mdocml/regress/man/SH/noarg.out_ascii,v retrieving revision 1.1 retrieving revision 1.2 diff -Lregress/man/SH/noarg.out_ascii -Lregress/man/SH/noarg.out_ascii -u -p -r1.1 -r1.2 --- regress/man/SH/noarg.out_ascii +++ regress/man/SH/noarg.out_ascii @@ -27,6 +27,9 @@ DDEESSCCRRIIPPTTIIOONN back in fill mode +SSEEEE AALLSSOO + broken(1) + OpenBSD March 20, 2015 SH-NOARG(1) Index: man.c =================================================================== RCS file: /home/cvs/mdocml/mdocml/man.c,v retrieving revision 1.173 retrieving revision 1.174 diff -Lman.c -Lman.c -u -p -r1.173 -r1.174 --- man.c +++ man.c @@ -89,14 +89,15 @@ man_ptext(struct roff_man *man, int line /* Skip leading whitespace. */ ; /* - * Blank lines are ignored right after headings - * but add a single vertical space elsewhere. + * Blank lines are ignored in next line scope and right + * after headings but add a single vertical space elsewhere. */ if (buf[i] == '\0') { - man_breakscope(man, ROFF_sp); - /* Allocate a blank entry. */ - if (man->last->tok != MAN_SH && + if (man->flags & (MAN_ELINE | MAN_BLINE)) + mandoc_msg(MANDOCERR_BLK_BLANK, man->parse, + line, 0, NULL); + else if (man->last->tok != MAN_SH && man->last->tok != MAN_SS) { roff_elem_alloc(man, line, offs, ROFF_sp); man->next = ROFF_NEXT_SIBLING; Index: read.c =================================================================== RCS file: /home/cvs/mdocml/mdocml/read.c,v retrieving revision 1.168 retrieving revision 1.169 diff -Lread.c -Lread.c -u -p -r1.168 -r1.169 --- read.c +++ read.c @@ -139,6 +139,7 @@ static const char * const mandocerrs[MAN "fill mode already enabled, skipping", "fill mode already disabled, skipping", "line scope broken", + "skipping blank line in line scope", /* related to missing macro arguments */ "skipping empty request", Index: mandoc.h =================================================================== RCS file: /home/cvs/mdocml/mdocml/mandoc.h,v retrieving revision 1.221 retrieving revision 1.222 diff -Lmandoc.h -Lmandoc.h -u -p -r1.221 -r1.222 --- mandoc.h +++ mandoc.h @@ -97,6 +97,7 @@ enum mandocerr { MANDOCERR_FI_SKIP, /* fill mode already enabled, skipping: fi */ MANDOCERR_NF_SKIP, /* fill mode already disabled, skipping: nf */ MANDOCERR_BLK_LINE, /* line scope broken: macro breaks macro */ + MANDOCERR_BLK_BLANK, /* skipping blank line in line scope */ /* related to missing arguments */ MANDOCERR_REQ_EMPTY, /* skipping empty request: request */ --- /dev/null +++ regress/man/B/blank.out_ascii @@ -0,0 +1,13 @@ +B-BLANK(1) General Commands Manual B-BLANK(1) + + + +NNAAMMEE + B-blank - blank line in font macro next line scope + +DDEESSCCRRIIPPTTIIOONN + A blank line in bboolldd next line scope. + + + +OpenBSD June 3, 2017 B-BLANK(1) --- /dev/null +++ regress/man/B/blank.out_lint @@ -0,0 +1 @@ +mandoc: blank.in:7:1: WARNING: skipping blank line in line scope --- /dev/null +++ regress/man/B/blank.in @@ -0,0 +1,9 @@ +.TH B-BLANK 1 "June 3, 2017" OpenBSD +.SH NAME +B-blank \- blank line in font macro next line scope +.SH DESCRIPTION +A blank line in +.B + +bold +next line scope. Index: Makefile =================================================================== RCS file: /home/cvs/mdocml/mdocml/regress/man/B/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -Lregress/man/B/Makefile -Lregress/man/B/Makefile -u -p -r1.1 -r1.2 --- regress/man/B/Makefile +++ regress/man/B/Makefile @@ -1,6 +1,10 @@ # $OpenBSD: Makefile,v 1.1 2014/08/14 02:00:52 schwarze Exp $ -REGRESS_TARGETS = args -LINT_TARGETS = args +REGRESS_TARGETS = args blank +LINT_TARGETS = args blank + +# groff-1.22.3 defect: +# - A blank line in next line scope causes a blank line. +SKIP_GROFF = blank .include Index: noarg.in =================================================================== RCS file: /home/cvs/mdocml/mdocml/regress/man/SS/noarg.in,v retrieving revision 1.1 retrieving revision 1.2 diff -Lregress/man/SS/noarg.in -Lregress/man/SS/noarg.in -u -p -r1.1 -r1.2 --- regress/man/SS/noarg.in +++ regress/man/SS/noarg.in @@ -40,3 +40,7 @@ no-fill mode .SS .fi back in fill mode +.SS + +Subsection +with a blank line Index: noarg.out_ascii =================================================================== RCS file: /home/cvs/mdocml/mdocml/regress/man/SS/noarg.out_ascii,v retrieving revision 1.1 retrieving revision 1.2 diff -Lregress/man/SS/noarg.out_ascii -Lregress/man/SS/noarg.out_ascii -u -p -r1.1 -r1.2 --- regress/man/SS/noarg.out_ascii +++ regress/man/SS/noarg.out_ascii @@ -27,6 +27,9 @@ DDEESSCCRRIIPPTTIIOONN back in fill mode + SSuubbsseeccttiioonn + with a blank line + OpenBSD March 20, 2015 SS-NOARG(1) Index: noarg.out_lint =================================================================== RCS file: /home/cvs/mdocml/mdocml/regress/man/SS/noarg.out_lint,v retrieving revision 1.1 retrieving revision 1.2 diff -Lregress/man/SS/noarg.out_lint -Lregress/man/SS/noarg.out_lint -u -p -r1.1 -r1.2 --- regress/man/SS/noarg.out_lint +++ regress/man/SS/noarg.out_lint @@ -11,3 +11,4 @@ mandoc: noarg.in:31:2: WARNING: line sco mandoc: noarg.in:34:2: WARNING: line scope broken: UE breaks SS mandoc: noarg.in:35:2: ERROR: skipping end of block that is not open: UE mandoc: noarg.in:41:2: WARNING: fill mode already enabled, skipping: fi +mandoc: noarg.in:44:1: WARNING: skipping blank line in line scope Index: Makefile =================================================================== RCS file: /home/cvs/mdocml/mdocml/regress/man/SS/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -Lregress/man/SS/Makefile -Lregress/man/SS/Makefile -u -p -r1.1 -r1.2 --- regress/man/SS/Makefile +++ regress/man/SS/Makefile @@ -10,6 +10,7 @@ LINT_TARGETS = broken broken_eline noarg # - If .HP breaks .SS, a line is broken after the next input line. # - If .RS/RE/nf/fi breaks .SS, the next input line becomes bold. # - .UR does not break .SS. +# - blank line in .SS next-line scope causes a blank line SKIP_GROFF = broken broken_eline noarg Index: broken.out_lint =================================================================== RCS file: /home/cvs/mdocml/mdocml/regress/man/TP/broken.out_lint,v retrieving revision 1.1 retrieving revision 1.2 diff -Lregress/man/TP/broken.out_lint -Lregress/man/TP/broken.out_lint -u -p -r1.1 -r1.2 --- regress/man/TP/broken.out_lint +++ regress/man/TP/broken.out_lint @@ -1 +1,2 @@ mandoc: broken.in:10:2: WARNING: line scope broken: RE breaks TP +mandoc: broken.in:15:1: WARNING: skipping blank line in line scope Index: Makefile =================================================================== RCS file: /home/cvs/mdocml/mdocml/regress/man/TP/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -Lregress/man/TP/Makefile -Lregress/man/TP/Makefile -u -p -r1.1 -r1.2 --- regress/man/TP/Makefile +++ regress/man/TP/Makefile @@ -8,6 +8,7 @@ LINT_TARGETS = broken double eof # groff-1.22.3 defects: # - If .TP precedes .RE, the latter does not properly reset indentation. # - If the last line of the file is .TP, groff does not print a page footer. +# - A blank line in .TP next line scope causes a blank line. SKIP_GROFF = broken eof Index: broken.in =================================================================== RCS file: /home/cvs/mdocml/mdocml/regress/man/TP/broken.in,v retrieving revision 1.1 retrieving revision 1.2 diff -Lregress/man/TP/broken.in -Lregress/man/TP/broken.in -u -p -r1.1 -r1.2 --- regress/man/TP/broken.in +++ regress/man/TP/broken.in @@ -11,3 +11,7 @@ text .RE regular text +.TP + +head +body Index: broken.out_ascii =================================================================== RCS file: /home/cvs/mdocml/mdocml/regress/man/TP/broken.out_ascii,v retrieving revision 1.1 retrieving revision 1.2 diff -Lregress/man/TP/broken.out_ascii -Lregress/man/TP/broken.out_ascii -u -p -r1.1 -r1.2 --- regress/man/TP/broken.out_ascii +++ regress/man/TP/broken.out_ascii @@ -10,6 +10,8 @@ DDEESSCCRRIIPPTTIIOONN indented text regular text + head body + OpenBSD December 16, 2014 TP-BROKEN(1) -- To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv