From 1d91470db676b2b5f269779dac0fcc8f1b24a711 Mon Sep 17 00:00:00 2001 From: mattn Date: Fri, 28 Dec 2012 02:22:26 +0900 Subject: use readline if it's enabled. --- tools/mirb/mirb.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/tools/mirb/mirb.c b/tools/mirb/mirb.c index d3903ef57..b89c63cff 100644 --- a/tools/mirb/mirb.c +++ b/tools/mirb/mirb.c @@ -12,6 +12,10 @@ #include #include #include +#ifdef ENABLE_READLINE +#include +#include +#endif #ifndef ENABLE_STDIO #include @@ -143,10 +147,12 @@ print_cmdline(int code_block_open) int main(void) { - int last_char; char ruby_code[1024] = { 0 }; char last_code_line[1024] = { 0 }; +#ifndef ENABLE_READLINE + int last_char; int char_index; +#endif mrbc_context *cxt; struct mrb_parser_state *parser; mrb_state *mrb; @@ -167,6 +173,7 @@ main(void) cxt->capture_errors = 1; while (TRUE) { +#ifndef ENABLE_READLINE print_cmdline(code_block_open); char_index = 0; @@ -180,6 +187,12 @@ main(void) } last_code_line[char_index] = '\0'; +#else + char* line = readline(code_block_open ? "* " : "> "); + strncat(last_code_line, line, sizeof(last_code_line)-1); + add_history(line); + free(line); +#endif if ((strcmp(last_code_line, "quit") == 0) || (strcmp(last_code_line, "exit") == 0)) { if (!code_block_open) { -- cgit v1.2.3