From bfff54b38b7714f015b2b61a50acfeefa8548787 Mon Sep 17 00:00:00 2001 From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54> Date: Sun, 12 Feb 2012 17:34:21 +0000 Subject: [PATCH] Fix multiple addons in .teaa form using overload git-svn-id: http://svn.net-core.org/repos/t-engine4@4837 51575b47-30f0-44d4-a5cc-537603b46e54 --- game/modules/tome/init.lua | 2 +- src/physfs/archivers/bind_physfs.c | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/game/modules/tome/init.lua b/game/modules/tome/init.lua index fd8ee42bca..1a199a011b 100644 --- a/game/modules/tome/init.lua +++ b/game/modules/tome/init.lua @@ -22,7 +22,7 @@ long_name = "Tales of Maj'Eyal: Age of Ascendancy" short_name = "tome" author = { "DarkGod", "darkgod@te4.org" } homepage = "http://tome.te4.org/" -version = {3,9,38} +version = {3,9,37} engine = {0,9,38,"te4"} description = [[ Welcome to Maj'Eyal. diff --git a/src/physfs/archivers/bind_physfs.c b/src/physfs/archivers/bind_physfs.c index 19d9463a26..d02d323a36 100644 --- a/src/physfs/archivers/bind_physfs.c +++ b/src/physfs/archivers/bind_physfs.c @@ -18,11 +18,20 @@ static char *__BIND_PHYSFS_toDependent(dvoid *opaque, const char *name, const ch { char *f = __PHYSFS_platformCvtToDependent((char *)opaque, name, NULL); +// printf("== %s [%s] ::: %s\n", name, opaque, f); + // if ((strlen(d) > strlen(dname)) && strncmp(d+strlen(dname), dname, strlen(dname))) return; + // Forbid recursions if (!strncmp(name, opaque+1, strlen(opaque+1))) { return NULL; } + // Forbid recursions + else if (strstr(name+strlen(opaque), opaque)) + { +// printf("FORBID: %s [%s] => %s\n", name, opaque, f); + return NULL; + } else { char *f = __PHYSFS_platformCvtToDependent((char *)opaque, name, NULL); @@ -129,7 +138,6 @@ static void BIND_PHYSFS_enumerateFiles(dvoid *opaque, const char *dname, const char *origdir, void *callbackdata) { char *d = __BIND_PHYSFS_toDependent((char *)opaque, dname, NULL); - if (d != NULL) { PHYSFS_enumerateFilesCallback(d, cb, callbackdata); -- GitLab