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