]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/custom.el (custom-declare-variable): Shorten code a bit
authorArtur Malabarba <bruce.connor.am@gmail.com>
Sun, 25 Oct 2015 00:37:17 +0000 (01:37 +0100)
committerArtur Malabarba <bruce.connor.am@gmail.com>
Sun, 25 Oct 2015 00:53:46 +0000 (01:53 +0100)
lisp/custom.el

index c5d0e65f42bfad340557fde71ba824821bd600be..cc284ef51ce5d3191687e6e7163dad8899f85317 100644 (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