Annotation of researchv10no/dk/cmd/pupu/pupu.c, revision 1.1

1.1     ! root        1: 
        !             2:        static char     SCCSID[] = "@(#)pupu.c  2.1 DKHOST 85/01/15";
        !             3: 
        !             4: #include       <stdio.h>
        !             5: #include       <sysexits.h>
        !             6: #include       "string.h"
        !             7: #include       <dk.h>
        !             8: #include       "tdefs.h"
        !             9: 
        !            10:        XcharP  iam;
        !            11: int    DEBUG ;
        !            12:        
        !            13: 
        !            14:        Xchar   ebuf[BUFSIZ];
        !            15: 
        !            16:        Efn     printerr;
        !            17: 
        !            18: extern char * maphost() ;
        !            19: extern char * miscfield() ;
        !            20: extern int     dkp_ld ;
        !            21: 
        !            22: main(argc, argv)
        !            23:        PcharP  argv[];
        !            24: {
        !            25:        RcharP  p, dialstring;
        !            26:        Aint    fd;
        !            27:        AcharP  dir;
        !            28:        extern char * dkerror ;
        !            29: 
        !            30:        if (strcmp(&argv[0][strlen(argv[0])-2], "cc") == 0)
        !            31:                argv[0][strlen(argv[0])-2] = '\0' ;
        !            32:        iam = &argv[0][strlen(argv[0]) - 4];
        !            33: 
        !            34:        if (strcmp(argv[1], "-d") == 0) {
        !            35:                DEBUG = 1 ;
        !            36:                argv++ ; argc-- ;
        !            37:        } else
        !            38:                DEBUG = 0 ;
        !            39:        if(strcmp(iam, "pupu") == 0)
        !            40:                exit(ppremote(0));
        !            41: 
        !            42:        setbuf(stderr, ebuf);
        !            43: 
        !            44:        if(argc < 4){
        !            45:                fprintf(stderr, "Usage:  %s host file ... directory\n", iam);
        !            46:                exit(EX_USAGE);
        !            47:        }
        !            48: 
        !            49:        dialstring = maphost(argv[1], 'f', "pupu", "", "");
        !            50: 
        !            51:        if((p = miscfield('f', 'o')) && *p == 'y')
        !            52:                execalt(iam, argc, argv);
        !            53: 
        !            54:        fd = tdkdial(dialstring, 2);
        !            55: 
        !            56:        if(fd < 0) {
        !            57:                fprintf(stderr, "call to %s failed: %s\n", dialstring, dkerror) ;
        !            58:                exit(-fd);
        !            59:        }
        !            60: 
        !            61:        dkproto(fd, dkp_ld) ;
        !            62:        dir = argv[argc - 1];
        !            63: 
        !            64:        argv[argc - 1] = 0;
        !            65: 
        !            66:        if(strcmp(iam, "push") == 0)
        !            67:                exit(push(fd, &argv[2], dir, printerr, ""));
        !            68:        else if(strcmp(iam, "pull") == 0)
        !            69:                exit(pull(fd, &argv[2], dir, printerr, ""));
        !            70:        else{
        !            71:                fprintf(stderr, "Command name unrecognized -- must be 'push' or 'pull'\n");
        !            72:                exit(EX_USAGE);
        !            73:        }
        !            74:        /* NOTREACHED */
        !            75: }
        !            76: 
        !            77: execalt(name, argc, argv)
        !            78:        PcharP  name;
        !            79:        PcharP  argv[];
        !            80: {
        !            81:        Achar   oldname[8];
        !            82: 
        !            83:        sprintf(oldname, "o%s", name);
        !            84:        argv[argc] = 0;
        !            85: 
        !            86:        execvp(oldname, argv);
        !            87: 
        !            88:        fprintf(stderr, "%s: Can't exec %s\n", iam, oldname);
        !            89:        exit(EX_UNAVAILABLE);
        !            90: }
        !            91: 
        !            92: printerr(msg)
        !            93:        PcharP  msg;
        !            94: {
        !            95:        fprintf(stderr, "%s%s\n", iam, msg);
        !            96: 
        !            97:        fflush(stderr);
        !            98: 
        !            99:        return(0);
        !           100: }

unix.superglobalmegacorp.com

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