diff options
author | Damien Doligez <damien.doligez-inria.fr> | 2005-01-18 14:33:08 +0000 |
---|---|---|
committer | Damien Doligez <damien.doligez-inria.fr> | 2005-01-18 14:33:08 +0000 |
commit | 99885a80a0e266aa862637780d93a7b64c726d76 (patch) | |
tree | 6ee219bca451e821f05e2d5f2eb8dd1ef1c8e23b | |
parent | ca6ab5f7d0662575674d12efc7cce57665c2e2b8 (diff) |
meilleur report d'erreur pour temp_file et open_temp_file
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@6748 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r-- | stdlib/filename.ml | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/stdlib/filename.ml b/stdlib/filename.ml index 7d6887eaf..62d6da568 100644 --- a/stdlib/filename.ml +++ b/stdlib/filename.ml @@ -166,24 +166,20 @@ let temp_file_name prefix suffix = let temp_file prefix suffix = let rec try_name counter = - if counter >= 1000 then - invalid_arg "Filename.temp_file: temp dir nonexistent or full"; let name = temp_file_name prefix suffix in try close_desc(open_desc name [Open_wronly; Open_creat; Open_excl] 0o600); name - with Sys_error _ -> - try_name (counter + 1) + with Sys_error _ as e -> + if counter >= 1000 then raise e else try_name (counter + 1) in try_name 0 let open_temp_file ?(mode = [Open_text]) prefix suffix = let rec try_name counter = - if counter >= 1000 then - invalid_arg "Filename.open_temp_file: temp dir nonexistent or full"; let name = temp_file_name prefix suffix in try (name, open_out_gen (Open_wronly::Open_creat::Open_excl::mode) 0o600 name) - with Sys_error _ -> - try_name (counter + 1) + with Sys_error _ as e -> + if counter >= 1000 then raise e else try_name (counter + 1) in try_name 0 |