diff --git a/src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp b/src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp index e1f93cbf7f..78b8a9c603 100644 --- a/src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp +++ b/src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp @@ -2,6 +2,7 @@ #include #include #include +#include void sqstd_printcallstack(HSQUIRRELVM v) { @@ -21,7 +22,19 @@ void sqstd_printcallstack(HSQUIRRELVM v) 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++; }