diff options
author | Hans Bolinder <[email protected]> | 2013-01-01 16:56:22 +0100 |
---|---|---|
committer | Hans Bolinder <[email protected]> | 2013-01-02 10:15:18 +0100 |
commit | c44bc4f840f85c677eb86f00dc42c1648aaec0a6 (patch) | |
tree | f3e4bb6337559d73af91cfd75f647f23a778b3c0 /lib/kernel/src | |
parent | 6f86a3a6ba3b975016aab80b3f5b3f2807304b24 (diff) | |
download | otp-c44bc4f840f85c677eb86f00dc42c1648aaec0a6.tar.gz otp-c44bc4f840f85c677eb86f00dc42c1648aaec0a6.tar.bz2 otp-c44bc4f840f85c677eb86f00dc42c1648aaec0a6.zip |
Make sure the Erlang shell prompt can handle Unicode
Diffstat (limited to 'lib/kernel/src')
-rw-r--r-- | lib/kernel/src/group.erl | 8 | ||||
-rw-r--r-- | lib/kernel/src/user.erl | 5 |
2 files changed, 7 insertions, 6 deletions
diff --git a/lib/kernel/src/group.erl b/lib/kernel/src/group.erl index f92c6f7208..4d2e31a429 100644 --- a/lib/kernel/src/group.erl +++ b/lib/kernel/src/group.erl @@ -424,7 +424,7 @@ get_password_chars(Drv,Buf) -> end. get_chars(Prompt, M, F, Xa, Drv, Buf, Encoding) -> - Pbs = prompt_bytes(Prompt), + Pbs = prompt_bytes(Prompt, Encoding), get_chars_loop(Pbs, M, F, Xa, Drv, Buf, start, Encoding). get_chars_loop(Pbs, M, F, Xa, Drv, Buf0, State, Encoding) -> @@ -688,9 +688,9 @@ edit_password([Char|Cs],Chars) -> edit_password(Cs,[Char|Chars]). %% prompt_bytes(Prompt) -%% Return a flat list of bytes for the Prompt. -prompt_bytes(Prompt) -> - lists:flatten(io_lib:format_prompt(Prompt)). +%% Return a flat list of characters for the Prompt. +prompt_bytes(Prompt, Encoding) -> + lists:flatten(io_lib:format_prompt(Prompt, Encoding)). cast(L, binary,latin1) when is_list(L) -> list_to_binary(L); diff --git a/lib/kernel/src/user.erl b/lib/kernel/src/user.erl index 629b7ae67f..d6449d9e5e 100644 --- a/lib/kernel/src/user.erl +++ b/lib/kernel/src/user.erl @@ -673,8 +673,9 @@ get_chars_more(State, M, F, Xa, Port, Q, Enc) -> prompt(_Port, '') -> ok; prompt(Port, Prompt) -> - put_port(wrap_characters_to_binary(io_lib:format_prompt(Prompt), - unicode, get(encoding)), + Encoding = get(encoding), + put_port(wrap_characters_to_binary(io_lib:format_prompt(Prompt, Encoding), + unicode, Encoding), Port). %% Convert error code to make it look as before |