>>>>> Colin Watson <[EMAIL PROTECTED]> writes:

 > Package: man-db
 > Version: 2.5.0-3
 > Severity: wishlist

 > It would be useful to be able to tell man to pass the -wmac option to
 > groff, or other similar warning options. I would like to add at least an
 > option to man to pass arbitrary warning options to groff; it might even
 > be useful (with care) to allow passing arbitrary options rather than
 > limiting it to warnings.

        It was suggested that man-db gets one more command as well, to
        do the checking in a ``standard way''.  So, I suggest the
        following:

        * add support for an MANROFFOPT environment variable to specify
          extra arguments to groff (analogous to MANROFFSEQ and MANOPT);

        * add a command, `manwe' (for ``MAN with Warnings Enabled''),
          which will behave just like `man', but with (some) Groff
          warnings enabled;

        * the command should support altering the set of warnings to be
          enabled via, say, MANWEWARN environment variable.

        Please note that `manwe' would only work as intended if `man' is
        to call `groff'.  So, `-t' option may be necessary, e. g.:

$ manwe -t ifconfig > /dev/null 
<standard input>:63: warning: `Note:' not defined
$ 

        The patch follows.

--- man-db-2.5.0-debian-3/include/Defines.in    2007-09-17 00:47:10.000000000 
+0700
+++ man-db-2.5.0-debian-3-manwe/include/Defines.in      2007-11-24 
02:46:55.000000000 +0600
@@ -80,6 +80,7 @@
 
 man = $(shell echo man |sed '$(transform)')
 mandb = $(shell echo mandb |sed '$(transform)')
+manwe = $(shell echo manwe |sed '$(transform)')
 catman = $(shell echo catman |sed '$(transform)')
 whatis = $(shell echo whatis |sed '$(transform)')
 apropos = $(shell echo apropos |sed '$(transform)')
--- man-db-2.5.0-debian-3/man/Makefile.in       2007-09-17 02:37:33.000000000 
+0700
+++ man-db-2.5.0-debian-3-manwe/man/Makefile.in 2007-11-24 02:29:07.000000000 
+0600
@@ -41,6 +41,7 @@
 # capitalized variants for .TH lines
 thman := $(shell echo '$(man)' | tr '[:lower:]' '[:upper:]')
 thmandb := $(shell echo '$(mandb)' | tr '[:lower:]' '[:upper:]')
+thmanwe := $(shell echo '$(manwe)' | tr '[:lower:]' '[:upper:]')
 thwhatis := $(shell echo '$(whatis)' | tr '[:lower:]' '[:upper:]')
 thapropos := $(shell echo '$(apropos)' | tr '[:lower:]' '[:upper:]')
 thcatman := $(shell echo '$(catman)' | tr '[:lower:]' '[:upper:]')
@@ -58,6 +59,7 @@
     -e 's,%man%,$(man),g' \
     -e 's,%mandb%,$(mandb),g' \
     -e 's,%manpath%,$(manpath),g' \
+    -e 's,%manwe%,$(manwe),g' \
     -e 's,%catman%,$(catman),g' \
     -e 's,%apropos%,$(apropos),g' \
     -e 's,%whatis%,$(whatis),g' \
@@ -65,6 +67,7 @@
     -e 's,%thzsoelim%,$(thzsoelim),g' \
     -e 's,%thman%,$(thman),g' \
     -e 's,%thmandb%,$(thmandb),g' \
+    -e 's,%thmanwe%,$(thmanwe),g' \
     -e 's,%thmanpath%,$(thmanpath),g' \
     -e 's,%thcatman%,$(thcatman),g' \
     -e 's,%thapropos%,$(thapropos),g' \
@@ -74,7 +77,7 @@
 $< > $@
 endef
 
-man1 = man manpath apropos whatis zsoelim lexgrog manconv
+man1 = man manpath apropos whatis zsoelim lexgrog manconv manwe
 man5 = manpath
 man8 = mandb catman accessdb
 
--- man-db-2.5.0-debian-3/man/man1/manwe.man1   1970-01-01 07:00:00.000000000 
+0700
+++ man-db-2.5.0-debian-3-manwe/man/man1/manwe.man1     2007-11-24 
02:39:41.000000000 +0600
@@ -0,0 +1,36 @@
+.\" Man page for manwe
+.\"
+.\" Author: Ivan Shmakov
+.\" This file is in public domain
+.\"
+.\" (Hope I didn't mess this one; is it my first manual page?)
+.\"
+.pc
+.TH %thmanwe% 1 "%date%" "%version%" "Manual pager utils"
+.SH NAME
+%manwe% \- a man with warnings enabled
+.SH SYNOPSIS
+.\" The general command line
+.B %manwe%
+.RI [\| man-options .\|.\|.\|\|]
+.SH DESCRIPTION
+.B %manwe%
+behaves identically to
+.BR %man% ,
+but with roff warnings enabled.
+.SH ENVIRONMENT
+.\".TP \w'MANWEWARN\ \ 'u
+.TP
+.if !'po4a'hide' .B MANWEWARN
+If
+.RB $ MANWEWARN
+is set, its value is used as the comma- or space-separated list of
+Groff warnings to enable.  Check
+.BR groff (1)
+documentation for a full list.
+.SH "SEE ALSO"
+.BR %man% (1),
+.BR groff (1).
+.SH HISTORY
+2007 \- Written by Ivan Shmakov in response to Debian
+.BR Bug#451187 .
--- man-db-2.5.0-debian-3/src/Makefile.in       2007-09-17 01:35:35.000000000 
+0700
+++ man-db-2.5.0-debian-3-manwe/src/Makefile.in 2007-11-24 02:25:51.000000000 
+0600
@@ -79,6 +79,7 @@
 
 # The default programs to build 
 all: $(PROGS) $(PUBTOOLS) manconv wrapper man_db.conf
+all: manwe.sh
 
 #--------------------#
 # some general rules #
@@ -128,12 +129,16 @@
 globbing: globbing.c util.o
        $(LINK.c) -DTEST $^ $(LDLIBS) -o $@
 
+manwe.sh: manwe.sh.in
+       sed -e "s/@MAN@/$(man)/" $< > manwe.sh
+
 # The standard targets
 install:
        $(MKINSTALLDIRS) $(DESTDIR)$(bindir) $(DESTDIR)$(sbindir) \
                         $(DESTDIR)$(libdir)/man-db
        $(INSTALL_PROGRAM) $(man_install_flags) man $(DESTDIR)$(bindir)/$(man)
        $(INSTALL_PROGRAM) $(man_install_flags) mandb 
$(DESTDIR)$(bindir)/$(mandb)
+       $(INSTALL_PROGRAM) manwe.sh $(DESTDIR)$(bindir)/$(manwe)
        $(INSTALL_PROGRAM) manpath $(DESTDIR)$(bindir)/$(manpath)
        $(INSTALL_PROGRAM) catman $(DESTDIR)$(bindir)/$(catman)
        $(INSTALL_PROGRAM) whatis $(DESTDIR)$(bindir)/$(whatis)
--- man-db-2.5.0-debian-3/src/man.c     2007-11-24 01:54:12.000000000 +0600
+++ man-db-2.5.0-debian-3-manwe/src/man.c       2007-11-24 02:15:52.000000000 
+0600
@@ -1254,6 +1254,7 @@
        char *fmt_prog;
        pipeline *p = pipeline_new ();
        command *cmd;
+       const char *roff_opt;
 
 #ifndef ALT_EXT_FORMAT
        dir = dir; /* not used unless looking for formatters in catdir */
@@ -1261,6 +1262,10 @@
 
        pp_string = get_preprocessors (decomp, dbfilters);
 
+       if ((roff_opt = getenv ("MANROFFOPT")) == 0) {
+               roff_opt = "";
+       }
+
 #ifdef ALT_EXT_FORMAT
        /* Check both external formatter locations */
        if (dir) {
@@ -1444,6 +1449,8 @@
                                        add_roff_line_length (cmd, &save_cat);
 #endif
 
+                               command_argstr (cmd, roff_opt);
+
                                wants_dev = 1;
                                wants_post = 1;
                                break;
@@ -1522,6 +1529,7 @@
                cmd = command_new_args (fmt_prog, file, pp_string, NULL);
                if (roff_device)
                        command_arg (cmd, roff_device);
+               command_argstr (cmd, roff_opt);
                pipeline_command (p, cmd);
        }
 
--- man-db-2.5.0-debian-3/src/manwe.sh.in       1970-01-01 07:00:00.000000000 
+0700
+++ man-db-2.5.0-debian-3-manwe/src/manwe.sh.in 2007-11-24 03:14:39.000000000 
+0600
@@ -0,0 +1,6 @@
+#!/bin/sh
+: ${MANWEWARN:=mac}
+opt="$(echo "$MANWEWARN" | tr ' \t\r' \\n | sed -e s/^/-w/)"
+opt="$opt${MANROFFOPT+ }${MANROFFOPT}"
+
+MANROFFOPT="$opt" exec @MAN@ "$@"




-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to