1 /*
2  *	Rename
3  *
4  *
5  *	$Id: rename.c $
6  */
7 
8 #include <stdio.h>
9 #include <fcntl.h>
10 #include <malloc.h>
11 #include <string.h>
12 
13 
rename(char * oldname,char * newname)14 int rename(char *oldname, char *newname)
15 {
16 
17 struct RND_FILE *myfile;
18 int myfile_missing;
19 int blockcount;
20 
21 	myfile = malloc(sizeof(struct RND_FILE));
22 	strcpy(myfile->name,newname);
23 	(myfile)->name_prefix='_';
24 
25 	myfile_missing = rnd_loadblock(&(myfile)->name_prefix, myfile, sizeof(myfile));
26 	if (!myfile_missing) {
27 		return (-1);
28 	}
29 
30 	strcpy(myfile->name,oldname);
31 	myfile_missing = rnd_loadblock(&(myfile)->name_prefix, myfile, sizeof(myfile));
32 	if (myfile_missing) {
33 		return (-1);
34 	}
35 
36 	rnd_erase(&(myfile)->name_prefix);
37 	strcpy(myfile->name,newname);
38 	rnd_saveblock(&(myfile)->name_prefix, myfile, sizeof(myfile));
39 
40 	(myfile)->name_prefix='0';
41 	while (!myfile_missing) {
42 		strcpy(myfile->name,oldname);
43 		myfile_missing = rnd_loadblock(&(myfile)->name_prefix, myfile, sizeof(myfile));
44 		strcpy(myfile->name,newname);
45 		rnd_saveblock(&(myfile)->name_prefix, myfile, sizeof(myfile));
46 		rnd_erase(&(myfile)->name_prefix);
47 		if ((myfile)->name_prefix=='9') (myfile)->name_prefix='A';
48 		else (myfile)->name_prefix++;
49 	}
50         return 0;
51 }
52