]> git.eshelyaron.com Git - emacs.git/commitdiff
(macro-declaration-function): Disallow declare specs with lengths of 3
authorChong Yidong <cyd@stupidchicken.com>
Sun, 30 Nov 2008 03:00:18 +0000 (03:00 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Sun, 30 Nov 2008 03:00:18 +0000 (03:00 +0000)
or more.

lisp/emacs-lisp/byte-run.el

index 03fd5bfee3cae87916f44246c37b0965312a3314..03908d90021f35e5fa33820b14d282c4d0df39a2 100644 (file)
@@ -45,14 +45,19 @@ The return value of this function is not used."
     ;; Ignore the first element of `decl' (it's always `declare').
     (while (setq decl (cdr decl))
       (setq d (car decl))
-      (cond ((and (consp d) (eq (car d) 'indent))
-            (put macro 'lisp-indent-function (car (cdr d))))
-           ((and (consp d) (eq (car d) 'debug))
-            (put macro 'edebug-form-spec (car (cdr d))))
-           ((and (consp d) (eq (car d) 'doc-string))
-            (put macro 'doc-string-elt (car (cdr d))))
-           (t
-            (message "Unknown declaration %s" d))))))
+      (if (and (consp d)
+              (listp (cdr d))
+              (null (cdr (cdr d))))
+         (cond ((eq (car d) 'indent)
+                (put macro 'lisp-indent-function (car (cdr d))))
+               ((eq (car d) 'debug)
+                (put macro 'edebug-form-spec (car (cdr d))))
+               ((eq (car d) 'doc-string)
+                (put macro 'doc-string-elt (car (cdr d))))
+               (t
+                (message "Unknown declaration %s" d)))
+       (message "Invalid declaration %s" d)))))
+
 
 (setq macro-declaration-function 'macro-declaration-function)