projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20040125-4-src
[rocksndiamonds.git]
/
src
/
files.c
diff --git
a/src/files.c
b/src/files.c
index 61deafb48c552e6145f074f944a55f2b0581e613..e365cd1f8c8dd4f28916a38b8541d6b43e9fa990 100644
(file)
--- a/
src/files.c
+++ b/
src/files.c
@@
-328,7
+328,7
@@
static char *getLevelFilenameFromBasename(char *basename)
static int getFileTypeFromBasename(char *basename)
{
static int getFileTypeFromBasename(char *basename)
{
-
char *filename = getLevelFilenameFromBasename(basename)
;
+
static char *filename = NULL
;
struct stat file_status;
/* ---------- try to determine file type from filename ---------- */
struct stat file_status;
/* ---------- try to determine file type from filename ---------- */
@@
-340,6
+340,9
@@
static int getFileTypeFromBasename(char *basename)
/* ---------- try to determine file type from filesize ---------- */
/* ---------- try to determine file type from filesize ---------- */
+ checked_free(filename);
+ filename = getPath2(getCurrentLevelDir(), basename);
+
if (stat(filename, &file_status) == 0)
{
/* check for typical filesize of a Supaplex level package file */
if (stat(filename, &file_status) == 0)
{
/* check for typical filesize of a Supaplex level package file */
@@
-353,10
+356,10
@@
static int getFileTypeFromBasename(char *basename)
static char *getSingleLevelBasename(int nr, int type)
{
static char basename[MAX_FILENAME_LEN];
static char *getSingleLevelBasename(int nr, int type)
{
static char basename[MAX_FILENAME_LEN];
+ char *level_filename = getStringCopy(leveldir_current->level_filename);
- if (leveldir_current->level_filename == NULL)
- leveldir_current->level_filename =
- getStringCat2("%03d.", LEVELFILE_EXTENSION);
+ if (level_filename == NULL)
+ level_filename = getStringCat2("%03d.", LEVELFILE_EXTENSION);
switch (type)
{
switch (type)
{
@@
-373,10
+376,12
@@
static char *getSingleLevelBasename(int nr, int type)
case LEVEL_FILE_TYPE_UNKNOWN:
default:
case LEVEL_FILE_TYPE_UNKNOWN:
default:
- sprintf(basename, level
dir_current->level
_filename, nr);
+ sprintf(basename, level_filename, nr);
break;
}
break;
}
+ free(level_filename);
+
return basename;
}
return basename;
}