|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.