summaryrefslogtreecommitdiff
path: root/guile-readline/readline.c
diff options
context:
space:
mode:
authorChristine Lemmer-Webber <cwebber@dustycloud.org>2021-10-10 20:59:04 -0400
committerChristine Lemmer-Webber <cwebber@dustycloud.org>2021-10-10 20:59:04 -0400
commit204cb986469b2751a3c3347a34a8013c1a0b6954 (patch)
treee91534db67add400e5213ec3becb6ab48544b470 /guile-readline/readline.c
parentb03b359b5b16c040c485a565f3ce92481ea43f41 (diff)
parente60469c8b6936575c079faaffa40a340e1d49f3c (diff)
downloadguile-204cb986469b2751a3c3347a34a8013c1a0b6954.tar.gz
Merge branch 'main' into compile-to-js-merge
Diffstat (limited to 'guile-readline/readline.c')
-rw-r--r--guile-readline/readline.c22
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