groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

mandoc warning: line scope broken: RE breaks TP (was Re: CHECKSTYLE: Rep


From: Alejandro Colomar (man-pages)
Subject: mandoc warning: line scope broken: RE breaks TP (was Re: CHECKSTYLE: Report consecutive .?P (paragraph macros))
Date: Wed, 2 Feb 2022 03:19:24 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.1

Hi Branden, Bjarni,

On 2/2/22 01:32, Bjarni Ingi Gislason wrote:
> On Mon, Jan 31, 2022 at 12:52:41AM +0100, Alejandro Colomar (man-pages) wrote:
>> Hi Branden,
>>
>> Recently you reported to me a style error:
>>
>> [
>> .PP
>> .TP
>> tag
>> paragraph
>> ]
>>
>> In general, consecutive paragraph marcos are wrong, right?  .IP, .PP,
>> .TP (and I may forget some more).
>>
>> I've tried it with -rCHECKSTYLE=3 and I got nothing.  I think this one
>> should be easy to implement, and would have no false positives, I think.
> [...]
> 
>   A usable tool is "mandoc -T lint".  Irrelevant output is just weeded
> out with a filter.

Added (see commit below); thanks!


Okay, so now I'm getting a few warnings that I didn't expect:

mandoc: share/man/man7/chessutils.7:37:2: WARNING: line scope broken: TQ
breaks TP
mandoc: share/man/man7/chessutils.7:39:2: WARNING: line scope broken: TQ
breaks TQ
mandoc: share/man/man7/chessutils.7:41:2: WARNING: line scope broken: RE
breaks TQ
mandoc: share/man/man7/chessutils.7:47:2: WARNING: line scope broken: RE
breaks TP
mandoc: share/man/man7/chessutils.7:36:2: WARNING: empty block: RS
mandoc: share/man/man7/chessutils.7:46:2: WARNING: empty block: RS


The source code is (full page:
<http://www.alejandro-colomar.es/src/alx/alx/games/chessutils.git/tree/share/man/man7/chessutils.7?id=4c2a9dff8558c2443bbbb732a862ea0ad3e48888>):

[
.PP
The project is divided in small modules,
which contain the following programs:
.TP
.I chessutils\-chess
.RS
.TP
.MR chess\-init 6
.TQ
.MR chess\-lsmv 6
.TQ
.MR chess\-mv 6
.RE
.TP
.I chessutils\-chessboard
.RS
.TP
.MR chessboard\-empty 6
.RE
]

Which prints exactly as I expected:

[
       The  project  is  divided in small modules, which contain
       the following programs:

       chessutils-chess

              chess-init(6)
              chess-lsmv(6)
              chess-mv(6)

       chessutils-chessboard

              chessboard-empty(6)
]

Is this wrong in any way?  Or is it a spurious warning?  Should I use a
different construct to build such a tree?

Thanks,

Alex

---
<http://www.alejandro-colomar.es/src/alx/alx/games/chessutils.git/commit/?id=4c2a9dff8558c2443bbbb732a862ea0ad3e48888>
commit 4c2a9dff8558c2443bbbb732a862ea0ad3e48888 (HEAD -> main, alx/main,
alx/HEAD)
Author: Alejandro Colomar <alx.manpages@gmail.com>
Date:   Wed Feb 2 03:03:22 2022 +0100

    Makefile: analyze-mandoc, analyze: Add target to run mandoc -Tlint

    Suggested-by: Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
    Cc: "G. Branden Robinson" <g.branden.robinson@gmail.com>
    Link: groff@
<https://lists.gnu.org/archive/html/groff/2022-02/msg00002.html>
    Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>

diff --git a/Makefile b/Makefile
index 5813009..44b1595 100644
--- a/Makefile
+++ b/Makefile
@@ -39,6 +39,7 @@ MAN       := $(sort $(shell find $(MANDIR)     -type f
| grep '$(manext)$$'))
 UNITS_h   := $(sort $(shell find $(INCLUDEDIR) -type f | grep '\.h$$'))
 UNITS_c   := $(sort $(shell find $(SRCDIR)     -type f | grep '\.c$$'))
 MAN_cks   := $(patsubst $(MANDIR)/%,$(builddir)/%.cks.touch,$(MAN))
+MAN_mdc   := $(patsubst $(MANDIR)/%,$(builddir)/%.mdc.touch,$(MAN))
 UNITS_ckp := $(patsubst $(SRCDIR)/%.c,$(builddir)/%.ckp.touch,$(UNITS_c))
 UNITS_ct  := $(patsubst $(SRCDIR)/%.c,$(builddir)/%.ct.touch,$(UNITS_c))
 UNITS_cpl := $(patsubst $(SRCDIR)/%.c,$(builddir)/%.cpl.touch,$(UNITS_c))
@@ -55,7 +56,7 @@ GAMES_cck := $(patsubst
$(builddir)/%.o,$(builddir)/%.cck.touch,$(GAMES_o))
 GAMES     := $(patsubst %.o,%,$(GAMES_o))
 _games    := $(patsubst $(GAMESDIR)/%,$(_gamesdir)/%,$(GAMES))
 _man      := $(patsubst $(MANDIR)/%,$(_mandir)/%,$(MAN))
-analysis   := checkpatch clang-tidy cppcheck cpplint groff iwyu
+analysis   := checkpatch clang-tidy cppcheck cpplint groff iwyu mandoc
 stages     := cpp cc as ld
 modules    := chessboard chess
 submodules := games man
@@ -115,6 +116,12 @@ EXTRA_IWYUFLAGS   :=
 IWYUFLAGS         := $(DEFAULT_IWYUFLAGS)
 IWYUFLAGS         += $(EXTRA_IWYUFLAGS)

+DEFAULT_MANDOCFLAGS := -man
+DEFAULT_MANDOCFLAGS += -Tlint
+EXTRA_MANDOCFLAGS   :=
+MANDOCFLAGS         := $(DEFAULT_MANDOCFLAGS)
+MANDOCFLAGS         += $(EXTRA_MANDOCFLAGS)
+

 DEFAULT_CPPFLAGS := -I $(INCLUDEDIR)
 EXTRA_CPPFLAGS   :=
@@ -160,6 +167,7 @@ CPPCHECK   := cppcheck
 CPPLINT    := cpplint
 GROFF      := groff
 IWYU       := iwyu
+MANDOC     := mandoc
 CC  := gcc
 CPP := gcc -E $(CFLAGS)
 AS  := gcc -c $(CFLAGS)
@@ -230,6 +238,11 @@ $(UNITS_iwyu): $(builddir)/%.iwyu.touch:
$(SRCDIR)/%.c Makefile \
        $(IWYU) $(IWYUFLAGS) $(CPPFLAGS) $(CFLAGS) $< || test $$? -eq 2 && \
        touch $@

+$(MAN_mdc): $(builddir)/%.mdc.touch: $(MANDIR)/% Makefile | $$(@D)/.
+       $(info MANDOC -Tlint    $@)
+       $(MANDOC) $(MANDOCFLAGS) $<
+       touch $@
+

 DEPTARGETS = -MT $(builddir)/$*.ckp.touch \
              -MT $(builddir)/$*.ct.touch \
@@ -272,6 +285,7 @@ analyze-cppcheck:   $(GAMES_cck)
 analyze-cpplint:    $(UNITS_cpl)
 analyze-groff:      $(MAN_cks)
 analyze-iwyu:       $(UNITS_iwyu)
+analyze-mandoc:     $(MAN_mdc)
 analyze: $(analyze)

 build := $(foreach x,$(stages),build-$(x))

-- 
Alejandro Colomar
Linux man-pages comaintainer; https://www.kernel.org/doc/man-pages/
http://www.alejandro-colomar.es/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]