aboutsummaryrefslogtreecommitdiffhomepage
path: root/ide/preferences.ml
diff options
context:
space:
mode:
authorGravatar ppedrot <ppedrot@85f007b7-540e-0410-9357-904b9bb8a0f7>2012-04-18 10:07:34 +0000
committerGravatar ppedrot <ppedrot@85f007b7-540e-0410-9357-904b9bb8a0f7>2012-04-18 10:07:34 +0000
commit03cbf5db1204bc374c1f39c259f10d43031c18b2 (patch)
treeee9a55342be85e9ae9e4ff2c62b6ce189264a710 /ide/preferences.ml
parent1028d2f269e7cb46d900f09c31a194531ebd884c (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.ml24
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