Browse Source

lua_dostring/lua_dofile should return any values returned by the chunk

Roberto Ierusalimschy 19 years ago
parent
commit
18330b6091
2 changed files with 28 additions and 3 deletions
  1. 23 0
      bugs
  2. 5 3
      lauxlib.h

+ 23 - 0
bugs

@@ -923,3 +923,26 @@ patch = [[
 ]],
 
 }
+
+
+@Bug{
+what = [[lua_dostring/lua_dofile should return any values returned
+by the chunk]],
+
+patch = [[
+* lauxlib.h:
+@@ -108,9 +108,11 @@
+
+ #define luaL_typename(L,i)     lua_typename(L, lua_type(L,(i)))
+
+-#define luaL_dofile(L, fn)     (luaL_loadfile(L, fn) || lua_pcall(L, 0, 0, 0))
++#define luaL_dofile(L, fn) \
++       (luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0))
+
+-#define luaL_dostring(L, s)    (luaL_loadstring(L, s) || lua_pcall(L, 0, 0, 0))+#define luaL_dostring(L, s) \
++       (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0))
+
+ #define luaL_getmetatable(L,n) (lua_getfield(L, LUA_REGISTRYINDEX, (n)))
+]],
+
+}

+ 5 - 3
lauxlib.h

@@ -1,5 +1,5 @@
 /*
-** $Id: lauxlib.h,v 1.86 2005/10/21 13:47:42 roberto Exp roberto $
+** $Id: lauxlib.h,v 1.87 2005/12/29 15:32:11 roberto Exp roberto $
 ** Auxiliary functions for building Lua libraries
 ** See Copyright Notice in lua.h
 */
@@ -108,9 +108,11 @@ LUALIB_API const char *(luaL_findtable) (lua_State *L, int idx,
 
 #define luaL_typename(L,i)	lua_typename(L, lua_type(L,(i)))
 
-#define luaL_dofile(L, fn)	(luaL_loadfile(L, fn) || lua_pcall(L, 0, 0, 0))
+#define luaL_dofile(L, fn) \
+	(luaL_loadfile(L, fn) || lua_pcall(L, 0, LUA_MULTRET, 0))
 
-#define luaL_dostring(L, s)	(luaL_loadstring(L, s) || lua_pcall(L, 0, 0, 0))
+#define luaL_dostring(L, s) \
+	(luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0))
 
 #define luaL_getmetatable(L,n)	(lua_getfield(L, LUA_REGISTRYINDEX, (n)))