diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2015-10-25 00:29:42 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2015-10-25 00:30:16 -0700 |
commit | 0afbc5b2a2cda9fe12246bf62567162ae2577160 (patch) | |
tree | aaf0330eae424e8fd40a7bd559de9960ef8bf460 /lisp/custom.el | |
parent | d8589ad4e3cf2ed6759836f28081d96748360915 (diff) | |
download | emacs-0afbc5b2a2cda9fe12246bf62567162ae2577160.tar.gz |
Revert commit that broke 'make bootstrap'
* lisp/custom.el (custom-declare-variable): Revert commit
79fac080d277fed07b3c192890ad59d36d9f83b6. custom.el needs to work
even when pcase has not been defined yet, when doing bootstrapping.
Diffstat (limited to 'lisp/custom.el')
-rw-r--r-- | lisp/custom.el | 57 |
1 files changed, 34 insertions, 23 deletions
diff --git a/lisp/custom.el b/lisp/custom.el index cc284ef51ce..c5d0e65f42b 100644 --- a/lisp/custom.el +++ b/lisp/custom.el @@ -155,29 +155,40 @@ set to nil, as the value is no longer rogue." (unless (memq :group args) (custom-add-to-group (custom-current-group) symbol 'custom-variable)) (while args - (let ((keyword (pop args))) - (unless (symbolp keyword) - (error "Junk in args %S" (cons keyword args))) - (unless args - (error "Keyword %s is missing an argument" keyword)) - (let ((value (pop args))) - (pcase keyword - (`:initialize (setq initialize value)) - (`:set (put symbol 'custom-set value)) - (`:get (put symbol 'custom-get value)) - (`:require (push value requests)) - (`:risky (put symbol 'risky-local-variable value)) - (`:safe (put symbol 'safe-local-variable value)) - (`:type (put symbol 'custom-type (purecopy value))) - (`:options (if (get symbol 'custom-options) - ;; Slow safe code to avoid duplicates. - (mapc (lambda (option) - (custom-add-option symbol option)) - value) - ;; Fast code for the common case. - (put symbol 'custom-options (copy-sequence value)))) - (_ (custom-handle-keyword symbol keyword value - 'custom-variable)))))) + (let ((arg (car args))) + (setq args (cdr args)) + (unless (symbolp arg) + (error "Junk in args %S" args)) + (let ((keyword arg) + (value (car args))) + (unless args + (error "Keyword %s is missing an argument" keyword)) + (setq args (cdr args)) + (cond ((eq keyword :initialize) + (setq initialize value)) + ((eq keyword :set) + (put symbol 'custom-set value)) + ((eq keyword :get) + (put symbol 'custom-get value)) + ((eq keyword :require) + (push value requests)) + ((eq keyword :risky) + (put symbol 'risky-local-variable value)) + ((eq keyword :safe) + (put symbol 'safe-local-variable value)) + ((eq keyword :type) + (put symbol 'custom-type (purecopy value))) + ((eq keyword :options) + (if (get symbol 'custom-options) + ;; Slow safe code to avoid duplicates. + (mapc (lambda (option) + (custom-add-option symbol option)) + value) + ;; Fast code for the common case. + (put symbol 'custom-options (copy-sequence value)))) + (t + (custom-handle-keyword symbol keyword value + 'custom-variable)))))) (put symbol 'custom-requests requests) ;; Do the actual initialization. (unless custom-dont-initialize |