1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-02 05:32:08 -08:00

* lisp/custom.el (custom-declare-variable): Shorten code a bit

This commit is contained in:
Artur Malabarba 2015-10-25 01:37:17 +01:00
parent b6c6629ebe
commit 79fac080d2

View file

@ -155,40 +155,29 @@ 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 ((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))))))
(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))))))
(put symbol 'custom-requests requests)
;; Do the actual initialization.
(unless custom-dont-initialize