File 3052-erts-Change-erlang-display_string-to-output-to-stdou.patch of Package erlang
From 646d79cd9df2757bffb0f9b0d2c702adf302ca0e Mon Sep 17 00:00:00 2001
From: Lukas Larsson <lukas@erlang.org>
Date: Tue, 3 May 2022 15:29:39 +0200
Subject: [PATCH 2/4] erts: Change erlang:display_string to output to stdout
Historically, display_string has been used to output to stderr
when the standard_error io device is not yet available. However
all usage of it for that purpose has been removed/rewritten and
now it is used to write a string together with erlang:display.
So we change it to write to stdout (as erlang:display does).
---
erts/emulator/beam/bif.tab | 1 -
erts/preloaded/src/init.erl | 2 +-
lib/kernel/src/logger_simple_h.erl | 20 ++++++++++----------
lib/kernel/src/net_kernel.erl | 2 +-
4 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/erts/emulator/beam/bif.tab b/erts/emulator/beam/bif.tab
index cfeab13bd2..d0e97f126e 100644
--- a/erts/emulator/beam/bif.tab
+++ b/erts/emulator/beam/bif.tab
@@ -56,7 +56,6 @@ bif erlang:crc32_combine/3
bif erlang:date/0
bif erlang:delete_module/1
bif erlang:display/1
-bif erlang:display_string/1
bif erlang:display_string/2
ubif erlang:element/2
bif erlang:erase/0
diff --git a/erts/preloaded/src/init.erl b/erts/preloaded/src/init.erl
index a95df3741e..29a6766455 100644
--- a/erts/preloaded/src/init.erl
+++ b/erts/preloaded/src/init.erl
@@ -558,7 +558,7 @@ do_handle_msg(Msg,State) ->
true -> logger:info("init got unexpected: ~p", [X],
#{ error_logger=>#{tag=>info_msg}});
false ->
- erlang:display_string("init got unexpected: "),
+ erlang:display_string(stdout, "init got unexpected: "),
erlang:display(X)
end
end
diff --git a/lib/kernel/src/logger_simple_h.erl b/lib/kernel/src/logger_simple_h.erl
index fe8db09e83..db0dce97a7 100644
--- a/lib/kernel/src/logger_simple_h.erl
+++ b/lib/kernel/src/logger_simple_h.erl
@@ -145,7 +145,7 @@ do_log(Log) ->
#{ legacy_header => true, single_line => false
,depth => unlimited, time_offset => ""
}),
- erlang:display_string(lists:flatten(unicode:characters_to_list(Str)))
+ erlang:display_string(stdout, lists:flatten(unicode:characters_to_list(Str)))
catch _E:_R:_ST ->
% erlang:display({_E,_R,_ST}),
display_log(Log)
@@ -164,7 +164,7 @@ display_date(Timestamp) when is_integer(Timestamp) ->
Sec = Timestamp div 1000000,
{{Y,Mo,D},{H,Mi,S}} = erlang:universaltime_to_localtime(
erlang:posixtime_to_universaltime(Sec)),
- erlang:display_string(
+ erlang:display_string(stdout,
integer_to_list(Y) ++ "-" ++
pad(Mo,2) ++ "-" ++
pad(D,2) ++ " " ++
@@ -182,7 +182,8 @@ pad(Str,Size) ->
display({string,Chardata}) ->
try unicode:characters_to_list(Chardata) of
- String -> erlang:display_string(String), erlang:display_string("\n")
+ String -> erlang:display_string(stdout, String),
+ erlang:display_string(stdout, "\n")
catch _:_ -> erlang:display(Chardata)
end;
display({report,Report}) when is_map(Report) ->
@@ -190,9 +191,9 @@ display({report,Report}) when is_map(Report) ->
display({report,Report}) ->
display_report(Report);
display({F, A}) when is_list(F), is_list(A) ->
- erlang:display_string(F ++ "\n"),
+ erlang:display_string(stdout, F ++ "\n"),
[begin
- erlang:display_string("\t"),
+ erlang:display_string(stdout, "\t"),
erlang:display(Arg)
end || Arg <- A],
ok.
@@ -203,7 +204,7 @@ display_report(Atom, A) when is_atom(Atom) ->
AtomString = atom_to_list(Atom),
AtomLength = length(AtomString),
Padding = lists:duplicate(ColumnWidth - AtomLength, $\s),
- erlang:display_string(AtomString ++ Padding),
+ erlang:display_string(stdout, AtomString ++ Padding),
display_report(A);
display_report(F, A) ->
erlang:display({F, A}).
@@ -216,13 +217,12 @@ display_report([A, []]) ->
display_report(A = [_|_]) ->
case lists:all(fun({Key,_Value}) -> is_atom(Key); (_) -> false end, A) of
true ->
- erlang:display_string("\n"),
+ erlang:display_string(stdout, "\n"),
lists:foreach(
fun({Key, Value}) ->
erlang:display_string(
- " " ++
- atom_to_list(Key) ++
- ": "),
+ stdout,
+ " " ++ atom_to_list(Key) ++ ": "),
erlang:display(Value)
end, A);
false ->
diff --git a/lib/kernel/src/net_kernel.erl b/lib/kernel/src/net_kernel.erl
index 0ecad9e393..7717438df3 100644
--- a/lib/kernel/src/net_kernel.erl
+++ b/lib/kernel/src/net_kernel.erl
@@ -2125,7 +2125,7 @@ register_error(false, Proto, Reason) ->
proto_error(false, Proto, lists:flatten(S));
register_error(true, Proto, Reason) ->
S = "Protocol '" ++ Proto ++ "': register/listen error: ",
- erlang:display_string(S),
+ erlang:display_string(stdout, S),
erlang:display(Reason).
proto_error(CleanHalt, Proto, String) ->
--
2.35.3