diff options
author | Christine Lemmer-Webber <cwebber@dustycloud.org> | 2021-10-10 20:59:04 -0400 |
---|---|---|
committer | Christine Lemmer-Webber <cwebber@dustycloud.org> | 2021-10-10 20:59:04 -0400 |
commit | 204cb986469b2751a3c3347a34a8013c1a0b6954 (patch) | |
tree | e91534db67add400e5213ec3becb6ab48544b470 /guile-readline | |
parent | b03b359b5b16c040c485a565f3ce92481ea43f41 (diff) | |
parent | e60469c8b6936575c079faaffa40a340e1d49f3c (diff) | |
download | guile-204cb986469b2751a3c3347a34a8013c1a0b6954.tar.gz |
Merge branch 'main' into compile-to-js-merge
Diffstat (limited to 'guile-readline')
-rw-r--r-- | guile-readline/readline.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/guile-readline/readline.c b/guile-readline/readline.c index 5c4a32689..2dc8f08e6 100644 --- a/guile-readline/readline.c +++ b/guile-readline/readline.c @@ -379,16 +379,17 @@ SCM_DEFINE (scm_filename_completion_function, "filename-completion-function", 2, #define FUNC_NAME s_scm_filename_completion_function { char *s; - SCM ans; char *c_text = scm_to_locale_string (text); #ifdef HAVE_RL_FILENAME_COMPLETION_FUNCTION s = rl_filename_completion_function (c_text, scm_is_true (continuep)); #else s = filename_completion_function (c_text, scm_is_true (continuep)); #endif - ans = scm_take_locale_string (s); free (c_text); - return ans; + if (!s) + return SCM_BOOL_F; + + return scm_take_locale_string (s); } #undef FUNC_NAME @@ -430,12 +431,19 @@ static void init_bouncing_parens (); static void init_bouncing_parens () { - if (strncmp (rl_get_keymap_name (rl_get_keymap ()), "vi", 2)) + Keymap km = rl_get_keymap (); + if (km) { - rl_bind_key (')', match_paren); - rl_bind_key (']', match_paren); - rl_bind_key ('}', match_paren); + if (strncmp (rl_get_keymap_name (km), "vi", 2)) + { + rl_bind_key (')', match_paren); + rl_bind_key (']', match_paren); + rl_bind_key ('}', match_paren); + } } + else + scm_error (scm_misc_error_key, "", "readline has not been properly initialized", + SCM_EOL, SCM_EOL); } static int |