aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rebar.config1
-rw-r--r--src/misc.erl10
2 files changed, 11 insertions, 0 deletions
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}} |