* mdocml: ignore blank lines in man(7) next line scope; strange groff edge
@ 2017-06-03 15:55 schwarze
0 siblings, 0 replies; only message in thread
From: schwarze @ 2017-06-03 15:55 UTC (permalink / raw)
To: source
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 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
back in fill mode
+S\bSE\bEE\bE A\bAL\bLS\bSO\bO
+ 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)
+
+
+
+N\bNA\bAM\bME\bE
+ B-blank - blank line in font macro next line scope
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+ A blank line in b\bbo\bol\bld\bd 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 <bsd.regress.mk>
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 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
back in fill mode
+ S\bSu\bub\bbs\bse\bec\bct\bti\bio\bon\bn
+ 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 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
indented text
regular text
+ head body
+
OpenBSD December 16, 2014 TP-BROKEN(1)
--
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-06-03 15:55 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-03 15:55 mdocml: ignore blank lines in man(7) next line scope; strange groff edge 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).