aboutsummaryrefslogtreecommitdiffhomepage
path: root/pretyping/nativenorm.ml
diff options
context:
space:
mode:
authorGravatar Paul Steckler <steck@stecksoft.com>2017-08-22 15:38:06 -0400
committerGravatar Paul Steckler <steck@stecksoft.com>2017-08-22 15:38:06 -0400
commitc62a286bad2ec0ced1e7b5e8987f5f7e476ab11c (patch)
tree1c3a484d46d493b63170dbf85d726c55a50bcee4 /pretyping/nativenorm.ml
parent64b6b6075e461383719f6565aff2976dacc47569 (diff)
use OCaml 4.03-compatible Filename functions
Diffstat (limited to 'pretyping/nativenorm.ml')
-rw-r--r--pretyping/nativenorm.ml13
1 files changed, 11 insertions, 2 deletions
diff --git a/pretyping/nativenorm.ml b/pretyping/nativenorm.ml
index 9ca632f4b..39c2ceeba 100644
--- a/pretyping/nativenorm.ml
+++ b/pretyping/nativenorm.ml
@@ -54,8 +54,17 @@ let get_available_profile_filename () =
let profile_filename = get_profile_filename () in
let dir = Filename.dirname profile_filename in
let base = Filename.basename profile_filename in
- let ext = Filename.extension base in
- let name = Filename.remove_extension base in
+ (* starting with OCaml 4.04, could use Filename.remove_extension and Filename.extension, which
+ gets rid of need for exception-handling here
+ *)
+ let (name,ext) =
+ try
+ let nm = Filename.chop_extension base in
+ let nm_len = String.length nm in
+ let ex = String.sub base nm_len (String.length base - nm_len) in
+ (nm,ex)
+ with Invalid_argument _ -> (base,"")
+ in
try
(* unlikely race: fn deleted, another process uses fn *)
Filename.temp_file ~temp_dir:dir (name ^ "_") ext