mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-13 18:17:39 -04:00
Lua: add the package library
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21506 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
48f4512518
commit
3ff84e5e4f
7 changed files with 345 additions and 55 deletions
|
@ -866,13 +866,33 @@ RB_WRAP(read_bmp_file)
|
|||
RB_WRAP(current_path)
|
||||
{
|
||||
char buffer[MAX_PATH];
|
||||
if(get_cur_path(L, buffer, sizeof(buffer)))
|
||||
lua_Debug ar;
|
||||
|
||||
if(lua_getstack(L, 1, &ar))
|
||||
{
|
||||
lua_pushstring(L, buffer);
|
||||
return 1;
|
||||
/* 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;
|
||||
}
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define R(NAME) {#NAME, rock_##NAME}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue