diff options
author | Jose M Perez <[email protected]> | 2019-05-19 22:06:36 +0200 |
---|---|---|
committer | Jose M Perez <[email protected]> | 2019-05-19 22:06:36 +0200 |
commit | 322d54e76d5c88881d4299b6a17e02eb76dd6d8f (patch) | |
tree | 4787ff5278543ec32875e7cc3eb4f504e266ed50 /lib/kernel/src/code.erl | |
parent | 0aa68ff0e4b3c15c8f9cdccec8c2350dd12cdf5c (diff) | |
download | otp-322d54e76d5c88881d4299b6a17e02eb76dd6d8f.tar.gz otp-322d54e76d5c88881d4299b6a17e02eb76dd6d8f.tar.bz2 otp-322d54e76d5c88881d4299b6a17e02eb76dd6d8f.zip |
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.
Diffstat (limited to 'lib/kernel/src/code.erl')
-rw-r--r-- | lib/kernel/src/code.erl | 18 |
1 files changed, 16 insertions, 2 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 @@ -19,6 +19,8 @@ %% -module(code). +-include_lib("kernel/include/logger.hrl"). + %% This is the interface module to the code server. It also contains %% some implementation details. See also related modules: code_*.erl %% in this directory. @@ -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; + _ -> + ?LOG_WARNING("Multiple -mode given to erl, using the first, ~p", + [FirstMode]) + end, + case FirstMode of + ["embedded"] -> + embedded; + _ -> + interactive + end; _ -> interactive end. |