File 0176-syntax_tools-erl_tidy-Do-not-hang-when-exits-are-tra.patch of Package erlang

From 9408d05ad6789496aab395cdcaf51625b95732cc Mon Sep 17 00:00:00 2001
From: Hans Bolinder <hasse@erlang.org>
Date: Fri, 16 Jun 2017 10:22:45 +0200
Subject: [PATCH] syntax_tools: erl_tidy: Do not hang when exits are trapped

See also ERL-413, https://bugs.erlang.org/browse/ERL-413.
---
 lib/syntax_tools/src/erl_tidy.erl            | 2 ++
 lib/syntax_tools/test/syntax_tools_SUITE.erl | 6 ++++++
 2 files changed, 8 insertions(+)

diff --git a/lib/syntax_tools/src/erl_tidy.erl b/lib/syntax_tools/src/erl_tidy.erl
index 1ca60ea73..888cb71f5 100644
--- a/lib/syntax_tools/src/erl_tidy.erl
+++ b/lib/syntax_tools/src/erl_tidy.erl
@@ -301,6 +301,8 @@ file(Name, Opts) ->
         {Child, ok} ->
             ok;
         {Child, {error, Reason}} ->
+            exit(Reason);
+        {'EXIT', Child, Reason} ->
             exit(Reason)
     end.
 
diff --git a/lib/syntax_tools/test/syntax_tools_SUITE.erl b/lib/syntax_tools/test/syntax_tools_SUITE.erl
index 868f43b8e..ae2c67c03 100644
--- a/lib/syntax_tools/test/syntax_tools_SUITE.erl
+++ b/lib/syntax_tools/test/syntax_tools_SUITE.erl
@@ -239,6 +239,12 @@ t_erl_tidy(Config) when is_list(Config) ->
     DataDir   = ?config(data_dir, Config),
     File  = filename:join(DataDir,"erl_tidy_tilde.erl"),
     ok = erl_tidy:file(File, [{stdout, true}]),
+
+    %% OTP-14471.
+    Old = process_flag(trap_exit, true),
+    NonExisting  = filename:join(DataDir,"non_existing_file.erl"),
+    {'EXIT',{error,{0,file,enoent}}} = (catch erl_tidy:file(NonExisting)),
+    true = process_flag(trap_exit, Old),
     ok.
 
 test_comment_scan([],_) -> ok;
-- 
2.13.2

openSUSE Build Service is sponsored by