Selaa lähdekoodia

lua: support linenoise

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Francois Perrad 12 vuotta sitten
vanhempi
commit
635bebf559
3 muutettua tiedostoa jossa 48 lisäystä ja 1 poistoa
  1. 17 0
      package/lua/Config.in
  2. 24 0
      package/lua/lua-11-linenoise.patch
  3. 7 1
      package/lua/lua.mk

+ 17 - 0
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

+ 24 - 0
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 <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
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.