mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
readline: Avoid interpreting control characters in pastes.
* NEWS: Update. * doc/ref/repl-modules.texi (Readline Options): Update for bracketed-paste. * guile-readline/readline.h (SCM_READLINE_BRACKETED_PASTE): Add bracketed-paste option. * guile-readline/readline.c (scm_readline_opts): Add bracketed-paste. (scm_init_readline): Wire up the logic.
This commit is contained in:
parent
7ac3d17cea
commit
96c9af4ab1
4 changed files with 27 additions and 2 deletions
17
NEWS
17
NEWS
|
@ -5,6 +5,23 @@ See the end for copying conditions.
|
||||||
Please send Guile bug reports to bug-guile@gnu.org.
|
Please send Guile bug reports to bug-guile@gnu.org.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Changes in 2.2.3 (since 2.2.2):
|
||||||
|
|
||||||
|
* Bug fixes
|
||||||
|
|
||||||
|
** Enable GNU Readline 7.0's support for "bracketed paste".
|
||||||
|
|
||||||
|
Before, when pasting an expression that contained TAB characters into
|
||||||
|
Guile's REPL with GNU Readline support enabled, the pasted TAB
|
||||||
|
characters would trigger autocompletion in Readline. This was never
|
||||||
|
what you wanted. Guile now sets the new "bracketed-paste" option in GNU
|
||||||
|
Readline 7.0 to on by default, making readline treat pastes into the
|
||||||
|
terminal as atomic units without control characters. See "Readline
|
||||||
|
Options" in the manual for full details.
|
||||||
|
|
||||||
|
** Fix time-monotonic from SRFI-19; broken in 2.2.1.
|
||||||
|
|
||||||
|
|
||||||
Changes in 2.2.2 (since 2.2.1):
|
Changes in 2.2.2 (since 2.2.1):
|
||||||
|
|
||||||
|
|
|
@ -108,6 +108,8 @@ history-file yes Use history file.
|
||||||
history-length 200 History length.
|
history-length 200 History length.
|
||||||
bounce-parens 500 Time (ms) to show matching opening parenthesis
|
bounce-parens 500 Time (ms) to show matching opening parenthesis
|
||||||
(0 = off).
|
(0 = off).
|
||||||
|
bracketed-paste yes Disable interpretation of control characters
|
||||||
|
in pastes.
|
||||||
@end smalllisp
|
@end smalllisp
|
||||||
|
|
||||||
The readline options interface can only be used @emph{after} loading
|
The readline options interface can only be used @emph{after} loading
|
||||||
|
|
|
@ -47,6 +47,8 @@ scm_t_option scm_readline_opts[] = {
|
||||||
"History length." },
|
"History length." },
|
||||||
{ SCM_OPTION_INTEGER, "bounce-parens", 500,
|
{ SCM_OPTION_INTEGER, "bounce-parens", 500,
|
||||||
"Time (ms) to show matching opening parenthesis (0 = off)."},
|
"Time (ms) to show matching opening parenthesis (0 = off)."},
|
||||||
|
{ SCM_OPTION_BOOLEAN, "bracketed-paste", 1,
|
||||||
|
"Disable interpretation of control characters in pastes." },
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -545,7 +547,10 @@ scm_init_readline ()
|
||||||
|
|
||||||
reentry_barrier_mutex = scm_make_mutex ();
|
reentry_barrier_mutex = scm_make_mutex ();
|
||||||
scm_init_opts (scm_readline_options,
|
scm_init_opts (scm_readline_options,
|
||||||
scm_readline_opts);
|
scm_readline_opts);
|
||||||
|
rl_variable_bind ("enable-bracketed-paste",
|
||||||
|
SCM_READLINE_BRACKETED_PASTE ? "on" : "off");
|
||||||
|
|
||||||
#if HAVE_RL_GET_KEYMAP
|
#if HAVE_RL_GET_KEYMAP
|
||||||
init_bouncing_parens();
|
init_bouncing_parens();
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -39,7 +39,8 @@ SCM_RL_API scm_t_option scm_readline_opts[];
|
||||||
#define SCM_HISTORY_FILE_P scm_readline_opts[0].val
|
#define SCM_HISTORY_FILE_P scm_readline_opts[0].val
|
||||||
#define SCM_HISTORY_LENGTH scm_readline_opts[1].val
|
#define SCM_HISTORY_LENGTH scm_readline_opts[1].val
|
||||||
#define SCM_READLINE_BOUNCE_PARENS scm_readline_opts[2].val
|
#define SCM_READLINE_BOUNCE_PARENS scm_readline_opts[2].val
|
||||||
#define SCM_N_READLINE_OPTIONS 3
|
#define SCM_READLINE_BRACKETED_PASTE scm_readline_opts[3].val
|
||||||
|
#define SCM_N_READLINE_OPTIONS 4
|
||||||
|
|
||||||
SCM_RL_API SCM scm_readline_options (SCM setting);
|
SCM_RL_API SCM scm_readline_options (SCM setting);
|
||||||
SCM_RL_API void scm_readline_init_ports (SCM inp, SCM outp);
|
SCM_RL_API void scm_readline_init_ports (SCM inp, SCM outp);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue