aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorBruce Yinhe <[email protected]>2014-10-06 14:53:15 +0200
committerBruce Yinhe <[email protected]>2014-10-06 14:53:15 +0200
commita675467f2bba5c4e7fe643a46d3a48a3cf0b020a (patch)
treeaef2b4ec88fbcc1c55439a904303e0a86631d54a /lib
parent9e48b1fd13d9b5adfbeeda3e9137c4e2b56c37e4 (diff)
parent81094cfd7b80a0cfe80f88c8fecb394744ceb90f (diff)
downloadotp-a675467f2bba5c4e7fe643a46d3a48a3cf0b020a.tar.gz
otp-a675467f2bba5c4e7fe643a46d3a48a3cf0b020a.tar.bz2
otp-a675467f2bba5c4e7fe643a46d3a48a3cf0b020a.zip
Merge branch 'vinoski/edlin-ctrl-u' into maint
OTP-12224 * vinoski/edlin-ctrl-u: Make shell ctrl-u save killed text correctly
Diffstat (limited to 'lib')
-rw-r--r--lib/kernel/test/interactive_shell_SUITE.erl3
-rw-r--r--lib/stdlib/src/edlin.erl2
2 files changed, 4 insertions, 1 deletions
diff --git a/lib/kernel/test/interactive_shell_SUITE.erl b/lib/kernel/test/interactive_shell_SUITE.erl
index a375adceea..7f6024f642 100644
--- a/lib/kernel/test/interactive_shell_SUITE.erl
+++ b/lib/kernel/test/interactive_shell_SUITE.erl
@@ -296,6 +296,7 @@ ctrl_keys(doc) -> ["Tests various control keys"];
ctrl_keys(_Conf) when is_list(_Conf) ->
Cu=[$\^u],
Cw=[$\^w],
+ Cy=[$\^y],
Home=[27,$O,$H],
End=[27,$O,$F],
rtnode([{putline,""},
@@ -308,6 +309,8 @@ ctrl_keys(_Conf) when is_list(_Conf) ->
{putline,"world\"."++Home++"\"hello "}, % test <HOME>
{getline,"\"hello world\""},
{putline,"world"++Home++"\"hello "++End++"\"."}, % test <END>
+ {getline,"\"hello world\""},
+ {putline,"\"hello world\""++Cu++Cy++"."},
{getline,"\"hello world\""}]
++wordLeft()++wordRight(),[]).
diff --git a/lib/stdlib/src/edlin.erl b/lib/stdlib/src/edlin.erl
index be9a4f5107..b3bc5f6d92 100644
--- a/lib/stdlib/src/edlin.erl
+++ b/lib/stdlib/src/edlin.erl
@@ -390,7 +390,7 @@ do_op(end_of_line, Bef, [C|Aft], Rs) ->
do_op(end_of_line, Bef, [], Rs) ->
{{Bef,[]},Rs};
do_op(ctlu, Bef, Aft, Rs) ->
- put(kill_buffer, Bef),
+ put(kill_buffer, reverse(Bef)),
{{[], Aft}, [{delete_chars, -length(Bef)} | Rs]};
do_op(beep, Bef, Aft, Rs) ->
{{Bef,Aft},[beep|Rs]};