d12e1a
From 0b72059e1bebb52f41a93de710ae12577769fb50 Mon Sep 17 00:00:00 2001
d12e1a
From: Miciah Dashiel Butler Masters <miciah.masters@gmail.com>
d12e1a
Date: Sun, 5 Apr 2009 12:57:35 +0000
d12e1a
Subject: [PATCH 1/2] Lua: Report bad arguments to edit_bookmark_dialoga
d12e1a
d12e1a
If edit_bookamrk_dialogs is given the wrong number or types of
d12e1a
arguments, report the problem to the user instead of failing silently.
d12e1a
d12e1a
[upstream commit 6a8e0ccd9bdb06e440b7b147c61f7741dd6d1fcd]
d12e1a
d12e1a
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
d12e1a
---
d12e1a
 src/scripting/lua/core.c | 1 +
d12e1a
 1 file changed, 1 insertion(+)
d12e1a
d12e1a
diff --git a/src/scripting/lua/core.c b/src/scripting/lua/core.c
d12e1a
index bff037b..7712dcd 100644
d12e1a
--- a/src/scripting/lua/core.c
d12e1a
+++ b/src/scripting/lua/core.c
d12e1a
@@ -369,6 +369,7 @@ l_edit_bookmark_dialog(LS)
d12e1a
 
d12e1a
 	if (!lua_isstring(S, 1) || !lua_isstring(S, 2)
d12e1a
 	    || !lua_isstring(S, 3) || !lua_isfunction(S, 4)) {
d12e1a
+		alert_lua_error("bad arguments to edit_bookmark_dialog");
d12e1a
 		lua_pushnil(S);
d12e1a
 		return 1;
d12e1a
 	}
d12e1a
-- 
d12e1a
1.8.3.1
d12e1a
d12e1a
d12e1a
From 8ce643a489dd8dc195aa2f8dc4029ce347093c98 Mon Sep 17 00:00:00 2001
d12e1a
From: Witold Filipczyk <witekfl@poczta.onet.pl>
d12e1a
Date: Wed, 21 Jul 2010 19:07:49 +0200
d12e1a
Subject: [PATCH 2/2] Link against lua51, not lua50.
d12e1a
d12e1a
[upstream commit 331a4dc62b0dbdecba3857d87dc4e12660e5d705]
d12e1a
d12e1a
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
d12e1a
---
d12e1a
 configure.in              | 16 +++++++---------
d12e1a
 src/scripting/lua/core.c  | 13 +++++--------
d12e1a
 src/scripting/lua/hooks.c |  6 +++++-
d12e1a
 3 files changed, 17 insertions(+), 18 deletions(-)
d12e1a
d12e1a
diff --git a/configure.in b/configure.in
d12e1a
index 3ef8603..ca138ac 100644
d12e1a
--- a/configure.in
d12e1a
+++ b/configure.in
d12e1a
@@ -854,10 +854,10 @@ if test -z "$disable_lua"; then
d12e1a
 		withval="";
d12e1a
 	fi
d12e1a
 	for luadir in "$withval" "" /usr /usr/local; do
d12e1a
-		for suffix in "" 50; do
d12e1a
+		for suffix in "" 51; do
d12e1a
 			if test "$cf_result" = no && ( test -f "$luadir/include/lua.h" || \
d12e1a
 			   test -f "$luadir/include/lua$suffix/lua.h" ) ; then
d12e1a
-				LUA_LIBS="-L$luadir/lib -llua$suffix -llualib$suffix -lm"
d12e1a
+				LUA_LIBS="-L$luadir/lib -llua$suffix -lm"
d12e1a
 				LUA_CFLAGS="-I$luadir/include -I$luadir/include/lua$suffix"
d12e1a
 
d12e1a
 				LIBS="$LUA_LIBS $LIBS_X"
d12e1a
@@ -865,13 +865,11 @@ if test -z "$disable_lua"; then
d12e1a
 				CPPFLAGS="$CPPFLAGS_X $LUA_CFLAGS"
d12e1a
 
d12e1a
 				# Check that it is a compatible Lua version
