diff options
author | 2012-04-18 10:07:34 +0000 | |
---|---|---|
committer | 2012-04-18 10:07:34 +0000 | |
commit | 03cbf5db1204bc374c1f39c259f10d43031c18b2 (patch) | |
tree | ee9a55342be85e9ae9e4ff2c62b6ce189264a710 /ide/preferences.ml | |
parent | 1028d2f269e7cb46d900f09c31a194531ebd884c (diff) |
Fixed bug #2752
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@15197 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'ide/preferences.ml')
-rw-r--r-- | ide/preferences.ml | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/ide/preferences.ml b/ide/preferences.ml index d2a4b291d..180daa38d 100644 --- a/ide/preferences.ml +++ b/ide/preferences.ml @@ -13,6 +13,20 @@ let pref_file = Filename.concat Minilib.xdg_config_home "coqiderc" let accel_file = Filename.concat Minilib.xdg_config_home "coqide.keys" +let get_config_file name = + let find_config dir = Sys.file_exists (Filename.concat dir name) in + let config_dir = List.find find_config Minilib.xdg_config_dirs in + Filename.concat config_dir name + +(* Small hack to handle v8.3 to v8.4 change in configuration file *) +let loaded_pref_file = + try get_config_file "coqiderc" + with Not_found -> Filename.concat Minilib.home ".coqiderc" + +let loaded_accel_file = + try get_config_file "coqide.keys" + with Not_found -> Filename.concat Minilib.home ".coqide.keys" + let mod_to_str (m:Gdk.Tags.modifier) = match m with | `MOD1 -> "<Alt>" @@ -191,8 +205,7 @@ let resize_window = ref (fun () -> ()) let save_pref () = if not (Sys.file_exists Minilib.xdg_config_home) then Unix.mkdir Minilib.xdg_config_home 0o700; - (try GtkData.AccelMap.save accel_file - with _ -> ()); + let () = try GtkData.AccelMap.save accel_file with _ -> () in let p = !current in let add = Minilib.Stringmap.add in @@ -247,13 +260,10 @@ let save_pref () = Config_lexer.print_file pref_file let load_pref () = - let accel_dir = List.find - (fun x -> Sys.file_exists (Filename.concat x "coqide.keys")) - Minilib.xdg_config_dirs in - GtkData.AccelMap.load (Filename.concat accel_dir "coqide.keys"); + let () = try GtkData.AccelMap.load loaded_accel_file with _ -> () in let p = !current in - let m = Config_lexer.load_file pref_file in + let m = Config_lexer.load_file loaded_pref_file in let np = { p with cmd_coqc = p.cmd_coqc } in let set k f = try let v = Minilib.Stringmap.find k m in f v with _ -> () in let set_hd k f = set k (fun v -> f (List.hd v)) in |