diff options
Diffstat (limited to 'apps/plugins/lua/rocklib.c')
| -rw-r--r-- | apps/plugins/lua/rocklib.c | 32 |
1 files changed, 6 insertions, 26 deletions
diff --git a/apps/plugins/lua/rocklib.c b/apps/plugins/lua/rocklib.c index 5109092..410916b 100644 --- a/apps/plugins/lua/rocklib.c +++ b/apps/plugins/lua/rocklib.c @@ -782,34 +782,14 @@ RB_WRAP(read_bmp_file) RB_WRAP(current_path) { - char buffer[MAX_PATH]; - lua_Debug ar; - - if(lua_getstack(L, 1, &ar)) + const char *current_path = get_current_path(L, 1); + if(current_path != NULL) { - /* Try determining the base path of the current Lua chunk - and write it to dest. */ - lua_getinfo(L, "S", &ar); - - char* curfile = (char*) &ar.source[1]; - char* pos = rb->strrchr(curfile, '/'); - if(pos != NULL) - { - unsigned int len = (unsigned int)(pos - curfile); - len = len + 1 > sizeof(buffer) ? sizeof(buffer) - 1 : len; - - if(len > 0) - memcpy(buffer, curfile, len); - - buffer[len] = '/'; - buffer[len+1] = '\0'; - - lua_pushstring(L, buffer); - return 1; - } + lua_pushstring(L, current_path); + return 1; } - - return 0; + else + return 0; } #define R(NAME) {#NAME, rock_##NAME} |