summaryrefslogtreecommitdiff
path: root/apps/plugins/lua/rocklib.c
diff options
context:
space:
mode:
authorMaurus Cuelenaere <mcuelenaere@gmail.com>2009-07-01 17:01:22 +0000
committerMaurus Cuelenaere <mcuelenaere@gmail.com>2009-07-01 17:01:22 +0000
commit9bff845b49e277af46d6b7a09bb111472f3d3f49 (patch)
tree8277c6a4b2ac95c231ad249b63bf30ab11869a37 /apps/plugins/lua/rocklib.c
parentd5180f7870643e19c37b62909d0e0c545cc23337 (diff)
downloadrockbox-9bff845b49e277af46d6b7a09bb111472f3d3f49.zip
rockbox-9bff845b49e277af46d6b7a09bb111472f3d3f49.tar.gz
rockbox-9bff845b49e277af46d6b7a09bb111472f3d3f49.tar.bz2
rockbox-9bff845b49e277af46d6b7a09bb111472f3d3f49.tar.xz
Lua: because Rockbox doesn't support any current working directory functionality, 'hack' loadlib so it replace '$' in LUA_PATH_DEFAULT with the directory wherein the current script is.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21595 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/lua/rocklib.c')
-rw-r--r--apps/plugins/lua/rocklib.c32
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}