Commit 635bebf5 authored by Francois Perrad's avatar Francois Perrad Committed by Peter Korsgaard
Browse files

lua: support linenoise

parent d8784720
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -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
+24 −0
Original line number Diff line number Diff line
Add support of linenoise (replace readline)

see discussion, http://lua-users.org/lists/lua-l/2010-03/msg00879.html

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>

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 <linenoise.h>
+#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 */ \
+7 −1
Original line number Diff line number Diff line
@@ -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.