aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Makefile.common2
-rw-r--r--ide/coqide.ml4
-rw-r--r--ide/ideutils.ml2
-rw-r--r--ide/minilib.ml15
-rw-r--r--ide/minilib.mli3
-rw-r--r--ide/preferences.ml18
-rw-r--r--ide/project_file.ml415
-rw-r--r--ide/utils/configwin_messages.ml2
8 files changed, 39 insertions, 22 deletions
diff --git a/Makefile.common b/Makefile.common
index a64399cd8..63d194a4b 100644
--- a/Makefile.common
+++ b/Makefile.common
@@ -244,7 +244,7 @@ COQDEPCMO:=$(COQENVCMO) tools/coqdep_lexer.cmo tools/coqdep_common.cmo tools/coq
COQDOCCMO:=lib/clib.cma $(addprefix tools/coqdoc/, \
cdglobals.cmo alpha.cmo index.cmo tokens.cmo output.cmo cpretty.cmo main.cmo )
-COQMAKEFILECMO:=lib/clib.cma ide/minilib.cmo ide/project_file.cmo tools/coq_makefile.cmo
+COQMAKEFILECMO:=lib/clib.cma ide/project_file.cmo tools/coq_makefile.cmo
###########################################################################
# vo files
diff --git a/ide/coqide.ml b/ide/coqide.ml
index 95ef38d37..b2fd0c1d7 100644
--- a/ide/coqide.ml
+++ b/ide/coqide.ml
@@ -1408,7 +1408,7 @@ let main files =
(try
let icon_image = Filename.concat (List.find
(fun x -> Sys.file_exists (Filename.concat x "coq.png"))
- (Envars.xdg_data_dirs Ideutils.flash_info)) "coq.png" in
+ (Minilib.coqide_data_dirs ())) "coq.png" in
let icon = GdkPixbuf.from_file icon_image in
w#set_icon (Some icon)
with _ -> ());
@@ -2151,7 +2151,7 @@ let main files =
try
let image = Filename.concat (List.find
(fun x -> Sys.file_exists (Filename.concat x "coq.png"))
- (Envars.xdg_data_dirs Ideutils.flash_info)) "coq.png" in
+ (Minilib.coqide_data_dirs ())) "coq.png" in
let startup_image = GdkPixbuf.from_file image in
dialog#set_logo startup_image
with _ -> ()
diff --git a/ide/ideutils.ml b/ide/ideutils.ml
index 7b39972bd..949a8774d 100644
--- a/ide/ideutils.ml
+++ b/ide/ideutils.ml
@@ -296,7 +296,7 @@ let url_for_keyword =
let cin =
try let index_urls = Filename.concat (List.find
(fun x -> Sys.file_exists (Filename.concat x "index_urls.txt"))
- (Envars.xdg_config_dirs flash_info)) "index_urls.txt" in
+ (Minilib.coqide_config_dirs ())) "index_urls.txt" in
open_in index_urls
with Not_found ->
let doc_url = doc_url () in
diff --git a/ide/minilib.ml b/ide/minilib.ml
index 825fc58cc..6a960e266 100644
--- a/ide/minilib.ml
+++ b/ide/minilib.ml
@@ -38,3 +38,18 @@ let log ?(level = `DEBUG) msg =
try Printf.eprintf "[%s] %s\n%!" prefix msg
with _ -> ()
end
+
+let coqify d = Filename.concat d "coq"
+
+let coqide_config_home () =
+ coqify (Glib.get_user_config_dir ())
+
+let coqide_data_dirs () =
+ coqify (Glib.get_user_data_dir ())
+ :: List.map coqify (Glib.get_system_data_dirs ())
+ @ Option.List.cons Coq_config.datadir []
+
+let coqide_config_dirs () =
+ coqide_config_home ()
+ :: List.map coqify (Glib.get_system_config_dirs ())
+ @ Option.List.cons Coq_config.configdir []
diff --git a/ide/minilib.mli b/ide/minilib.mli
index c84321211..0508dbf83 100644
--- a/ide/minilib.mli
+++ b/ide/minilib.mli
@@ -22,3 +22,6 @@ val debug : bool ref
val log : ?level:level -> string -> unit
+val coqide_config_home : unit -> string
+val coqide_config_dirs : unit -> string list
+val coqide_data_dirs : unit -> string list
diff --git a/ide/preferences.ml b/ide/preferences.ml
index 9e226708f..3a2204601 100644
--- a/ide/preferences.ml
+++ b/ide/preferences.ml
@@ -9,28 +9,28 @@
open Configwin
open Printf
-let pref_file = Filename.concat (Envars.xdg_config_home Minilib.log) "coqiderc"
-let accel_file = Filename.concat (Envars.xdg_config_home Minilib.log) "coqide.keys"
+let pref_file = Filename.concat (Minilib.coqide_config_home ()) "coqiderc"
+let accel_file = Filename.concat (Minilib.coqide_config_home ()) "coqide.keys"
let lang_manager = GSourceView2.source_language_manager ~default:true
let () = lang_manager#set_search_path
- ((Envars.xdg_data_dirs Minilib.log)@lang_manager#search_path)
+ ((Minilib.coqide_data_dirs ())@lang_manager#search_path)
let style_manager = GSourceView2.source_style_scheme_manager ~default:true
let () = style_manager#set_search_path
- ((Envars.xdg_data_dirs Minilib.log)@style_manager#search_path)
+ ((Minilib.coqide_data_dirs ())@style_manager#search_path)
let get_config_file name =
let find_config dir = Sys.file_exists (Filename.concat dir name) in
- let config_dir = List.find find_config (Envars.xdg_config_dirs Minilib.log) in
+ let config_dir = List.find find_config (Minilib.coqide_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 (Envars.home Minilib.log) ".coqiderc"
+ with Not_found -> Filename.concat (Option.default "" (Glib.get_home_dir ())) ".coqiderc"
let loaded_accel_file =
try get_config_file "coqide.keys"
- with Not_found -> Filename.concat (Envars.home Minilib.log) ".coqide.keys"
+ with Not_found -> Filename.concat (Option.default "" (Glib.get_home_dir ())) ".coqide.keys"
let mod_to_str (m:Gdk.Tags.modifier) =
match m with
@@ -231,8 +231,8 @@ let current = {
}
let save_pref () =
- if not (Sys.file_exists (Envars.xdg_config_home Minilib.log))
- then Unix.mkdir (Envars.xdg_config_home Minilib.log) 0o700;
+ if not (Sys.file_exists (Minilib.coqide_config_home ()))
+ then Unix.mkdir (Minilib.coqide_config_home ()) 0o700;
let () = try GtkData.AccelMap.save accel_file with _ -> () in
let p = current in
diff --git a/ide/project_file.ml4 b/ide/project_file.ml4
index 6ae5e08be..14af18d37 100644
--- a/ide/project_file.ml4
+++ b/ide/project_file.ml4
@@ -53,19 +53,19 @@ let rec process_cmd_line orig_dir ((project_file,makefile,install,opt) as opts)
| ("-full"|"-opt") :: r ->
process_cmd_line orig_dir (project_file,makefile,install,true) l r
| "-impredicative-set" :: r ->
- Minilib.log "Please now use \"-arg -impredicative-set\" instead of \"-impredicative-set\" alone to be more uniform.";
+ Pp.msg_warning (Pp.str "Please now use \"-arg -impredicative-set\" instead of \"-impredicative-set\" alone to be more uniform.");
process_cmd_line orig_dir opts (Arg "-impredicative-set" :: l) r
| "-no-install" :: r ->
- Minilib.log "Option -no-install is deprecated. Use \"-install none\" instead";
+ Pp.msg_warning (Pp.(++) (Pp.str "Option -no-install is deprecated.") (Pp.(++) (Pp.spc ()) (Pp.str "Use \"-install none\" instead")));
process_cmd_line orig_dir (project_file,makefile,NoInstall,opt) l r
| "-install" :: d :: r ->
- if install <> UnspecInstall then Minilib.log "Warning: -install sets more than once.";
+ if install <> UnspecInstall then Pp.msg_warning (Pp.str "-install sets more than once.");
let install =
match d with
| "user" -> UserInstall
| "none" -> NoInstall
| "global" -> TraditionalInstall
- | _ -> Minilib.log (String.concat "" ["Warning: invalid option '"; d; "' passed to -install."]);
+ | _ -> Pp.msg_warning (Pp.(++) (Pp.str "invalid option '") (Pp.(++) (Pp.str d) (Pp.str "' passed to -install.")));
install
in
process_cmd_line orig_dir (project_file,makefile,install,opt) l r
@@ -81,8 +81,8 @@ let rec process_cmd_line orig_dir ((project_file,makefile,install,opt) as opts)
let file = CUnix.remove_path_dot (CUnix.correct_path file orig_dir) in
let () = match project_file with
| None -> ()
- | Some _ -> Minilib.log
- "Warning: Several features will not work with multiple project files."
+ | Some _ -> Pp.msg_warning (Pp.str
+ "Several features will not work with multiple project files.")
in
let (opts',l') = process_cmd_line (Filename.dirname file) (Some file,makefile,install,opt) l (parse file) in
process_cmd_line orig_dir opts' l' r
@@ -96,7 +96,7 @@ let rec process_cmd_line orig_dir ((project_file,makefile,install,opt) as opts)
let () = match makefile with
|None -> ()
|Some f ->
- Minilib.log ("Warning: Only one output file is genererated. "^f^" will not be.")
+ Pp.msg_warning (Pp.(++) (Pp.str "Only one output file is genererated. ") (Pp.(++) (Pp.str f) (Pp.str " will not be.")))
in process_cmd_line orig_dir (project_file,Some file,install,opt) l r
end
| v :: "=" :: def :: r ->
@@ -182,7 +182,6 @@ let args_from_project file project_files default_name =
if contains_file dir v_files
then build_cmd_line i_inc r_inc args
else let newdir = Filename.dirname dir in
- Minilib.log newdir;
if dir = newdir then [] else find_project_file newdir
with Sys_error s ->
let newdir = Filename.dirname dir in
diff --git a/ide/utils/configwin_messages.ml b/ide/utils/configwin_messages.ml
index dbb490033..de1b4721d 100644
--- a/ide/utils/configwin_messages.ml
+++ b/ide/utils/configwin_messages.ml
@@ -30,7 +30,7 @@ let version = "1.2";;
let html_config = "Configwin bindings configurator for html parameters"
-let home = Envars.home ~warn:Minilib.log
+let home = Option.default "" (Glib.get_home_dir ())
let mCapture = "Capture";;
let mType_key = "Type key" ;;