From 0d45ce01c4b3aaff2ea7d3874de132746270300e Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Sun, 1 Apr 2007 22:06:37 +0000 Subject: [PATCH] Added PHYSFS_symbolicLinksPermitted(). --- CHANGELOG.txt | 2 +- makeos2.cmd | 1 + physfs.c | 6 ++++++ physfs.h | 17 +++++++++++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index a9345706..8463bc33 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -2,7 +2,7 @@ * CHANGELOG. */ -04012007 - Added PHYSFS_isInit() function. +04012007 - Added PHYSFS_isInit() and PHYSFS_symbolicLinksPermitted() functions. 03312007 - Added a quick'n'dirty unpack utility to the extras directory. Moved DIR archiver to start of the list, so we don't have to have every other archiver fail to open a directory as a file before mounting diff --git a/makeos2.cmd b/makeos2.cmd index fb20022c..b1fb4c07 100644 --- a/makeos2.cmd +++ b/makeos2.cmd @@ -42,6 +42,7 @@ rem goto :dolinking @echo "_PHYSFS_getLastError" >> bin\physfs.def @echo "_PHYSFS_getDirSeparator" >> bin\physfs.def @echo "_PHYSFS_permitSymbolicLinks" >> bin\physfs.def +@echo "_PHYSFS_symbolicLinksPermitted" >> bin\physfs.def @echo "_PHYSFS_getCdRomDirs" >> bin\physfs.def @echo "_PHYSFS_getBaseDir" >> bin\physfs.def @echo "_PHYSFS_getUserDir" >> bin\physfs.def diff --git a/physfs.c b/physfs.c index f8212f35..aeb0fc4b 100644 --- a/physfs.c +++ b/physfs.c @@ -1173,6 +1173,12 @@ void PHYSFS_permitSymbolicLinks(int allow) } /* PHYSFS_permitSymbolicLinks */ +int PHYSFS_symbolicLinksPermitted(void) +{ + return(allowSymLinks); +} /* PHYSFS_symbolicLinksPermitted */ + + /* string manipulation in C makes my ass itch. */ char *__PHYSFS_convertToDependent(const char *prepend, const char *dirName, diff --git a/physfs.h b/physfs.h index 24d263cc..5e4ef3a0 100644 --- a/physfs.h +++ b/physfs.h @@ -622,6 +622,8 @@ __EXPORT__ const char *PHYSFS_getDirSeparator(void); * you've called PHYSFS_init(), and is disabled by default. * * \param allow nonzero to permit symlinks, zero to deny linking. + * + * \sa PHYSFS_symbolicLinksPermitted */ __EXPORT__ void PHYSFS_permitSymbolicLinks(int allow); @@ -1930,6 +1932,21 @@ __EXPORT__ int PHYSFS_writeUBE64(PHYSFS_File *file, PHYSFS_uint64 val); __EXPORT__ int PHYSFS_isInit(void); +/** + * \fn int PHYSFS_symbolicLinksPermitted(void) + * \brief Determine if the symbolic links are permitted. + * + * This reports the setting from the last call to PHYSFS_permitSymbolicLinks(). + * If PHYSFS_permitSymbolicLinks() hasn't been called since the library was + * last initialized, symbolic links are implicitly disabled. + * + * \return non-zero if symlinks are permitted, zero if not. + * + * \sa PHYSFS_permitSymbolicLinks + */ +__EXPORT__ int PHYSFS_symbolicLinksPermitted(void); + + /** * \struct PHYSFS_Allocator * \brief PhysicsFS allocation function pointers.