projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
date and time created 85/05/23 14:06:03 by miriam
[unix-history]
/
usr
/
src
/
old
/
catman
/
catman.c
diff --git
a/usr/src/old/catman/catman.c
b/usr/src/old/catman/catman.c
index
7e3e194
..
5282dcb
100644
(file)
--- a/
usr/src/old/catman/catman.c
+++ b/
usr/src/old/catman/catman.c
@@
-1,5
+1,5
@@
#ifndef lint
#ifndef lint
-static char *sccsid = "@(#)catman.c 4.
6
(Berkeley) %G%";
+static char *sccsid = "@(#)catman.c 4.
8
(Berkeley) %G%";
#endif
/*
#endif
/*
@@
-21,6
+21,7
@@
char nflag;
char wflag;
char man[MAXNAMLEN+6] = "manx/";
char cat[MAXNAMLEN+6] = "catx/";
char wflag;
char man[MAXNAMLEN+6] = "manx/";
char cat[MAXNAMLEN+6] = "catx/";
+char *mandir = "/usr/man";
char *rindex();
main(ac, av)
char *rindex();
main(ac, av)
@@
-32,32
+33,50
@@
main(ac, av)
register int exstat = 0;
register char changed = 0;
register int exstat = 0;
register char changed = 0;
- while (ac > 1) {
- av++;
- if (strcmp(*av, "-p") == 0)
+ ac--, av++;
+ while (ac > 0 && av[0][0] == '-') {
+ switch (av[0][1]) {
+
+ case 'p':
pflag++;
pflag++;
- else if (strcmp(*av, "-n") == 0)
+ break;
+
+ case 'n':
nflag++;
nflag++;
- else if (strcmp(*av, "-w") == 0)
+ break;
+
+ case 'w':
wflag++;
wflag++;
- else if (*av[0] == '-')
- goto usage;
- else
break;
break;
- ac--;
+
+ case 'M':
+ case 'P':
+ if (ac < 1) {
+ fprintf(stderr, "%s: missing directory\n",
+ av[0]);
+ exit(1);
+ }
+ ac--, av++;
+ mandir = *av;
+ break;
+
+ default:
+ goto usage;
+ }
+ ac--, av++;
}
}
- if (ac == 2)
- sections = *av;
- else if (ac < 2)
- sections = "12345678ln";
- else {
+ if (ac > 1) {
usage:
usage:
- printf("usage: catman [ -p ] [ -n ] [ -w ] [ sections ]\n");
+ printf("usage: catman [ -p ] [ -n ] [ -w ] [
-M path ] [
sections ]\n");
exit(-1);
}
exit(-1);
}
+ sections = (ac == 1) ? *av : "12345678ln";
if (wflag)
goto whatis;
if (wflag)
goto whatis;
- chdir("/usr/man");
+ if (chdir(mandir) < 0) {
+ fprintf(stderr, "catman: "), perror(mandir);
+ exit(1);
+ }
msp = &man[5];
csp = &cat[5];
umask(0);
msp = &man[5];
csp = &cat[5];
umask(0);
@@
-140,13
+159,13
@@
usage:
}
if (changed && !nflag) {
whatis:
}
if (changed && !nflag) {
whatis:
- if (pflag)
- printf("/bin/sh /usr/lib/makewhatis\n");
- else {
- execl("/bin/sh", "/bin/sh", "/usr/lib/makewhatis", 0);
+ if (!pflag) {
+ execl("/bin/sh", "/bin/sh",
+ "/usr/lib/makewhatis", mandir, 0);
perror("/bin/sh /usr/lib/makewhatis");
exstat = 1;
perror("/bin/sh /usr/lib/makewhatis");
exstat = 1;
- }
+ } else
+ printf("/bin/sh /usr/lib/makewhatis %s\n", mandir);
}
exit(exstat);
}
}
exit(exstat);
}