diff options
author | Hans Bolinder <[email protected]> | 2013-02-16 19:04:29 +0100 |
---|---|---|
committer | Hans Bolinder <[email protected]> | 2013-02-18 09:47:25 +0100 |
commit | 998a64b2237086ebc776de4c72b0df8733e1c4ef (patch) | |
tree | 6137cccc4a1c5edeed18477c4ad5ad2adf55e219 /lib/stdlib/src/shell.erl | |
parent | 1eb56b8359fdc2f695f7439d5343330f3d5a5692 (diff) | |
download | otp-998a64b2237086ebc776de4c72b0df8733e1c4ef.tar.gz otp-998a64b2237086ebc776de4c72b0df8733e1c4ef.tar.bz2 otp-998a64b2237086ebc776de4c72b0df8733e1c4ef.zip |
Fix some Unicode issues
Also let the Erlang shell use the new function io:printable_range().
Diffstat (limited to 'lib/stdlib/src/shell.erl')
-rw-r--r-- | lib/stdlib/src/shell.erl | 32 |
1 files changed, 8 insertions, 24 deletions
diff --git a/lib/stdlib/src/shell.erl b/lib/stdlib/src/shell.erl index df66acb97b..c90b5ad5c8 100644 --- a/lib/stdlib/src/shell.erl +++ b/lib/stdlib/src/shell.erl @@ -129,7 +129,7 @@ start_restricted(RShMod) when is_atom(RShMod) -> error_logger:error_report( lists:flatten( io_lib:fwrite( - "Restricted shell module ~w not found: ~"++cs_p() ++"\n", + "Restricted shell module ~w not found: ~tp\n", [RShMod,What]))), Error end. @@ -214,8 +214,7 @@ server(StartSync) -> ok; {RShMod2,What2} -> io:fwrite( - ("Warning! Restricted shell module ~w not found: ~" - ++cs_p()++".\n" + ("Warning! Restricted shell module ~w not found: ~tp.\n" "Only the commands q() and init:stop() will be allowed!\n"), [RShMod2,What2]), application:set_env(stdlib, restricted_shell, ?MODULE) @@ -337,7 +336,7 @@ get_prompt_func() -> end. bad_prompt_func(M) -> - fwrite_severity(benign, "Bad prompt function: ~"++cs_p(), [M]). + fwrite_severity(benign, "Bad prompt function: ~tp", [M]). default_prompt(N) -> %% Don't bother flattening the list irrespective of what the @@ -571,7 +570,7 @@ report_exception(Class, Severity, {Reason,Stacktrace}, RT) -> I = iolist_size(Tag) + 1, PF = fun(Term, I1) -> pp(Term, I1, RT) end, SF = fun(M, _F, _A) -> (M =:= erl_eval) or (M =:= ?MODULE) end, - Enc = encoding(), + Enc = io:printable_range(), Str = lib:format_exception(I, Class, Reason, Stacktrace, SF, PF, Enc), io:requests([{put_chars, latin1, Tag}, {put_chars, unicode, Str}, @@ -1380,28 +1379,14 @@ pp(V, I, RT, Enc) -> {record_print_fun, record_print_fun(RT)}] ++ Enc)). -%% Control sequence 'p' possibly with Unicode translation modifier -cs_p() -> - case encoding() of - latin1 -> "p"; - unicode -> "tp" - end. - columns() -> case io:columns() of {ok,N} -> N; _ -> 80 end. -encoding() -> - [{encoding, Encoding}] = enc(), - Encoding. - enc() -> - case lists:keyfind(encoding, 1, io:getopts()) of - false -> [{encoding,latin1}]; % should never happen - Enc -> [Enc] - end. + [{encoding, io:printable_range()}]. garb(Shell) -> erlang:garbage_collect(Shell), @@ -1424,10 +1409,9 @@ check_env(V) -> {ok, Val} when is_integer(Val), Val >= 0 -> ok; {ok, Val} -> - Txt = io_lib:fwrite( - ("Invalid value of STDLIB configuration parameter ~w: ~" - ++cs_p()++"\n"), - [V, Val]), + Txt = io_lib:fwrite + ("Invalid value of STDLIB configuration parameter" + "~w: ~tp\n", [V, Val]), error_logger:info_report(lists:flatten(Txt)) end. |