From 4135a6d2fc4f71d1ef753c5353d8f99b6327bb12 Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Wed, 24 Jul 2013 09:02:05 +0200 Subject: Ditching readline for libedit, resulting in a much more flexible approach to line input. --- Balau | 2 +- Dalos-modules | 2 +- Makefile | 2 +- src/Dalos-cli.cc | 19 ++++++------------- 4 files changed, 9 insertions(+), 16 deletions(-) diff --git a/Balau b/Balau index 71b4710..e37ef65 160000 --- a/Balau +++ b/Balau @@ -1 +1 @@ -Subproject commit 71b4710c4834d747e44451bd7806c5ac4effbcc5 +Subproject commit e37ef65aaa42e790a741c15dbae9b83e9c04cd3a diff --git a/Dalos-modules b/Dalos-modules index 80a6f3a..316b2a4 160000 --- a/Dalos-modules +++ b/Dalos-modules @@ -1 +1 @@ -Subproject commit 80a6f3a91488c5a45fa0bbc93d91aeb4ebb630c5 +Subproject commit 316b2a40f0bd9ccdf8a2ff2f2e097011cbb5fedf diff --git a/Makefile b/Makefile index 6e59563..26364af 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ LDFLAGS += -g endif INCLUDES = includes Balau/includes Balau/libcoro Balau/libeio Balau/libev Balau/LuaJIT/src Dalos-modules/includes -LIBS = z readline +LIBS = z edit ifeq ($(SYSTEM),Darwin) LIBS += pthread iconv diff --git a/src/Dalos-cli.cc b/src/Dalos-cli.cc index fedec88..89069bf 100644 --- a/src/Dalos-cli.cc +++ b/src/Dalos-cli.cc @@ -1,10 +1,10 @@ #include -#include -#include #include #include #include #include +#include +#include "BReadline.h" using namespace Balau; @@ -92,24 +92,17 @@ void MainTask::Do() { if (!interactive) return; - char prompt[3] = "> ", * line_read = NULL; + String line_read; + Readline rl("Dalos-cli", new StdIN()); for (;;) { - if (line_read) - free(line_read); + line_read = rl.gets(); - line_read = readline(prompt); - - if (!line_read) { + if (rl.gotEOF()) { Printer::print("\n"); break; } - if (!*line_read) - continue; - - add_history(line_read); - LuaExecString luaExecString(line_read); luaExecString.exec(luaMainTask); } -- cgit v1.2.3