aboutsummaryrefslogtreecommitdiffhomepage
path: root/ide
diff options
context:
space:
mode:
authorGravatar pboutill <pboutill@85f007b7-540e-0410-9357-904b9bb8a0f7>2011-11-21 16:58:35 +0000
committerGravatar pboutill <pboutill@85f007b7-540e-0410-9357-904b9bb8a0f7>2011-11-21 16:58:35 +0000
commit5e62a6a476c925e58e169e43468ed0cee422bb1a (patch)
treec1df85d0afa81d1f06d0a142cf4210ccc928d65b /ide
parent885bddb65bd236d2e1e9e8c5a44cec688036213b (diff)
coqide default pref files are by default in /etc/xdg/coq/
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@14715 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'ide')
-rw-r--r--ide/coqide_main.ml414
-rw-r--r--ide/minilib.ml10
-rw-r--r--ide/minilib.mli1
-rw-r--r--ide/preferences.ml7
4 files changed, 23 insertions, 9 deletions
diff --git a/ide/coqide_main.ml4 b/ide/coqide_main.ml4
index 36257e8db..650cf9274 100644
--- a/ide/coqide_main.ml4
+++ b/ide/coqide_main.ml4
@@ -73,12 +73,14 @@ let () =
Minilib.coqlib := Coq.check_coqlib args;
Coqide.sup_args := args;
Coqide.ignore_break ();
- GtkMain.Rc.add_default_file (Ideutils.lib_ide_file "coqide-gtk2rc");
- (try
- GtkMain.Rc.add_default_file (Filename.concat Minilib.xdg_config_home "coqide-gtk2rc");
- with Not_found -> ());
- ignore (GtkMain.Main.init ());
- initmac () ;
+ (try
+ let gtkrcdir = List.find
+ (fun x -> Sys.file_exists (Filename.concat x "coqide-gtk2rc"))
+ Minilib.xdg_config_dirs in
+ GtkMain.Rc.add_default_file (Filename.concat gtkrcdir "coqide-gtk2rc");
+ with Not_found -> ());
+ ignore (GtkMain.Main.init ());
+ initmac () ;
(* GtkData.AccelGroup.set_default_mod_mask
(Some [`CONTROL;`SHIFT;`MOD1;`MOD3;`MOD4]);*)
ignore (
diff --git a/ide/minilib.ml b/ide/minilib.ml
index 65ff4378e..4896cbd4b 100644
--- a/ide/minilib.ml
+++ b/ide/minilib.ml
@@ -64,6 +64,10 @@ let string_map f s =
let subst_command_placeholder s t =
Str.global_replace (Str.regexp_string "%s") t s
+let path_to_list p =
+ let sep = Str.regexp (if Sys.os_type = "Win32" then ";" else ":") in
+ Str.split sep p
+
(* On win32, the home directory is probably not in $HOME, but in
some other environment variable *)
@@ -78,6 +82,12 @@ let xdg_config_home =
with Not_found ->
Filename.concat home "/.config/coq"
+let xdg_config_dirs =
+ xdg_config_home :: (try
+ List.map (fun dir -> Filename.concat dir "coq") (path_to_list (Sys.getenv "XDG_CONFIG_DIRS"))
+ with Not_found -> "/etc/xdg/coq"::(match Coq_config.configdir with |None -> [] |Some d -> [d]))
+
+
let coqlib = ref ""
let coqtop_path = ref ""
diff --git a/ide/minilib.mli b/ide/minilib.mli
index 749180756..60a5eed48 100644
--- a/ide/minilib.mli
+++ b/ide/minilib.mli
@@ -23,6 +23,7 @@ val subst_command_placeholder : string -> string -> string
val home : string
val xdg_config_home : string
+val xdg_config_dirs : string list
val coqlib : string ref
val coqtop_path : string ref
diff --git a/ide/preferences.ml b/ide/preferences.ml
index 14608f984..103c24848 100644
--- a/ide/preferences.ml
+++ b/ide/preferences.ml
@@ -1,4 +1,3 @@
-
(************************************************************************)
(* v * The Coq Proof Assistant / The Coq Development Team *)
(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2010 *)
@@ -224,8 +223,10 @@ let save_pref () =
Config_lexer.print_file pref_file
let load_pref () =
- GtkData.AccelMap.load (Filename.concat !Minilib.coqlib "ide/default_accel_map");
- GtkData.AccelMap.load accel_file;
+ 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 p = !current in
let m = Config_lexer.load_file pref_file in