Catman doesn't handle local man pages

utzoo!decvax!ittvax!tpdcvax!bobvan utzoo!decvax!ittvax!tpdcvax!bobvan
Fri Sep 17 10:29:01 AEST 1982


Our 4.1BSD catman(8) didn't support the local, new, and public
sections of the manual, as the Berkeley man(1) command did.  The
fix is simple and is given below as diff -c output.

*** catman.orig.c	Wed Oct  1 19:55:48 1980
--- catman.c	Thu Sep 16 16:30:31 1982
***************
*** 15,20
  		nflag = 0,
  		wflag = 0;
  
  main(ac, av)
  int	ac;
  char	*av[]; {

--- 15,22 -----
  		nflag = 0,
  		wflag = 0;
  
+ char		*rindex();
+ 
  main(ac, av)
  int	ac;
  char	*av[]; {
***************
*** 45,51
  	if (ac == 2)
  		sections = *av;
  	else if (ac < 2)
! 		sections = "12345678";
  	else {
  usage:
  		printf("usage: catman [ -p ] [ -n ] [ -w ] [ sections ]\n");

--- 47,53 -----
  	if (ac == 2)
  		sections = *av;
  	else if (ac < 2)
! 		sections = "12345678lnp";
  	else {
  usage:
  		printf("usage: catman [ -p ] [ -n ] [ -w ] [ sections ]\n");
***************
*** 85,92
  			tsp = rindex(dir.d_name, '.');
  			if (tsp == NULL)
  				continue;
! 			if (!isdigit(*++tsp) || ((*++tsp && !isalpha(*tsp)) || *++tsp))
! 				continue;
  
  			strncpy(msp, dir.d_name, DIRSIZ);
  			if ((inf = fopen(man, "r")) == NULL) {

--- 87,101 -----
  			tsp = rindex(dir.d_name, '.');
  			if (tsp == NULL)
  				continue;
! 			switch (*++tsp) {
! 				case '1': case '2': case '3': case '4':
! 				case '5': case '6': case '7': case '8':
! 				case 'l': case 'n': case 'p':
! 					if (isalpha(*++tsp) || *tsp=='\0')
! 						break;
! 				default:
! 					continue;
! 			}
  
  			strncpy(msp, dir.d_name, DIRSIZ);
  			if ((inf = fopen(man, "r")) == NULL) {
------------------------

				Bob Van Valzah
				(...!decvax!ittvax!tpdcvax!bobvan)



More information about the Comp.bugs.4bsd.ucb-fixes mailing list