aboutsummaryrefslogtreecommitdiffstats
path: root/erts/preloaded/src/prim_file.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2013-02-20 11:57:24 +0100
committerBjörn Gustavsson <[email protected]>2013-02-20 12:02:19 +0100
commit8370c974835f7b71cf1b12a44988168927475255 (patch)
tree73df9c6a4a873a1a24462b15d30c664bd9244677 /erts/preloaded/src/prim_file.erl
parentbc95be2fcdf9ecf27398a6240f2148388ec649ab (diff)
downloadotp-8370c974835f7b71cf1b12a44988168927475255.tar.gz
otp-8370c974835f7b71cf1b12a44988168927475255.tar.bz2
otp-8370c974835f7b71cf1b12a44988168927475255.zip
prim_file: Fix error return from prim_file:list_dir/1
When the run-time system was started with +fnue, the error tuple indicating a non-translatable filename was added as a non-proper list tail inside an {ok,Files} term.
Diffstat (limited to 'erts/preloaded/src/prim_file.erl')
-rw-r--r--erts/preloaded/src/prim_file.erl9
1 files changed, 7 insertions, 2 deletions
diff --git a/erts/preloaded/src/prim_file.erl b/erts/preloaded/src/prim_file.erl
index b40a6d9633..489e8ca4ea 100644
--- a/erts/preloaded/src/prim_file.erl
+++ b/erts/preloaded/src/prim_file.erl
@@ -933,7 +933,12 @@ list_dir_int(Port, Dir) ->
fun(P) ->
case list_dir_response(P, []) of
{ok, RawNames} ->
- {ok, list_dir_convert(RawNames)};
+ try
+ {ok, list_dir_convert(RawNames)}
+ catch
+ throw:Reason ->
+ Reason
+ end;
Error ->
Error
end
@@ -979,7 +984,7 @@ list_dir_convert([Name|Names]) ->
{error, ignore} ->
list_dir_convert(Names);
{error, error} ->
- {error, {no_translation, Name}};
+ throw({error, {no_translation, Name}});
Converted when is_list(Converted) ->
[Converted|list_dir_convert(Names)]
end;