diff options
author | Willem Jan Palenstijn | 2014-01-02 00:39:47 +0100 |
---|---|---|
committer | Willem Jan Palenstijn | 2014-01-02 01:04:24 +0100 |
commit | 5686d606f0c7d766a37992075e8e7b8f1fae486e (patch) | |
tree | 7097f4e1a4357484cbfe8011ca6c2bf7aac1e48e | |
parent | 781017b114cf6920308b2204daf36779ff03024c (diff) | |
download | scummvm-rg350-5686d606f0c7d766a37992075e8e7b8f1fae486e.tar.gz scummvm-rg350-5686d606f0c7d766a37992075e8e7b8f1fae486e.tar.bz2 scummvm-rg350-5686d606f0c7d766a37992075e8e7b8f1fae486e.zip |
BUILD: Support libedit readline wrapper
This is used in Mac OS X. Thanks to waltervn for pointing this out and
testing.
-rwxr-xr-x | configure | 19 | ||||
-rw-r--r-- | gui/debugger.cpp | 10 |
2 files changed, 28 insertions, 1 deletions
@@ -3667,6 +3667,25 @@ fi if test "$_readline" = yes ; then LIBS="$LIBS $READLINE_LIBS $_READLINE_LIBS" INCLUDES="$INCLUDES $READLINE_CFLAGS" + + # + # Check the type of rl_completion_entry_function. + # It can be int(*)(const char *, int) or char *(*)(const char *, int). + # + cat > $TMPC << EOF +#include <stdio.h> +#include <readline/readline.h> +#include <readline/history.h> + +int readline_completionFunction(const char *, int); + +int main(void) { + char *x = readline(""); + rl_completion_entry_function = &readline_completionFunction; +} +EOF + cc_check -c && add_line_to_config_h '#define USE_READLINE_INT_COMPLETION' + fi define_in_config_h_if_yes "$_readline" 'USE_READLINE' diff --git a/gui/debugger.cpp b/gui/debugger.cpp index 35627dd584..9aa322e12e 100644 --- a/gui/debugger.cpp +++ b/gui/debugger.cpp @@ -133,6 +133,14 @@ Debugger *g_readline_debugger; char *readline_completionFunction(const char *text, int state) { return g_readline_debugger->readlineComplete(text, state); } + +#ifdef USE_READLINE_INT_COMPLETION +typedef int RLCompFunc_t(const char *, int); +#else +typedef char *RLCompFunc_t(const char *, int); +#endif + + } // end of anonymous namespace #endif @@ -162,7 +170,7 @@ void Debugger::enter() { // TODO: add support for saving/loading history? g_readline_debugger = this; - rl_completion_entry_function = &readline_completionFunction; + rl_completion_entry_function = (RLCompFunc_t *)&readline_completionFunction; char *line_read = 0; do { |