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

openSUSE Build Service is sponsored by