changeset 14590:ab09f716d042 draft

(svn r19166) -Change: don't print the absolute path to AI script files in the AI debug window, use the relative path from /ai/ instead
author yexo <yexo@openttd.org>
date Sat, 20 Feb 2010 13:28:56 +0000
parents ab76ff6b20b1
children 38beac06ddbe
files src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp
diffstat 1 files changed, 14 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp
+++ b/src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp
@@ -2,6 +2,7 @@
 #include <squirrel.h>
 #include <sqstdaux.h>
 #include <assert.h>
+#include <string.h>
 
 void sqstd_printcallstack(HSQUIRRELVM v)
 {
@@ -21,7 +22,19 @@
 			const SQChar *fn=_SC("unknown");
 			const SQChar *src=_SC("unknown");
 			if(si.funcname)fn=si.funcname;
-			if(si.source)src=si.source;
+			if(si.source) {
+				/* We don't want to bother users with absolute paths to all AI files.
+				 * Since the path only reaches NoAI code in a formatted string we have
+				 * to strip it here. Let's hope nobody installs openttd in a subdirectory
+				 * of a directory named /ai/. */
+				src = scstrstr(si.source, _SC("\\ai\\"));
+				if (!src) src = scstrstr(si.source, _SC("/ai/"));
+				if (src) {
+					src += 4;
+				} else {
+					src = si.source;
+				}
+			}
 			pf(v,_SC("*FUNCTION [%s()] %s line [%d]\n"),fn,src,si.line);
 			level++;
 		}