Commit 790d0270 authored by Stefan Monnier's avatar Stefan Monnier
Browse files

* custom.el (custom-delayed-init-variables): New var.

(custom-initialize-delay): New function.
* startup.el (command-line): "Re"evaluate all vars in
custom-delayed-init-variables.  Don't reevaluate abbrev-file-name
explicitly any more.
* abbrev.el (abbrev-file-name): Use custom-initialize-delay
to avoid creating a ~/.emacs.d at build-time (bug#4347).
parent b9631bb2
2009-09-11 Stefan Monnier <monnier@iro.umontreal.ca>
* proced.el (proced-mode-map): Prefer "m" for proced-mark.
* custom.el (custom-delayed-init-variables): New var.
(custom-initialize-delay): New function.
* startup.el (command-line): "Re"evaluate all vars in
custom-delayed-init-variables. Don't reevaluate abbrev-file-name
explicitly any more.
* abbrev.el (abbrev-file-name): Use custom-initialize-delay
to avoid creating a ~/.emacs.d at build-time (bug#4347).
* proced.el (proced-mode-map): Prefer "m" for proced-mark (bug#4362).
2009-09-11 Nick Roberts <nickrob@snap.net.nz>
......
......@@ -40,7 +40,8 @@
(defcustom abbrev-file-name
(locate-user-emacs-file "abbrev_defs" ".abbrev_defs")
"Default name of file to read abbrevs from."
"Default name of file from which to read abbrevs."
:initialize 'custom-initialize-delay
:type 'file)
(defcustom only-global-abbrevs nil
......
......@@ -130,6 +130,17 @@ For the standard setting, use `set-default'."
(t
(set-default symbol (eval value)))))
(defvar custom-delayed-init-variables nil
"List of variables whose initialization is pending.")
(defun custom-initialize-delay (symbol value)
"Delay initialization of SYMBOL to the next Emacs start.
This is used in files that are preloaded, so that the initialization is
done in the run-time context rather than the build-time context.
This also has the side-effect that the (delayed) initialization is performed
with the :setter."
(push symbol custom-delayed-init-variables))
(defun custom-declare-variable (symbol default doc &rest args)
"Like `defcustom', but SYMBOL and DEFAULT are evaluated as normal arguments.
DEFAULT should be an expression to evaluate to compute the default value,
......
......@@ -703,7 +703,6 @@ opening the first frame (e.g. open a connection to an X server).")
(custom-reevaluate-setting 'temporary-file-directory)
(custom-reevaluate-setting 'small-temporary-file-directory)
(custom-reevaluate-setting 'auto-save-file-name-transforms)
(custom-reevaluate-setting 'abbrev-file-name)
;; Force recomputation, in case it was computed during the dump.
(setq abbreviated-home-dir nil)
......@@ -909,6 +908,14 @@ opening the first frame (e.g. open a connection to an X server).")
;; Otherwise, enable tool-bar-mode.
(tool-bar-mode 1)))
;; Re-evaluate predefined variables whose initial value depends on
;; the runtime context.
(mapc 'custom-reevaluate-setting
;; Initialize them in the same order they were loaded, in case there
;; are dependencies between them.
(prog1 (nreverse custom-delayed-init-variables)
(setq custom-delayed-init-variables nil)))
;; Can't do this init in defcustom because the relevant variables
;; are not set.
(custom-reevaluate-setting 'blink-cursor-mode)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment