File 0676-Extra-mode-flags-are-ignored-with-a-warning.patch of Package erlang
From 322d54e76d5c88881d4299b6a17e02eb76dd6d8f Mon Sep 17 00:00:00 2001
From: Jose M Perez <jose.m.perez.ramos+git@gmail.com>
Date: Sun, 19 May 2019 22:06:36 +0200
Subject: [PATCH 1/2] Extra -mode flags are ignored with a warning
Prior to this change, providing multiple -mode flags to erl would start
the code server as 'interactive', regardless of their value ('-mode
embedded -mode embedded' would start erl as in interactive mode).
With this change, the extra -mode flags are ignored, and a warning gets
logged.
---
lib/kernel/src/code.erl | 18 ++++++++++++++++--
lib/kernel/src/kernel.erl | 2 +-
lib/kernel/test/code_SUITE.erl | 29 ++++++++++++++++++++++++++---
3 files changed, 43 insertions(+), 6 deletions(-)
diff --git a/lib/kernel/src/code.erl b/lib/kernel/src/code.erl
index 7faef93609..964ede9bc9 100644
--- a/lib/kernel/src/code.erl
+++ b/lib/kernel/src/code.erl
@@ -707,8 +709,20 @@ do_s(Lib) ->
start_get_mode() ->
case init:get_argument(mode) of
- {ok,[["embedded"]]} ->
- embedded;
+ {ok, [FirstMode | Rest]} ->
+ case Rest of
+ [] ->
+ ok;
+ _ ->
+ error_logger:warning_msg("Multiple -mode given to erl, using the first, ~p",
+ [FirstMode])
+ end,
+ case FirstMode of
+ ["embedded"] ->
+ embedded;
+ _ ->
+ interactive
+ end;
_ ->
interactive
end.
diff --git a/lib/kernel/src/kernel.erl b/lib/kernel/src/kernel.erl
index bfa091a036..1ca2e0fd11 100644
--- a/lib/kernel/src/kernel.erl
+++ b/lib/kernel/src/kernel.erl
@@ -112,7 +112,7 @@ init([]) ->
temporary, 2000, supervisor, [user_sup]},
case init:get_argument(mode) of
- {ok, [["minimal"]]} ->
+ {ok, [["minimal"]|_]} ->
SafeSupervisor = {kernel_safe_sup,
{supervisor, start_link,
[{local, kernel_safe_sup}, ?MODULE, safe]},
--
2.16.4