man, less (more), groff, and which

Charles S. Bowman sbowman@goodnet.com
Thu Jul 24 00:54:00 GMT 1997


It seems there are a lot a questions about man in here. Perhaps if I share what I did, some of you may find it useful. When I first loaded cygwin (b17.1), I too felt crippled without man, more, vi, which, etc.. For vi, I'm using vim 4.6, works great. That wasn't the hard part.
For man, I built groff-1.10 from prep.ai.mit.edu will only minor difficulties and less (version and source unknown - however, I found it on one of the pages linked from the Cygnus Gnu-win32 home page). Then I put a (quite crude but functional) script in /usr/bin/man as follows:
--- cut ---
#! /bin/sh
# Filename : man
# Author : Steve Bowman
# Created : 970323N
# Modified : 970724R
# crude - the following are known bugs/omissions:
#	doesn't handle multiple arguments (use shift)
#	doesn't break search when file found
#	doesn't check extension match
#	doesn't handle pager environment
#	doesn't handle flag to alter search path without resetting MANPATH
#	assumes groff and less are in PATH
if [ $# -eq 0 ]; then
 echo "Usage: man <manpage>"
 exit 1
fi
if [ x$MANPATH = x ]; then
 MANPATH=/usr/man:/usr/gnuwin32/b18/man
fi
for i in `echo $MANPATH | sed s/:/\ /g`; do
 if [ -d $i ]; then
	cd $i
	if [ -f man?/1ドル.1 ]; then
	 if [ $? -eq 0 ]; then
		groff -man -Tascii -Wall man?/1ドル.? | less
	 fi
	fi
 fi
done
exit 0
--- cut ---
And finally, to launch it I put a function in /etc/profile:
man () { sh /usr/bin/man $@; }
Since that version of bash wouldn't recognize /usr/bin/man as executable. I don't know if that's still a problem or not.
'Which' I solved the same way as man, except no more supporting packages were required.
/usr/bin/which:
--- cut ---
#! /bin/sh
# Filename : which
# Author : Steve Bowman
# Created : 970323N
# Modified : 970724R
# should check for aliases
if [ $# -eq 0 ]; then
 echo "Usage: which <command>"
 exit 1
fi
if [ x$PATH = x ]; then
 echo "Error: No PATH"
 exit 1
fi
for i in `echo $PATH | sed s/:/\ /g`; do
 if [ -f $i/1ドル.exe ]; then
	echo $i/1ドル.exe
	exit 0
 elif [ -f $i/1ドル ]; then
	echo $i/1ドル
	exit 0
 fi
done
echo "${1}: not found"
exit 1
--- cut ---
and added:
which () { sh /usr/bin/which $@; }
to /etc/profile.
Real, compiled programs would be better, but not having them is no reason to do without.
Steve Bowman
P.S. Platform: win95, currently running gnuwin32 beta 18.
P.P.S. I don't recall the details of what I had to do to build groff, but if anyone is desperate, I'll rebuild it and figure it out again. No promises on how soon I can get back to this mailing list, though.
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


More information about the Cygwin mailing list

AltStyle によって変換されたページ (->オリジナル) /