0.9.6: set current directory to script's location on lua script load
This commit is contained in:
parent
5919d664ee
commit
36da18aec6
|
@ -1,3 +1,4 @@
|
||||||
|
#include "types.h"
|
||||||
#include "lua-engine.h"
|
#include "lua-engine.h"
|
||||||
#include "movie.h"
|
#include "movie.h"
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
@ -16,6 +17,11 @@
|
||||||
#include "windows.h"
|
#include "windows.h"
|
||||||
#include "video.h"
|
#include "video.h"
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef WIN32
|
||||||
|
#include <direct.h>
|
||||||
|
#else
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
@ -488,6 +494,19 @@ static const char* FilenameFromPath(const char* path)
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TrimFilenameFromPath(char* path)
|
||||||
|
{
|
||||||
|
char* slash1 = strrchr(path, '\\');
|
||||||
|
char* slash2 = strrchr(path, '/');
|
||||||
|
char* slash = slash1;
|
||||||
|
if (slash == NULL || slash2 > slash) {
|
||||||
|
slash = slash2;
|
||||||
|
}
|
||||||
|
if (slash != NULL) {
|
||||||
|
*(slash + 1) = '\0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void toCStringConverter(lua_State* L, int i, char*& ptr, int& remaining);
|
static void toCStringConverter(lua_State* L, int i, char*& ptr, int& remaining);
|
||||||
|
|
||||||
|
@ -4578,6 +4597,12 @@ void RunLuaScriptFile(int uid, const char* filenameCStr)
|
||||||
|
|
||||||
info.nextFilename = filenameCStr;
|
info.nextFilename = filenameCStr;
|
||||||
|
|
||||||
|
// TODO: store script's current directory into LuaContextInfo
|
||||||
|
static char dirnameCStr[MAX_PATH];
|
||||||
|
strcpy(dirnameCStr, filenameCStr);
|
||||||
|
TrimFilenameFromPath(dirnameCStr);
|
||||||
|
chdir(dirnameCStr);
|
||||||
|
|
||||||
if(info.running)
|
if(info.running)
|
||||||
{
|
{
|
||||||
// it's a little complicated, but... the call to luaL_dofile below
|
// it's a little complicated, but... the call to luaL_dofile below
|
||||||
|
|
Loading…
Reference in New Issue