From 79fac080d277fed07b3c192890ad59d36d9f83b6 Mon Sep 17 00:00:00 2001 From: Artur Malabarba Date: Sun, 25 Oct 2015 01:37:17 +0100 Subject: [PATCH] * lisp/custom.el (custom-declare-variable): Shorten code a bit --- lisp/custom.el | 57 +++++++++++++++++++++++---------------------------------- 1 file changed, 23 insertions(+), 34 deletions(-) diff --git a/lisp/custom.el b/lisp/custom.el index c5d0e65f42b..cc284ef51ce 100644 --- a/lisp/custom.el +++ b/lisp/custom.el @@ -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 -- 2.11.4.GIT