d12e1a
-				AC_LINK_IFELSE([AC_LANG_PROGRAM([[	#include <lua.h>
d12e1a
-						#include <lualib.h>]], [[	lua_State *L = lua_open();
d12e1a
-						luaopen_base(L);
d12e1a
-						luaopen_table(L);
d12e1a
-						luaopen_io(L);
d12e1a
-						luaopen_string(L);
d12e1a
-						luaopen_math(L);
d12e1a
+				AC_LINK_IFELSE([AC_LANG_PROGRAM([[	#include <lauxlib.h>]
d12e1a
+						#include <lua.h>
d12e1a
+						#include <lualib.h>
d12e1a
+						], [[	lua_State *L = luaL_newstate();
d12e1a
+						luaL_openlibs(L);
d12e1a
 						lua_pushboolean(L, 1);
d12e1a
 						lua_close(L);]])],[cf_result=yes],[cf_result=no])
d12e1a
 			fi
d12e1a
diff --git a/src/scripting/lua/core.c b/src/scripting/lua/core.c
d12e1a
index 7712dcd..1c4dbbc 100644
d12e1a
--- a/src/scripting/lua/core.c
d12e1a
+++ b/src/scripting/lua/core.c
d12e1a
@@ -12,6 +12,7 @@
d12e1a
 #include <unistd.h>
d12e1a
 #endif
d12e1a
 
d12e1a
+#include <lauxlib.h>
d12e1a
 #include <lua.h>
d12e1a
 #include <lualib.h>
d12e1a
 
d12e1a
@@ -659,7 +660,7 @@ do_hooks_file(LS, unsigned char *prefix, unsigned char *filename)
d12e1a
 	if (file_can_read(file)) {
d12e1a
 		int oldtop = lua_gettop(S);
d12e1a
 
d12e1a
-		if (lua_dofile(S, file) != 0)
d12e1a
+		if (luaL_dofile(S, file) != 0)
d12e1a
 			sleep(3); /* Let some time to see error messages. */
d12e1a
 		lua_settop(S, oldtop);
d12e1a
 	}
d12e1a
@@ -670,13 +671,9 @@ do_hooks_file(LS, unsigned char *prefix, unsigned char *filename)
d12e1a
 void
d12e1a
 init_lua(struct module *module)
d12e1a
 {
d12e1a
-	L = lua_open();
d12e1a
+	L = luaL_newstate();
d12e1a
 
d12e1a
-	luaopen_base(L);
d12e1a
-	luaopen_table(L);
d12e1a
-	luaopen_io(L);
d12e1a
-	luaopen_string(L);
d12e1a
-	luaopen_math(L);
d12e1a
+	luaL_openlibs(L);
d12e1a
 
d12e1a
 	lua_register(L, LUA_ALERT, l_alert);
d12e1a
 	lua_register(L, "current_url", l_current_url);
d12e1a
@@ -781,7 +778,7 @@ handle_ret_eval(struct session *ses)
d12e1a
 		int oldtop = lua_gettop(L);
d12e1a
 
d12e1a
 		if (prepare_lua(ses) == 0) {
d12e1a
-			lua_dostring(L, expr);
d12e1a
+			luaL_dostring(L, expr);
d12e1a
 			lua_settop(L, oldtop);
d12e1a
 			finish_lua();
d12e1a
 		}
d12e1a
diff --git a/src/scripting/lua/hooks.c b/src/scripting/lua/hooks.c
d12e1a
index d79ad80..49b6414 100644
d12e1a
--- a/src/scripting/lua/hooks.c
d12e1a
+++ b/src/scripting/lua/hooks.c
d12e1a
@@ -4,6 +4,10 @@
d12e1a
 #include "config.h"
d12e1a
 #endif
d12e1a
 
d12e1a
+#include <lauxlib.h>
d12e1a
+#include <lua.h>
d12e1a
+#include <lualib.h>
d12e1a
+
d12e1a
 #include "elinks.h"
d12e1a
 
d12e1a
 #include "cache/cache.h"
d12e1a
@@ -200,7 +204,7 @@ static enum evhook_status
d12e1a
 script_hook_quit(va_list ap, void *data)
d12e1a
 {
d12e1a
 	if (!prepare_lua(NULL)) {
d12e1a
-		lua_dostring(lua_state, "if quit_hook then quit_hook() end");
d12e1a
+		luaL_dostring(lua_state, "if quit_hook then quit_hook() end");
d12e1a
 		finish_lua();
d12e1a
 	}
d12e1a
 
d12e1a
-- 
d12e1a
1.8.3.1
d12e1a