From 9e2e590061c41c1fa8d4ea5d8f4149162dc41c51 Mon Sep 17 00:00:00 2001 From: Evgeny Khramtsov Date: Fri, 14 Jun 2019 16:58:39 +0300 Subject: [PATCH] Fix exception formatting on old Erlang --- rebar.config | 1 + src/misc.erl | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/rebar.config b/rebar.config index 4798f20f6..5fb25a029 100644 --- a/rebar.config +++ b/rebar.config @@ -96,6 +96,7 @@ {if_var_true, elixir, {d, 'ELIXIR_ENABLED'}}, {if_var_true, new_sql_schema, {d, 'NEW_SQL_SCHEMA'}}, {if_var_true, hipe, native}, + {if_have_fun, {erl_error, format_exception, 6}, {d, 'HAVE_ERL_ERROR'}}, {src_dirs, [src, {if_var_true, tools, tools}, {if_var_true, elixir, include}]}]}. diff --git a/src/misc.erl b/src/misc.erl index 0ebcbef78..16e4122b5 100644 --- a/src/misc.erl +++ b/src/misc.erl @@ -482,6 +482,7 @@ peach(Fun, [_,_|_] = List) -> peach(Fun, List) -> lists:foreach(Fun, List). +-ifdef(HAVE_ERL_ERROR). format_exception(Level, Class, Reason, Stacktrace) -> erl_error:format_exception( Level, Class, Reason, Stacktrace, @@ -489,6 +490,15 @@ format_exception(Level, Class, Reason, Stacktrace) -> fun(Term, I) -> io_lib:print(Term, I, 80, -1) end). +-else. +format_exception(Level, Class, Reason, Stacktrace) -> + lib:format_exception( + Level, Class, Reason, Stacktrace, + fun(_M, _F, _A) -> false end, + fun(Term, I) -> + io_lib:print(Term, I, 80, -1) + end). +-endif. -spec parse_ip_mask(binary()) -> {ok, {inet:ip4_address(), 0..32}} | {ok, {inet:ip6_address(), 0..128}} |