tools: Work around ancient readline

My latest commit of a785186446 uncovered a problem we fixed
in 9eb23fe2 but then reverted in 834c5720e4. Turns out, some
systems (I'm looking at you OS X) have ancient readline with
broken header file.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Michal Privoznik 2017-11-23 18:00:33 +01:00
parent 28907b0043
commit f7deea5242

View File

@ -2892,6 +2892,7 @@ vshReadlineInit(vshControl *ctl)
int ret = -1;
char *histsize_env = NULL;
const char *histsize_str = NULL;
const char *break_characters = " \t\n\\`@$><=;|&{(";
/* Opaque data for autocomplete callbacks. */
autoCompleteOpaque = ctl;
@ -2900,12 +2901,20 @@ vshReadlineInit(vshControl *ctl)
* Work around ancient readline 4.1 (hello Mac OS X),
* which declared it as 'char *' instead of 'const char *'.
*/
# if defined(RL_READLINE_VERSION) && RL_READLINE_VERSION > 0x0402
rl_readline_name = ctl->name;
# else
rl_readline_name = (char *) ctl->name;
# endif
/* Tell the completer that we want a crack first. */
rl_attempted_completion_function = vshReadlineCompletion;
rl_basic_word_break_characters = " \t\n\\`@$><=;|&{(";
# if defined(RL_READLINE_VERSION) && RL_READLINE_VERSION > 0x0402
rl_basic_word_break_characters = break_characters;
# else
rl_basic_word_break_characters = (char *) break_characters;
# endif
if (virAsprintf(&histsize_env, "%s_HISTSIZE", ctl->env_prefix) < 0)
goto cleanup;