|
|
1.1 root 1: #include <string.h>
2: #include <fio.h>
3:
4: #define MAXARG 256 /* no sys name is longer than this */
5:
6: #define DK "/usr/lib/uucp/Systems.dk"
7:
8: main(argc, argv)
9: char **argv;
10: {
11: int fd;
12: char *s, *ss, *sss;
13: register char **ap;
14:
15: argv++;
16: if(--argc <= 0){
17: Fprint(2, "Usage: dkname sysname ...\n");
18: exit(1);
19: }
20: /* make sure we get plausible length args */
21: for(ap = argv; *ap; ap++)
22: if(strlen(*ap) > MAXARG)
23: (*ap)[MAXARG] = 0;
24: if((fd = open(DK, 0)) < 0){
25: perror(DK);
26: exit(1);
27: }
28: while(s = Frdline(fd)){
29: if((ss = strchr(s, ' ')) == 0)
30: continue; /* bad line */
31: *ss++ = 0;
32: if((ss = strchr(ss, ' ')) == 0)
33: continue; /* bad line */
34: if((ss = strchr(ss+1, ' ')) == 0)
35: continue; /* bad line */
36: if((ss = strchr(ss+1, ' ')) == 0)
37: continue; /* bad line */
38: for(ap = argv; *ap; ap++)
39: if(strcmp(*ap, s) == 0){
40: **ap = 0;
41: argc--;
42: sss = ss+1;
43: if(ss = strchr(sss, ' '))
44: *ss = 0;
45: if(ss = strchr(sss, '.'))
46: *ss = 0;
47: Fprint(1, "%s\n", sss);
48: }
49: if(argc == 0) break;
50: }
51: for(fd = 0, ap = argv; *ap; ap++)
52: if(**ap)
53: Fprint(2, "`%s' not found\n", *ap), fd = 1;
54: exit(fd);
55: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.