Annotation of researchv10no/cmd/dkname.c, revision 1.1.1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.