[net.bugs.4bsd] teching catman

johanw@ttdsv.UUCP (Johan Wide'n) (05/01/84)

This has probably been up before but...

Index:  /usr/src/etc/catman.c

Description:
	As distributed catman(8) does not know about /usr/man/manl and
	/usr/man/mann. The following is a fix to make catman recognize manl
	and mann. Catman calls /usr/lib/makewhatis so makewhatis should
	also be updated.

	There is a bug in /usr/lib/makewhatis: makewhatis calls /bin/ed.
	/bin/ed may run out of space if there are to many manual entries.
	This is easily fixed by using /usr/ucb/ex instead of /bin/ed.

Fix:
*** catman.c.old	Fri Jul  1 12:12:12 1983
--- catman.c	Mon Apr 30 20:26:42 1984
***************
*** 49,55
  	if (ac == 2)
  		sections = *av;
  	else if (ac < 2)
! 		sections = "12345678";
  	else {
  usage:
  		printf("usage: catman [ -p ] [ -n ] [ -w ] [ sections ]\n");

--- 49,55 -----
  	if (ac == 2)
  		sections = *av;
  	else if (ac < 2)
! 		sections = "12345678ln";
  	else {
  usage:
  		printf("usage: catman [ -p ] [ -n ] [ -w ] [ sections ]\n");
***************
*** 101,107
  				continue;
  			/*
  			 * Make sure this is a man file, i.e., that it
! 			 * ends in .[0-9] or .[0-9][a-z]
  			 */
  			tsp = rindex(dir->d_name, '.');
  			if (tsp == NULL)

--- 101,107 -----
  				continue;
  			/*
  			 * Make sure this is a man file, i.e., that it
! 			 * ends in .[0-9ln] or .[0-9ln][a-z]
  			 */
  			tsp = rindex(dir->d_name, '.');
  			if (tsp == NULL)
***************
*** 106,112
  			tsp = rindex(dir->d_name, '.');
  			if (tsp == NULL)
  				continue;
! 			if (!isdigit(*++tsp))
  				continue;
  			if (*++tsp && !isalpha(*tsp))
  				continue;

--- 106,112 -----
  			tsp = rindex(dir->d_name, '.');
  			if (tsp == NULL)
  				continue;
! 			if (!(isdigit(*++tsp) || *tsp == 'l' || *tsp == 'n'))
  				continue;
  			if (*++tsp && !isalpha(*tsp))
  				continue;

Index:  /usr/src/usr.lib/makewhatis.sh

Fix:
*** makewhatis.sh.old	Wed Jun  9 03:13:42 1982
--- makewhatis.sh	Mon Apr 30 20:26:02 1984
***************
*** 1,6
  rm -f /tmp/whatis /tmp/whatis$$
  cd /usr/man
! for i in man1 man2 man3 man4 man5 man6 man7 man8
  do
  	cd $i
  	/usr/lib/getNAME *.*

--- 1,6 -----
  rm -f /tmp/whatis /tmp/whatis$$
  cd /usr/man
! for i in man1 man2 man3 man4 man5 man6 man7 man8 manl mann
  do
  	cd $i
  	/usr/lib/getNAME *.*
***************
*** 6,12
  	/usr/lib/getNAME *.*
  	cd ..
  done >/tmp/whatis
! ed - /tmp/whatis <<\!
  g/\\-/s//-/
  g/\\\*-/s//-/
  g/ VAX-11/s///

--- 6,12 -----
  	/usr/lib/getNAME *.*
  	cd ..
  done >/tmp/whatis
! ex - /tmp/whatis <<\!
  g/\\-/s//-/
  g/\\\*-/s//-/
  g/ VAX-11/s///