Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Jan 2011 22:51:45 -0600
From:      "David J. Weller-Fahy" <dave-lists-freebsd-questions@weller-fahy.com>
To:        freebsd-questions@freebsd.org
Subject:   Re: How to adjust man page line length [SOLVED]
Message-ID:  <20110120045145.GL90952@weller-fahy.com>
In-Reply-To: <xeia1v49jmub.fsf@kobe.laptop>
References:  <20110118034037.GF90952@weller-fahy.com> <xeia7he29lxq.fsf@kobe.laptop> <20110118182918.GA14251@Grumpy.DynDNS.org> <xeia1v49jmub.fsf@kobe.laptop>

next in thread | previous in thread | raw e-mail | index | archive | help

--liqSWPDvh3eyfZ9k
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

* Giorgos Keramidas <keramida@ceid.upatras.gr> [2011-01-19 02:57 -0500]:
> On Tue, 18 Jan 2011 12:29:18 -0600, David Kelly <dkelly@hiwaay.net> wrote:
> > On Tue, Jan 18, 2011 at 06:11:13PM +0100, Giorgos Keramidas wrote:
> >> Set the 'columns' attribute of your tty:
> >>     stty columns 60
> >>     man xxx
> >
> > *Should*? You posted without trying it? (I tried, did not work).
>=20
> 'Should' as in "I tried it here and it worked".  I'm running a recent
> CURRENT snapshot, but I don't think this affects the results.  What
> does 'stty -a' show in your terminal?  What is your shell's
> environment (e.g. the value of COLUMNS)?  What is your PAGER? etc.

Well... that was an interesting night of experimentation.  Thanks for
the idea about stty (which I didn't know about), because otherwise I
might have gone mad (apparently COLUMNS isn't set in the environment of
a shell script... which makes sense when one thinks about it).

Regardless, I ended up finding two solutions.

First, I created the following shell script.

#v+
dave@heffalump:~$ cat bin/man.sh
#!/bin/sh
mpage=3D`man -w $1`
tcols=3D`stty -a | grep columns | awk '{ print $6 }'`

zcat -f `man -w $1` | groff -Tutf8 -man -rIN=3D7n -rLL=3D`echo ${tcols} - 3=
 | bc`n - | less
#v-

That did the job, but made `man -k`, which my fingers find familiar,
unusable.  I remembered you were running a CURRENT snapshot, so figured
I'd check the difference between man in HEAD and 8.1-RELEASE... WOW!
The man in HEAD is now a shell script.

That inspired a second solution: Take the shell script from HEAD, and
install it for my user's use.  So, I checked out the man from HEAD.

	svn checkout svn://svn.freebsd.org/base/head/usr.bin/man

I installed fakeroot (needed to install the man pages).

The Makefile doesn't honor PREFIX, but does honor BINDIR/MANDIR, so I
used the following command-line to install the man from HEAD.

	fakeroot make install BINDIR=3D/home/dave/usr/bin MANDIR=3D/home/dave/usr/=
man/man NO_MANCOMPRESS=3D"YES"

Whoops!  The program and man pages installed, but man pages were not
displayed using the number of columns.  Apparently there's more to the
modified behavior in HEAD than just the man display program... but the
new man is a shell script so I can modify it.

I applied the following patch.

#v+
--- man.sh.orig	2011-01-19 22:41:34.000000000 -0600
+++ man.sh	2011-01-19 22:41:33.000000000 -0600
@@ -891,9 +891,10 @@
 	search_whatis whatis "$@"
 }
=20
+cols=3D`stty -a | grep columns | awk '{ print $6 }'`
 EQN=3D/usr/bin/eqn
 COL=3D/usr/bin/col
-NROFF=3D'/usr/bin/groff -S -Wall -mtty-char -man'
+NROFF=3D'/usr/bin/groff -S -Wall -mtty-char -man -rLL=3D`echo $cols - 3 | =
bc`n'
 PIC=3D/usr/bin/pic
 SYSCTL=3D/sbin/sysctl
 TBL=3D/usr/bin/tbl
#v-

I installed again, and done!

So, more gymnastics than I would like, but now man uses the current
number of columns.  I'll use this method until the new shell script
version in HEAD makes it into the base of a release I'm running.

Thanks to all for the information and inspiration!

Regards,
--=20
dave [ please don't CC me ]

--liqSWPDvh3eyfZ9k
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (Darwin)

iEYEARECAAYFAk03v2AACgkQzahokXOb2UyryACdGv8XQ8Yichmg5A6BrwxGZ5GO
FrAAn18zTY8pejB4ICOK/8oJZNVT8Y6g
=p2Zf
-----END PGP SIGNATURE-----

--liqSWPDvh3eyfZ9k--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110120045145.GL90952>