Tweak to support delete key in bash

This commit modified bash's builtin mapping of character sequences to
readline-functionality to detect the sequence of the delete symbol as
generated by the terminal.

Fixes #4058
This commit is contained in:
Norman Feske
2021-03-26 11:18:20 +01:00
parent 4f91d71cf9
commit bfea27a258
3 changed files with 9 additions and 6 deletions

View File

@ -1 +1 @@
02edac1a780fc13b59c3c8ad64cc6d390d1e9cc5 c54af4376c78eb9e3d1463bd015ca4cd75770954

View File

@ -11,5 +11,5 @@ DIR(bash) := src/noux-pkg/bash
PATCHES := src/noux-pkg/bash/build.patch \ PATCHES := src/noux-pkg/bash/build.patch \
src/noux-pkg/bash/check_dev_tty.patch \ src/noux-pkg/bash/check_dev_tty.patch \
src/noux-pkg/bash/disable_man2html.patch \ src/noux-pkg/bash/disable_man2html.patch \
src/noux-pkg/bash/home_end.patch src/noux-pkg/bash/home_end_delete.patch
PATCH_OPT := -p1 -d src/noux-pkg/bash PATCH_OPT := -p1 -d src/noux-pkg/bash

View File

@ -1,17 +1,20 @@
This patch adjust the default encoding for the home and end keys to match the This patch adjust the default encoding for the home, end, and delete keys to
'screen' terminal as used by Genode. It is related to the following issue: match the 'screen' terminal as used by Genode. It is related to the following
issues:
https://github.com/genodelabs/genode/issues/2705 https://github.com/genodelabs/genode/issues/2705 (home, end)
https://github.com/genodelabs/genode/issues/4058 (delete)
--- a/lib/readline/readline.c --- a/lib/readline/readline.c
+++ b/lib/readline/readline.c +++ b/lib/readline/readline.c
@@ -1293,8 +1293,8 @@ @@ -1293,8 +1293,9 @@
rl_bind_keyseq_if_unbound ("\033OB", rl_get_next_history); rl_bind_keyseq_if_unbound ("\033OB", rl_get_next_history);
rl_bind_keyseq_if_unbound ("\033OC", rl_forward_char); rl_bind_keyseq_if_unbound ("\033OC", rl_forward_char);
rl_bind_keyseq_if_unbound ("\033OD", rl_backward_char); rl_bind_keyseq_if_unbound ("\033OD", rl_backward_char);
- rl_bind_keyseq_if_unbound ("\033OH", rl_beg_of_line); - rl_bind_keyseq_if_unbound ("\033OH", rl_beg_of_line);
- rl_bind_keyseq_if_unbound ("\033OF", rl_end_of_line); - rl_bind_keyseq_if_unbound ("\033OF", rl_end_of_line);
+ rl_bind_keyseq_if_unbound ("\033[1~", rl_beg_of_line); + rl_bind_keyseq_if_unbound ("\033[1~", rl_beg_of_line);
+ rl_bind_keyseq_if_unbound ("\033[3~", rl_delete);
+ rl_bind_keyseq_if_unbound ("\033[4~", rl_end_of_line); + rl_bind_keyseq_if_unbound ("\033[4~", rl_end_of_line);
#if defined (__MINGW32__) #if defined (__MINGW32__)