lua: set a proper chunk name for builtin modules

luaL_loadstring(), which was used until now, uses the start of the Lua
code itself as chunk name. Since the chunk name shows up even with
runtime errors triggered by e.g. Lua code loaded from user scripts, this
looks a but ugly. Switch to luaL_loadbuffer(), which is almost the same
as luaL_loadstring(), but allows setting a chunk name.
This commit is contained in:
wm4 2014-03-01 00:50:59 +01:00
parent d706f8181a
commit 32d18d77cd
1 changed files with 2 additions and 1 deletions

View File

@ -164,7 +164,8 @@ static int load_builtin(lua_State *L)
const char *name = luaL_checkstring(L, 1);
for (int n = 0; builtin_lua_scripts[n][0]; n++) {
if (strcmp(name, builtin_lua_scripts[n][0]) == 0) {
if (luaL_loadstring(L, builtin_lua_scripts[n][1]))
const char *script = builtin_lua_scripts[n][1];
if (luaL_loadbuffer(L, script, strlen(script), name))
lua_error(L);
lua_call(L, 0, 1);
return 1;