Annotation of 43BSD/contrib/cpm/src/rename.c, revision 1.1.1.1

1.1       root        1: /*     rename.c        1.10    85/03/24        */
                      2: 
                      3: #include <stdio.h>
                      4: #include "cpmio.h"
                      5: #include "cpmfio.h"
                      6: 
                      7: /*
                      8:  * Rename a cp/m file
                      9:  * returns: 1 = failure, 0 = success 
                     10:  */
                     11: 
                     12: rename(cmdline)
                     13:        char *cmdline;
                     14: 
                     15: {
                     16: 
                     17:        C_FILE *cio;
                     18:        char oldname[9], oldext[4], newname[9], newext[4];
                     19:        char *secarg, *index(), *fixname();
                     20: 
                     21: 
                     22:        if ((secarg = index(cmdline, ' ')) == NULL) {
                     23:                printf("rename: too few arguments\n");
                     24:                return (1);
                     25:        }
                     26:        *secarg++ = '\0';
                     27:        if (!(namesep(cmdline, oldname, oldext))) 
                     28:                return (1);
                     29:        if (!(namesep(secarg, newname, newext))) 
                     30:                return (1);
                     31: 
                     32:        if (searchdir(oldname, oldext) == -1) {
                     33:                fprintf(stderr, "file not found: %s\n", 
                     34:                        fixname(oldname, oldext));
                     35:                return (1);
                     36:        }
                     37:        if ((strncmp(oldname, newname, 8) == 0) && (strncmp(oldext, newext, 3)
                     38:                == 0)) {
                     39:                fprintf(stderr, "%s and %s are identical\n", 
                     40:                        fixname(oldname, oldext), fixname(newname, newext));
                     41:                return (1);
                     42:        }
                     43:        cio = c_open(oldname, oldext, READ);
                     44:        do {
                     45:                strncpy(cio->c_dirp->name, newname, 8);
                     46:                strncpy(cio->c_dirp->ext, newext, 3);
                     47:        } while (getnext(cio) != NULL);
                     48:        savedir();
                     49:        c_close(cio);
                     50:        /* two calls to fprintf here because fixname is brain damaged */
                     51:        fprintf(stderr, "renamed %s to ", fixname(oldname, oldext)); 
                     52:        fprintf(stderr, "%s\n", fixname(newname, newext));
                     53:        return (0);
                     54: }

unix.superglobalmegacorp.com

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