From 635bebf559f4f76bc4fa49c3ccb468476a654151 Mon Sep 17 00:00:00 2001 From: Francois Perrad Date: Mon, 3 Dec 2012 06:12:14 +0000 Subject: [PATCH] lua: support linenoise Signed-off-by: Francois Perrad Signed-off-by: Peter Korsgaard --- package/lua/Config.in | 17 +++++++++++++++++ package/lua/lua-11-linenoise.patch | 24 ++++++++++++++++++++++++ package/lua/lua.mk | 8 +++++++- 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 package/lua/lua-11-linenoise.patch diff --git a/package/lua/Config.in b/package/lua/Config.in index 8233e2a69b..4166730269 100644 --- a/package/lua/Config.in +++ b/package/lua/Config.in @@ -7,6 +7,15 @@ config BR2_PACKAGE_LUA if BR2_PACKAGE_LUA +choice + prompt "Lua Interpreter command-line editing" + default BR2_PACKAGE_LUA_INTERPRETER_EDITING_NONE + +config BR2_PACKAGE_LUA_INTERPRETER_EDITING_NONE + bool "none" + help + None. + config BR2_PACKAGE_LUA_INTERPRETER_READLINE bool "readline support" select BR2_PACKAGE_READLINE @@ -14,4 +23,12 @@ config BR2_PACKAGE_LUA_INTERPRETER_READLINE help Enables command-line editing in the lua interpreter. +config BR2_PACKAGE_LUA_INTERPRETER_LINENOISE + bool "linenoise support" + select BR2_PACKAGE_LINENOISE + help + Enables command-line editing in the lua interpreter. + +endchoice + endif diff --git a/package/lua/lua-11-linenoise.patch b/package/lua/lua-11-linenoise.patch new file mode 100644 index 0000000000..488c080a1e --- /dev/null +++ b/package/lua/lua-11-linenoise.patch @@ -0,0 +1,24 @@ +Add support of linenoise (replace readline) + +see discussion, http://lua-users.org/lists/lua-l/2010-03/msg00879.html + +Signed-off-by: Francois Perrad + +Index: b/src/luaconf.h +=================================================================== +--- a/src/luaconf.h ++++ b/src/luaconf.h +@@ -279,6 +279,13 @@ + if (lua_strlen(L,idx) > 0) /* non-empty line? */ \ + add_history(lua_tostring(L, idx)); /* add it to history */ + #define lua_freeline(L,b) ((void)L, free(b)) ++#elif defined(LUA_USE_LINENOISE) ++#include ++#define lua_readline(L,b,p) ((void)L, ((b)=linenoise(p)) != NULL) ++#define lua_saveline(L,idx) \ ++ if (lua_strlen(L,idx) > 0) /* non-empty line? */ \ ++ linenoiseHistoryAdd(lua_tostring(L, idx)); /* add it to history */ ++#define lua_freeline(L,b) ((void)L, free(b)) + #else + #define lua_readline(L,b,p) \ + ((void)L, fputs(p, stdout), fflush(stdout), /* show prompt */ \ diff --git a/package/lua/lua.mk b/package/lua/lua.mk index 9e0d38764c..32acc999d8 100644 --- a/package/lua/lua.mk +++ b/package/lua/lua.mk @@ -16,10 +16,16 @@ LUA_MYLIBS += -ldl ifeq ($(BR2_PACKAGE_LUA_INTERPRETER_READLINE),y) LUA_DEPENDENCIES = readline ncurses LUA_MYLIBS += -lreadline -lhistory -lncurses - LUA_CFLAGS += -DLUA_USE_LINUX + LUA_CFLAGS += -DLUA_USE_POSIX -DLUA_USE_DLOPEN -DLUA_USE_READLINE +else +ifeq ($(BR2_PACKAGE_LUA_INTERPRETER_LINENOISE),y) + LUA_DEPENDENCIES = linenoise + LUA_MYLIBS += -llinenoise + LUA_CFLAGS += -DLUA_USE_POSIX -DLUA_USE_DLOPEN -DLUA_USE_LINENOISE else LUA_CFLAGS += -DLUA_USE_POSIX -DLUA_USE_DLOPEN endif +endif # We never want to have host-readline and host-ncurses as dependencies # of host-lua. -- 2.30.2