1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-29 19:30:36 +02:00

Fix check for rl_get_keymap

This lets Guile build on OS X (tested on 10.14) with the system-provided
libreadline.

* acinclude.m4 (GUILE_READLINE): Check for rl_get_keymap_name instead of
  rl_get_keymap. The system provided libreadline is an alias to libedit,
  which has _keymap but not _keymap_name, and Guile uses both.
* guile-readline/readline.c: Adjust the include guard.
This commit is contained in:
Daniel Llorens 2020-01-27 22:43:56 +01:00
parent 321fc5b6b8
commit f2781c9604
2 changed files with 9 additions and 7 deletions

View file

@ -427,10 +427,12 @@ AC_DEFUN([GUILE_READLINE], [
[[#include <stdio.h>]
[#include <readline/readline.h>]])
dnl Check for rl_get_keymap. We only use this for deciding whether to
dnl install paren matching on the Guile command line (when using
dnl readline for input), so it's completely optional.
AC_CHECK_FUNCS([rl_get_keymap])
dnl Check rl_get_keymap_name instead of rl_get_keymap because some
dnl systems only have the latter and the feature needs both.
dnl We only use this for deciding whether to install paren matching on
dnl the Guile command line (when using readline for input), so it's
dnl completely optional.
AC_CHECK_FUNCS([rl_get_keymap_name])
AC_CACHE_CHECK([for rl_getc_function pointer in readline],
ac_cv_var_rl_getc_function,

View file

@ -420,7 +420,7 @@ completion_function (char *text, int continuep)
}
}
#if HAVE_RL_GET_KEYMAP
#if HAVE_RL_GET_KEYMAP_NAME
/*Bouncing parenthesis (reimplemented by GH, 11/23/98, since readline is strict gpl)*/
static int match_paren (int x, int k);
@ -515,7 +515,7 @@ match_paren (int x, int k)
}
return 0;
}
#endif /* HAVE_RL_GET_KEYMAP */
#endif /* HAVE_RL_GET_KEYMAP_NAME */
#endif /* HAVE_RL_GETC_FUNCTION */
@ -551,7 +551,7 @@ scm_init_readline ()
rl_variable_bind ("enable-bracketed-paste",
SCM_READLINE_BRACKETED_PASTE ? "on" : "off");
#if HAVE_RL_GET_KEYMAP
#if HAVE_RL_GET_KEYMAP_NAME
init_bouncing_parens();
#endif
scm_add_feature ("readline");