Backed out changeset f87b0b7cca8e ... This wasn't Christoph's patch. Sorry!
This commit is contained in:
parent
7cc80bebc5
commit
8e78e4719d
|
@ -105,9 +105,6 @@ OS/2 updates:
|
|||
Bug fixes:
|
||||
Patrice Mandin
|
||||
|
||||
PHYSFS_stat() API:
|
||||
Christoph Nelles
|
||||
|
||||
Other stuff:
|
||||
Your name here! Patches go to icculus@icculus.org ...
|
||||
|
||||
|
|
|
@ -83,7 +83,6 @@
|
|||
%rename(symbolicLinksPermitted) PHYSFS_symbolicLinksPermitted;
|
||||
%rename(mount) PHYSFS_mount;
|
||||
%rename(getMountPoint) PHYSFS_getMountPoint;
|
||||
%rename(stat) PHYSFS_stat;
|
||||
#endif /* SWIGPERL */
|
||||
|
||||
%include "../src/physfs.h"
|
||||
|
|
|
@ -169,20 +169,6 @@ static PHYSFS_sint64 DIR_getLastModTime(dvoid *opaque,
|
|||
} /* DIR_getLastModTime */
|
||||
|
||||
|
||||
static int DIR_stat(dvoid *opaque, const char *name, PHYSFS_Stat *st)
|
||||
{
|
||||
char *d = __PHYSFS_platformCvtToDependent((char *)opaque, name, NULL);
|
||||
int retval = -1;
|
||||
|
||||
BAIL_IF_MACRO(d == NULL, NULL, -1);
|
||||
|
||||
retval = __PHYSFS_platformStat(d, st);
|
||||
|
||||
allocator.Free(d);
|
||||
return(retval);
|
||||
} /* DIR_stat */
|
||||
|
||||
|
||||
static fvoid *doOpen(dvoid *opaque, const char *name,
|
||||
void *(*openFunc)(const char *filename),
|
||||
int *fileExists)
|
||||
|
@ -275,7 +261,6 @@ const PHYSFS_Archiver __PHYSFS_Archiver_DIR =
|
|||
DIR_openArchive, /* openArchive() method */
|
||||
DIR_enumerateFiles, /* enumerateFiles() method */
|
||||
DIR_exists, /* exists() method */
|
||||
DIR_stat, /* stat() method */
|
||||
DIR_isDirectory, /* isDirectory() method */
|
||||
DIR_isSymLink, /* isSymLink() method */
|
||||
DIR_getLastModTime, /* getLastModTime() method */
|
||||
|
|
|
@ -384,12 +384,6 @@ static PHYSFS_sint64 GRP_getLastModTime(dvoid *opaque,
|
|||
} /* GRP_getLastModTime */
|
||||
|
||||
|
||||
static int GRP_stat(dvoid *opaque, const char *name, PHYSFS_Stat *st)
|
||||
{
|
||||
return -1; /* !!! FIXME: write me */
|
||||
} /* GRP_stat */
|
||||
|
||||
|
||||
static fvoid *GRP_openRead(dvoid *opaque, const char *fnm, int *fileExists)
|
||||
{
|
||||
GRPinfo *info = (GRPinfo *) opaque;
|
||||
|
@ -457,7 +451,6 @@ const PHYSFS_Archiver __PHYSFS_Archiver_GRP =
|
|||
GRP_openArchive, /* openArchive() method */
|
||||
GRP_enumerateFiles, /* enumerateFiles() method */
|
||||
GRP_exists, /* exists() method */
|
||||
GRP_stat, /* stat() method */
|
||||
GRP_isDirectory, /* isDirectory() method */
|
||||
GRP_isSymLink, /* isSymLink() method */
|
||||
GRP_getLastModTime, /* getLastModTime() method */
|
||||
|
|
|
@ -423,12 +423,6 @@ static PHYSFS_sint64 HOG_getLastModTime(dvoid *opaque,
|
|||
} /* HOG_getLastModTime */
|
||||
|
||||
|
||||
static int HOG_stat(dvoid *opaque, const char *name, PHYSFS_Stat *st)
|
||||
{
|
||||
return -1; /* !!! FIXME: write me */
|
||||
} /* HOG_stat */
|
||||
|
||||
|
||||
static fvoid *HOG_openRead(dvoid *opaque, const char *fnm, int *fileExists)
|
||||
{
|
||||
HOGinfo *info = ((HOGinfo *) opaque);
|
||||
|
@ -496,7 +490,6 @@ const PHYSFS_Archiver __PHYSFS_Archiver_HOG =
|
|||
HOG_openArchive, /* openArchive() method */
|
||||
HOG_enumerateFiles, /* enumerateFiles() method */
|
||||
HOG_exists, /* exists() method */
|
||||
HOG_stat, /* stat() method */
|
||||
HOG_isDirectory, /* isDirectory() method */
|
||||
HOG_isSymLink, /* isSymLink() method */
|
||||
HOG_getLastModTime, /* getLastModTime() method */
|
||||
|
|
|
@ -623,12 +623,6 @@ static PHYSFS_sint64 LZMA_getLastModTime(dvoid *opaque,
|
|||
} /* LZMA_getLastModTime */
|
||||
|
||||
|
||||
static int LZMA_stat(dvoid *opaque, const char *name, PHYSFS_Stat *st)
|
||||
{
|
||||
return -1; /* !!! FIXME: write me */
|
||||
} /* LZMA_stat */
|
||||
|
||||
|
||||
static int LZMA_isDirectory(dvoid *opaque, const char *name, int *fileExists)
|
||||
{
|
||||
LZMAarchive *archive = (LZMAarchive *) opaque;
|
||||
|
@ -718,7 +712,6 @@ const PHYSFS_Archiver __PHYSFS_Archiver_LZMA =
|
|||
LZMA_openArchive, /* openArchive() method */
|
||||
LZMA_enumerateFiles, /* enumerateFiles() method */
|
||||
LZMA_exists, /* exists() method */
|
||||
LZMA_stat, /* stat() method */
|
||||
LZMA_isDirectory, /* isDirectory() method */
|
||||
LZMA_isSymLink, /* isSymLink() method */
|
||||
LZMA_getLastModTime, /* getLastModTime() method */
|
||||
|
|
|
@ -380,12 +380,6 @@ static PHYSFS_sint64 MVL_getLastModTime(dvoid *opaque,
|
|||
} /* MVL_getLastModTime */
|
||||
|
||||
|
||||
static int MVL_stat(dvoid *opaque, const char *name, PHYSFS_Stat *st)
|
||||
{
|
||||
return -1; /* !!! FIXME: write me */
|
||||
} /* MVL_stat */
|
||||
|
||||
|
||||
static fvoid *MVL_openRead(dvoid *opaque, const char *fnm, int *fileExists)
|
||||
{
|
||||
MVLinfo *info = ((MVLinfo *) opaque);
|
||||
|
@ -453,7 +447,6 @@ const PHYSFS_Archiver __PHYSFS_Archiver_MVL =
|
|||
MVL_openArchive, /* openArchive() method */
|
||||
MVL_enumerateFiles, /* enumerateFiles() method */
|
||||
MVL_exists, /* exists() method */
|
||||
MVL_stat, /* stat() method */
|
||||
MVL_isDirectory, /* isDirectory() method */
|
||||
MVL_isSymLink, /* isSymLink() method */
|
||||
MVL_getLastModTime, /* getLastModTime() method */
|
||||
|
|
|
@ -537,12 +537,6 @@ static PHYSFS_sint64 QPAK_getLastModTime(dvoid *opaque,
|
|||
} /* QPAK_getLastModTime */
|
||||
|
||||
|
||||
static int QPAK_stat(dvoid *opaque, const char *name, PHYSFS_Stat *st)
|
||||
{
|
||||
return -1; /* !!! FIXME: write me */
|
||||
} /* QPAK_stat */
|
||||
|
||||
|
||||
static fvoid *QPAK_openRead(dvoid *opaque, const char *fnm, int *fileExists)
|
||||
{
|
||||
QPAKinfo *info = ((QPAKinfo *) opaque);
|
||||
|
@ -612,7 +606,6 @@ const PHYSFS_Archiver __PHYSFS_Archiver_QPAK =
|
|||
QPAK_openArchive, /* openArchive() method */
|
||||
QPAK_enumerateFiles, /* enumerateFiles() method */
|
||||
QPAK_exists, /* exists() method */
|
||||
QPAK_stat, /* stat() method */
|
||||
QPAK_isDirectory, /* isDirectory() method */
|
||||
QPAK_isSymLink, /* isSymLink() method */
|
||||
QPAK_getLastModTime, /* getLastModTime() method */
|
||||
|
|
|
@ -443,12 +443,6 @@ static PHYSFS_sint64 WAD_getLastModTime(dvoid *opaque,
|
|||
} /* WAD_getLastModTime */
|
||||
|
||||
|
||||
static int WAD_stat(dvoid *opaque, const char *name, PHYSFS_Stat *st)
|
||||
{
|
||||
return -1; /* !!! FIXME: write me */
|
||||
} /* WAD_stat */
|
||||
|
||||
|
||||
static fvoid *WAD_openRead(dvoid *opaque, const char *fnm, int *fileExists)
|
||||
{
|
||||
WADinfo *info = ((WADinfo *) opaque);
|
||||
|
@ -516,7 +510,6 @@ const PHYSFS_Archiver __PHYSFS_Archiver_WAD =
|
|||
WAD_openArchive, /* openArchive() method */
|
||||
WAD_enumerateFiles, /* enumerateFiles() method */
|
||||
WAD_exists, /* exists() method */
|
||||
WAD_stat, /* stat() method */
|
||||
WAD_isDirectory, /* isDirectory() method */
|
||||
WAD_isSymLink, /* isSymLink() method */
|
||||
WAD_getLastModTime, /* getLastModTime() method */
|
||||
|
|
|
@ -1264,12 +1264,6 @@ static PHYSFS_sint64 ZIP_getLastModTime(dvoid *opaque,
|
|||
} /* ZIP_getLastModTime */
|
||||
|
||||
|
||||
static int ZIP_stat(dvoid *opaque, const char *name, PHYSFS_Stat *st)
|
||||
{
|
||||
return -1; /* !!! FIXME: write me */
|
||||
} /* ZIP_stat */
|
||||
|
||||
|
||||
static int ZIP_isDirectory(dvoid *opaque, const char *name, int *fileExists)
|
||||
{
|
||||
ZIPinfo *info = (ZIPinfo *) opaque;
|
||||
|
@ -1428,7 +1422,6 @@ const PHYSFS_Archiver __PHYSFS_Archiver_ZIP =
|
|||
ZIP_openArchive, /* openArchive() method */
|
||||
ZIP_enumerateFiles, /* enumerateFiles() method */
|
||||
ZIP_exists, /* exists() method */
|
||||
ZIP_stat, /* stat() method */
|
||||
ZIP_isDirectory, /* isDirectory() method */
|
||||
ZIP_isSymLink, /* isSymLink() method */
|
||||
ZIP_getLastModTime, /* getLastModTime() method */
|
||||
|
|
44
src/physfs.c
44
src/physfs.c
|
@ -1620,50 +1620,6 @@ int PHYSFS_exists(const char *fname)
|
|||
return (PHYSFS_getRealDir(fname) != NULL);
|
||||
} /* PHYSFS_exists */
|
||||
|
||||
int PHYSFS_stat(const char *_fname, PHYSFS_Stat *st)
|
||||
{
|
||||
char *fname;
|
||||
size_t len;
|
||||
int retval = -1;
|
||||
|
||||
BAIL_IF_MACRO(_fname == NULL, ERR_INVALID_ARGUMENT, -1);
|
||||
BAIL_IF_MACRO(st == NULL, ERR_INVALID_ARGUMENT, -1);
|
||||
|
||||
memset(st, 0, sizeof(PHYSFS_Stat));
|
||||
len = strlen(_fname) + 1;
|
||||
fname = (char *) __PHYSFS_smallAlloc(len);
|
||||
BAIL_IF_MACRO(fname == NULL, ERR_OUT_OF_MEMORY, -1);
|
||||
|
||||
if (sanitizePlatformIndependentPath(_fname, fname))
|
||||
{
|
||||
if (*fname == '\0') /* eh...punt if it's the root dir. */
|
||||
{
|
||||
retval = 0; /* !!! FIXME: Maybe this should be an error? */
|
||||
st->is_dir = 1;
|
||||
} /* if */
|
||||
else
|
||||
{
|
||||
DirHandle *i;
|
||||
int exists = 0;
|
||||
__PHYSFS_platformGrabMutex(stateLock);
|
||||
for (i = searchPath; ((i != NULL) && (!exists)); i = i->next)
|
||||
{
|
||||
char *arcfname = fname;
|
||||
exists = partOfMountPoint(i, arcfname);
|
||||
if (exists)
|
||||
retval = 1; /* !!! FIXME: What's the right value? */
|
||||
else if (verifyPath(i, &arcfname, 0))
|
||||
{
|
||||
retval = i->funcs->stat(i->opaque, arcfname, st);
|
||||
} /* else if */
|
||||
} /* for */
|
||||
__PHYSFS_platformReleaseMutex(stateLock);
|
||||
} /* else */
|
||||
} /* if */
|
||||
|
||||
__PHYSFS_smallFree(fname);
|
||||
return(retval);
|
||||
}
|
||||
|
||||
PHYSFS_sint64 PHYSFS_getLastModTime(const char *_fname)
|
||||
{
|
||||
|
|
36
src/physfs.h
36
src/physfs.h
|
@ -2463,42 +2463,6 @@ PHYSFS_DECL const PHYSFS_Allocator *PHYSFS_getAllocator(void);
|
|||
#endif /* SWIG */
|
||||
|
||||
|
||||
/**
|
||||
* \struct PHYSFS_Stat
|
||||
* \brief Information on a file in a PhysicsFS filesystem.
|
||||
*
|
||||
* Created as a way to get a file's information without repeated calls and
|
||||
* without having to open the file.
|
||||
*
|
||||
* \sa PHYSFS_stat
|
||||
*/
|
||||
typedef struct PHYSFS_Stat
|
||||
{
|
||||
int is_dir;
|
||||
int is_symlink;
|
||||
PHYSFS_sint64 size;
|
||||
PHYSFS_sint64 atime;
|
||||
PHYSFS_sint64 mtime;
|
||||
PHYSFS_sint64 ctime;
|
||||
} PHYSFS_Stat;
|
||||
|
||||
|
||||
/**
|
||||
* \fn int PHYSFS_stat(const char *fname, PHYSFS_Stat * st)
|
||||
* \brief Get information on a file in the search path.
|
||||
*
|
||||
* \param fname filename in platform-independent notation.
|
||||
* \param st pointer to an PHYSFS_Stat structure.
|
||||
* \return 0 on success (file exists and information retreived successfully),
|
||||
* non-zero otherwise.
|
||||
*
|
||||
* !!! FIXME: have to distinguish between "unsupported", "missing" and
|
||||
* !!! FIXME: "failure" results.
|
||||
*
|
||||
* \sa PHYSFS_Stat
|
||||
*/
|
||||
PHYSFS_DECL int PHYSFS_stat(const char *fname, PHYSFS_Stat *st);
|
||||
|
||||
/* Everything above this line is part of the PhysicsFS 2.1 API. */
|
||||
|
||||
|
||||
|
|
|
@ -773,12 +773,6 @@ typedef struct
|
|||
*/
|
||||
int (*exists)(dvoid *opaque, const char *name);
|
||||
|
||||
/*
|
||||
* Returns zero if filename can be opened for reading and
|
||||
* information was retreived. Non-zero otherwise.
|
||||
*/
|
||||
int (*stat)(dvoid *opaque, const char *name, PHYSFS_Stat *st);
|
||||
|
||||
/*
|
||||
* Returns non-zero if filename is really a directory.
|
||||
* This filename is in platform-independent notation.
|
||||
|
@ -1351,12 +1345,6 @@ int __PHYSFS_platformIsSymLink(const char *fname);
|
|||
int __PHYSFS_platformIsDirectory(const char *fname);
|
||||
|
||||
|
||||
/*
|
||||
* !!! FIXME: comment me.
|
||||
*/
|
||||
int __PHYSFS_platformStat(const char *fname, PHYSFS_Stat *st);
|
||||
|
||||
|
||||
/*
|
||||
* Convert (dirName) to platform-dependent notation, then prepend (prepend)
|
||||
* and append (append) to the converted string.
|
||||
|
|
|
@ -322,12 +322,6 @@ int __PHYSFS_platformIsDirectory(const char *_fname)
|
|||
} /* __PHYSFS_platformIsDirectory */
|
||||
|
||||
|
||||
int __PHYSFS_platformStat(const char *fname, PHYSFS_Stat *st)
|
||||
{
|
||||
return -1; /* !!! FIXME: write me */
|
||||
} /* __PHYSFS_platformStat */
|
||||
|
||||
|
||||
/* !!! FIXME: can we lose the malloc here? */
|
||||
char *__PHYSFS_platformCvtToDependent(const char *prepend,
|
||||
const char *dirName,
|
||||
|
|
|
@ -201,12 +201,6 @@ int __PHYSFS_platformIsDirectory(const char *fname)
|
|||
} /* __PHYSFS_platformIsDirectory */
|
||||
|
||||
|
||||
int __PHYSFS_platformStat(const char *fname, PHYSFS_Stat *st)
|
||||
{
|
||||
return -1; /* !!! FIXME: write me */
|
||||
} /* __PHYSFS_platformStat */
|
||||
|
||||
|
||||
char *__PHYSFS_platformCvtToDependent(const char *prepend,
|
||||
const char *dirName,
|
||||
const char *append)
|
||||
|
|
|
@ -127,27 +127,6 @@ int __PHYSFS_platformIsDirectory(const char *fname)
|
|||
} /* __PHYSFS_platformIsDirectory */
|
||||
|
||||
|
||||
int __PHYSFS_platformStat(const char *fname, PHYSFS_Stat *st)
|
||||
{
|
||||
int retval = 0;
|
||||
struct stat pstat;
|
||||
|
||||
/* !!! FIXME: lstat()? */
|
||||
retval = stat(fname, &pstat);
|
||||
if (retval == 0)
|
||||
{
|
||||
st->size = pstat.st_size;
|
||||
st->mtime = pstat.st_mtime;
|
||||
st->atime = pstat.st_atime;
|
||||
st->ctime = pstat.st_ctime;
|
||||
st->is_symlink = S_ISLNK(pstat.st_mode) ? 1 : 0;
|
||||
st->is_dir = S_ISDIR(pstat.st_mode) ? 1 : 0;
|
||||
} /* if */
|
||||
|
||||
return(retval);
|
||||
} /* __PHYSFS_platformStat */
|
||||
|
||||
|
||||
char *__PHYSFS_platformCvtToDependent(const char *prepend,
|
||||
const char *dirName,
|
||||
const char *append)
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
#include <errno.h>
|
||||
#include <ctype.h>
|
||||
#include <time.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include "physfs_internal.h"
|
||||
|
||||
|
@ -588,29 +587,6 @@ int __PHYSFS_platformExists(const char *fname)
|
|||
return retval;
|
||||
} /* __PHYSFS_platformExists */
|
||||
|
||||
int __PHYSFS_platformStat(const char *fname, PHYSFS_Stat *st)
|
||||
{
|
||||
int retval = 0;
|
||||
LPWSTR wpath;
|
||||
struct _stat64 pstat;
|
||||
UTF8_TO_UNICODE_STACK_MACRO(wpath, fname);
|
||||
BAIL_IF_MACRO(wpath == NULL, ERR_OUT_OF_MEMORY, -1);
|
||||
|
||||
retval = _wstat64(wpath, &pstat);
|
||||
if (retval == 0)
|
||||
{
|
||||
st->size = pstat.st_size;
|
||||
st->mtime = pstat.st_mtime;
|
||||
st->atime = pstat.st_atime;
|
||||
st->ctime = pstat.st_ctime;
|
||||
st->is_dir = (pstat.st_mode & _S_IFDIR) ? 1:0;
|
||||
st->is_symlink = 0;
|
||||
} /* if */
|
||||
|
||||
__PHYSFS_smallFree(wpath);
|
||||
return(retval);
|
||||
} /* __PHYSFS_platformStat */
|
||||
|
||||
|
||||
static int isSymlinkAttrs(const DWORD attr, const DWORD tag)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue