Merge branch 'NetHack-3.6'
This commit is contained in:
45
src/files.c
45
src/files.c
@@ -1371,6 +1371,10 @@ get_saved_games()
|
||||
{
|
||||
char *foundfile;
|
||||
const char *fq_save;
|
||||
const char *fq_new_save;
|
||||
const char *fq_old_save;
|
||||
char **files = 0;
|
||||
int i;
|
||||
|
||||
Strcpy(g.plname, "*");
|
||||
set_savefile_name(FALSE);
|
||||
@@ -1386,20 +1390,44 @@ get_saved_games()
|
||||
++n;
|
||||
} while (findnext());
|
||||
}
|
||||
|
||||
if (n > 0) {
|
||||
result = (char **) alloc((n + 1) * sizeof(char *)); /* at most */
|
||||
(void) memset((genericptr_t) result, 0, (n + 1) * sizeof(char *));
|
||||
files = (char **) alloc((n + 1) * sizeof(char *)); /* at most */
|
||||
(void) memset((genericptr_t) files, 0, (n + 1) * sizeof(char *));
|
||||
if (findfirst((char *) fq_save)) {
|
||||
j = n = 0;
|
||||
i = 0;
|
||||
do {
|
||||
char *r;
|
||||
r = plname_from_file(foundfile);
|
||||
if (r)
|
||||
result[j++] = r;
|
||||
++n;
|
||||
files[i++] = strdup(foundfile);
|
||||
} while (findnext());
|
||||
}
|
||||
}
|
||||
|
||||
if (n > 0) {
|
||||
result = (char **) alloc((n + 1) * sizeof(char *)); /* at most */
|
||||
(void) memset((genericptr_t) result, 0, (n + 1) * sizeof(char *));
|
||||
for(i = 0; i < n; i++) {
|
||||
char *r;
|
||||
r = plname_from_file(files[i]);
|
||||
|
||||
if (r) {
|
||||
|
||||
/* rename file if it is not named as expected */
|
||||
Strcpy(g.plname, r);
|
||||
set_savefile_name(FALSE);
|
||||
fq_new_save = fqname(g.SAVEF, SAVEPREFIX, 0);
|
||||
fq_old_save = fqname(files[i], SAVEPREFIX, 1);
|
||||
|
||||
if(strcmp(fq_old_save, fq_new_save) != 0 &&
|
||||
!file_exists(fq_new_save))
|
||||
rename(fq_old_save, fq_new_save);
|
||||
|
||||
result[j++] = r;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
free_saved_games(files);
|
||||
|
||||
}
|
||||
#endif
|
||||
#if defined(UNIX) && defined(QT_GRAPHICS)
|
||||
@@ -3400,6 +3428,7 @@ fopen_sym_file()
|
||||
FILE *fp;
|
||||
|
||||
fp = fopen_datafile(SYMBOLS, "r", HACKPREFIX);
|
||||
|
||||
return fp;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user