Subject: Re: groff question: update needs less -R
To: None <tech-userlevel@netbsd.org>
From: Alan Barrett <apb@cequrux.com>
List: tech-userlevel
Date: 06/15/2003 09:50:40
On Sun, 15 Jun 2003, Thomas Klausner wrote:
> One solution would be to add -R to the default pager options
> in usr.bin/man/pathconf.h. That should work, but users
> setting their own PAGER would probably have to adapt.
> less -R displays old-style man pages fine.
groff really should not be using ANSI escape sequences, unless it knows
that you have a terminal that can handle them. It would be nice if
NetBSD's groff could have this bug fixed.
Last time you raised this issue (in February 2003), I demonstrated that
"less -R" does not do the right thing if you have a terminal that does
not handle ANSI escape sequences. Here's part of my previous message
again:
On Mon, 17 Feb 2003, Thomas Klausner wrote:
> I guess it does the right thing,
> /usr/pkg/bin/nroff -mandoc /some/random/man/page.1 | less -R
> works fine for me.
Doing the right thing requires parsing the escape sequences on input,
and translating them to whatever is appropriate for the output device.
I see no hint in the less man page that it will do that. A brief test
suggests that it copies the escape sequences to the output without
translation.
$ script
Script started, output file is typescript
$ printf '\e[3mfoo\e[0m\n' | TERM=hp2624 less -R
[press 'q' to quit from less]
$ exit
Script done, output file is typescript
$ hexdump -C typescript | less
[observe a weird mixture of HP escape sequences combined
with the ANSI escape sequences copied from the input]
--apb (Alan Barrett)