diff options
-rw-r--r-- | doc/refman/RefMan-com.tex | 2 | ||||
-rw-r--r-- | toplevel/coqinit.ml | 16 |
2 files changed, 11 insertions, 7 deletions
diff --git a/doc/refman/RefMan-com.tex b/doc/refman/RefMan-com.tex index 0f4bb342a..81d94ecf0 100644 --- a/doc/refman/RefMan-com.tex +++ b/doc/refman/RefMan-com.tex @@ -57,7 +57,7 @@ resource file \verb:$XDG_CONFIG_HOME/coq/coqrc.xxx: is loaded, where \verb:$XDG_CONFIG_HOME: is the configuration directory of the user (by default its home directory \verb!/.config! and \verb:xxx: is the version number (e.g. 8.3). If this file is not found, then the file -\verb:$XDG_CONFIG_HOME/.coqrc: is searched. You can also specify an +\verb:$XDG_CONFIG_HOME/coqrc: is searched. You can also specify an arbitrary name for the resource file (see option \verb:-init-file: below), or the name of another user to load the resource file of someone else (see option \verb:-user:). diff --git a/toplevel/coqinit.ml b/toplevel/coqinit.ml index d77122892..e4cfcb3f7 100644 --- a/toplevel/coqinit.ml +++ b/toplevel/coqinit.ml @@ -18,7 +18,8 @@ let set_debug () = Flags.debug := true rcfile is either $XDG_CONFIG_HOME/.coqrc.VERSION, or $XDG_CONFIG_HOME/.coqrc if the first one does not exist. *) -let rcfile = ref (Envars.xdg_config_home/"coqrc") +let rcdefaultname = "coqrc" +let rcfile = ref "" let rcfile_specified = ref false let set_rcfile s = rcfile := s; rcfile_specified := true @@ -32,11 +33,14 @@ let load_rcfile() = if file_readable_p !rcfile then Vernac.load_vernac false !rcfile else raise (Sys_error ("Cannot read rcfile: "^ !rcfile)) - else if file_readable_p (!rcfile^"."^Coq_config.version) then - Vernac.load_vernac false (!rcfile^"."^Coq_config.version) - else if file_readable_p !rcfile then - Vernac.load_vernac false !rcfile - else () + else try let inferedrc = List.find file_readable_p [ + Envars.xdg_config_home/rcdefaultname^"."^Coq_config.version; + Envars.xdg_config_home/rcdefaultname; + System.home/"."^rcdefaultname^"."^Coq_config.version; + System.home/"."^rcdefaultname; + ] in + Vernac.load_vernac false inferedrc + with Not_found -> () (* Flags.if_verbose mSGNL (str ("No coqrc or coqrc."^Coq_config.version^ |