changeset 21689:95c0fe8d25a7

(easy-menu-do-add-item): Do the right thing when nil is specified as criterion for activeness. Fix string used to report an invalid item.
author Richard M. Stallman <rms@gnu.org>
date Tue, 21 Apr 1998 04:54:46 +0000
parents 855aedeb0742
children e8a5797c2808
files lisp/emacs-lisp/easymenu.el
diffstat 1 files changed, 9 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/emacs-lisp/easymenu.el	Tue Apr 21 04:51:23 1998 +0000
+++ b/lisp/emacs-lisp/easymenu.el	Tue Apr 21 04:54:46 1998 +0000
@@ -187,18 +187,19 @@
       (setq name (setq item-string (aref item 0)))
       (setq command (easy-menu-make-symbol (aref item 1) t))
       (let ((active (if (> (length item) 2) (aref item 2) t))
+	    (active-specified (> (length item) 2))
 	    (count 2)
 	    style selected)
 	(if (and (symbolp active) (= ?: (aref (symbol-name active) 0)))
 	    (let ((count 2) keyword arg suffix keys)
-	      (setq active nil)
+	      (setq active-specified nil)
 	      (while (> (length item) count)
 		(setq keyword (aref item count))
 		(setq arg (aref item (1+ count)))
 		(setq count (+ 2 count))
 		(cond
 		 ((eq keyword ':keys) (setq keys arg))
-		 ((eq keyword ':active) (setq active arg))
+		 ((eq keyword ':active) (setq active arg active-specified t))
 		 ((eq keyword ':suffix) (setq suffix (concat " " arg)))
 		 ((eq keyword ':style) (setq style arg))
 		 ((eq keyword ':selected) (setq selected arg))))
@@ -214,13 +215,15 @@
 					       ,selected
 					       ,(or active t)))
 		(setq is-button t)
-		(setq active nil)	; Already taken care of active.
+		(setq active-specified nil)	; Already taken care of active.
 		(when (not (or have-buttons top))
 		  (setq have-buttons "    ")
 		  ;; Add prefix to menu items defined so far.
-		  (easy-menu-change-prefix menu t)))))
-	(if active (put command 'menu-enable active))))
-     (t "Illegal menu item in easy menu."))
+		  (easy-menu-change-prefix menu t))))
+	  (and (null active) active-specified
+	       (setq active ''nil)))
+	(if active-specified (put command 'menu-enable active))))
+     (t "Invalid menu item in easymenu"))
     (when name
       (and (not is-button) have-buttons
 	   (setq item-string (concat have-buttons item-string)))