Commit Graph

20 Commits

Author SHA1 Message Date
Ruslan Ermilov
9f0f0b4d4c Clean up markup.
Approved by:	re (kib)
2011-08-04 08:50:33 +00:00
Ruslan Ermilov
a6a3e8561d When MANCOLOR environment variable is set, enable ANSI color escapes
in grotty(1).  This makes it possible to view colorized manpages in
color.

When MANPAGER environment variable is set, use it instead of PAGER.

Why another environment variable, one might ask?  With color output
enabled, both a terminal and a pager should support the ANSI color
escapes.  On a supporting terminal, less(1) with option -R would be
such a pager, while "more -s" (the current default pager for man(1))
will show garbage.  It means a different default pager is needed when
color output is enabled, but many people have PAGER set customary,
and it's unlikely to support ANSI color escapes, so introducing yet
another variable (MANPAGER) seemed like a good option to me:

- if MANPAGER is set, use that unconditionally;

- if you disable color support (it is by default), and don't set
  MANPAGER, you get an old behavior: -P pager, $PAGER, "more -s",
  in that order;

- if you enable color support (by setting MANCOLOR), and don't set
  MANPAGER, we ignore PAGER which is unlikely to support ANSI color
  escapes, and you get: -P pager, "less -Rs", in that order;

- you might have good reasons for different man(1) and general
  purpose pagers;

- later versions of GNU man(1) support MANPAGER.
2011-06-03 14:34:38 +00:00
Ruslan Ermilov
b70e20257c Don't use col(1) since grotty(1) never outputs reverse line feeds,
and because col(1) mangles ANSI color escapes if enabled.  Spaces
to tabs compression is now done by passing -h to grotty(1).

Discussed with:	uqs
2011-06-03 13:45:11 +00:00
Ruslan Ermilov
a1528c80a5 Trim more when parsing MANCONFIG directive. 2011-06-03 05:56:52 +00:00
Ruslan Ermilov
1030a67f5b Typo. 2011-06-03 05:16:54 +00:00
Ruslan Ermilov
a00944499f Added support for the MANWIDTH environment variable:
If set to a numeric value, used as the width manpages should be
displayed.  Otherwise, if set to a special value ``tty'', and
output is to a terminal, the pages may be displayed over the
whole width of the screen.
2011-06-03 05:16:33 +00:00
Ulrich Spörlein
3d12096812 Fix man -t by not passing grotty flags to groff when grotty is not
involved.

This fixes a regression introduced with r221303.

Noticed by:	jilles
2011-06-02 10:18:49 +00:00
Ulrich Spörlein
aeea395e35 Let users' PATH decide which groff suite to pick up.
Let groff pass the -c flag to grotty, which will turn off ANSI
sequences. While these are not a problem for our more/less, they get
mangled by col(1) and this will result in garbage output.

This makes man(1) work together with textproc/groff, in case the
user decided to delete the old groff from base (-DWITHOUT_GROFF).
2011-05-01 19:47:34 +00:00
Gordon Tetlow
deeff310cc Overhaul locale handling.
Use locale(1) to determine the locale instead of trying to hand roll it.
Correctly construct groff call based on charset and locale independently,
not the mix between the two.

Submitted by:	uqs@
2011-04-02 05:01:09 +00:00
Ulrich Spörlein
9b61837ada Use test(1) operators and test for the catpage not being older than the
manpage.

Identical mtimes (as generated by buildworld for these files) precluded
catpages from working.

Approved by:	gordon
2011-01-25 18:32:21 +00:00
Gordon Tetlow
82db8a5e35 Move sysctl invocation to using a variable that's fully pathed.
This prevents errors for users that don't have /sbin in their PATH.

Submitted by:	Max Boyarov
Approved by:	mentor (wes@ implicit)
2010-12-14 06:07:18 +00:00
Gordon Tetlow
57cd97175a Add ability to decompress different format manual pages.
Add support for .so directive in manual pages.

Approved by:	mentor (wes@)
2010-12-03 02:07:34 +00:00
Gordon Tetlow
3d9127f1bc Add the ability to display specific manual pages if passed on the
commandline. This mirrors the old (undocumented) GNU man functionality.
Also document this feature in the implementation notes section of
the manpage.

Submitted by:	arundel
Approved by:	wes (mentor implicit)
2010-10-07 06:34:47 +00:00
Gordon Tetlow
1d7c660a13 If LANG/LC_CTYPE/LC_ALL is set and the localized man page contains a page
also in the base set, the man utility when invoked with -a would display
pages for each locale in the same tree:

$ LANG=en_GB.ISO8859-15 man -wa man
/usr/share/man/en.ISO8859-15/man1/man.1.gz
/usr/share/man/man1/man.1.gz
/usr/share/man/en.ISO8859-15/man7/man.7.gz
/usr/share/man/man7/man.7.gz

Use continue to break out of the loop for the current locale. This results
in behavior more closely matching the old GNU man implementation:

$ LANG=en_GB.ISO8859-15 man -wa man
/usr/share/man/en.ISO8859-15/man1/man.1.gz
/usr/share/man/en.ISO8859-15/man7/man.7.gz

This will still search for a copy of the file in other manual path
locations. If there was a /usr/local/man/man1/man.1.gz file, it would still
be displayed. This is also consistent with the GNU man implementation.

Submitted by:	arundel
Approved by:	wes (mentor implicit)
2010-10-06 07:22:56 +00:00
Christian Brueffer
e809783da2 SEE ALSO should sorted by manpage section first. 2010-10-05 20:39:36 +00:00
Gordon Tetlow
7230d5e626 Add reference to intro(1) in SEE ALSO section.
PR:		docs/151216
Approved by:	wes (mentor, implicit)
2010-10-05 16:14:08 +00:00
Gordon Tetlow
00e05e697e Fix up whatis/apropos issue displaying all output on a single due to
forgotten quotes.

Submitted by:	Brandon Gooch
Approved by:	wes (mentor, implicit)
2010-10-02 06:55:04 +00:00
Gordon Tetlow
c535eb59d1 Implementaiton of man, manpath, whatis, and apropos written entirely in sh.
Features of this new version in favor of the old one:
BSD licensed -- old one is GPL.
Imports configuration from /etc/man.conf and LOCALBASE/etc/man.d/*.conf
allowing ports to extend the base functionality. The pluggable
configuration can supplement the manual search path (retiring use.perl),
add locales, and override language specific toolsets (attempt to merge
the japanese/man port into the base system as much as possible).

Much effort has been made to make this version mirror the functionality
of the existing implementation. For 99% of users, it should be a drop in
replacement.

PR:		gnu/143271, gnu/4419
Reviewed by:	dougb (previous versions)
Approved by:	wes (mentor)
2010-10-01 03:59:18 +00:00
Peter Wemm
65b3003d2d kill the undead 1997-07-13 14:26:00 +00:00
Bruce Evans
c44252b6e8 Finish importing Lite2's src/usr.bin, except for ex, diff, grep, mail,
pascal and vmstat.sparc.  All changed files on the vendor branch should
already have been imported.
1997-07-06 06:54:14 +00:00