changeset 112326:63e39d23b102

Merge from mainline.
author Paul Eggert <eggert@cs.ucla.edu>
date Thu, 13 Jan 2011 21:07:26 -0800
parents 36329d05ddec (current diff) 1fd3710e6845 (diff)
children 17e0028efc29
files admin/ChangeLog
diffstat 4 files changed, 62 insertions(+), 46 deletions(-) [+]
line wrap: on
line diff
--- a/admin/ChangeLog	Thu Jan 13 16:33:24 2011 -0800
+++ b/admin/ChangeLog	Thu Jan 13 21:07:26 2011 -0800
@@ -1,4 +1,4 @@
-2011-01-09  Paul Eggert  <eggert@cs.ucla.edu>
+2011-01-14  Paul Eggert  <eggert@cs.ucla.edu>
 
 	Update copyright notes to match recent gnulib-related changes.
 	* notes/copyright: Add aclocal.m4, m4/*.m4, lib/Makefile.in,
@@ -9,6 +9,11 @@
 	subsumed by m4/*.m4 rule).  config.guess, config.sub, and
 	doc/man/texinfo.tex are now copied in from gnulib.
 
+2011-01-14  Glenn Morris  <rgm@gnu.org>
+
+	* bzrmerge.el: Require cl when compiling.
+	(bzrmerge-merges): Doc fix.
+
 2011-01-07  Paul Eggert  <eggert@cs.ucla.edu>
 
 	* notes/copyright: There's only one install-sh, not two, so fix a
@@ -1000,7 +1005,6 @@
 
 ;; Local Variables:
 ;; coding: utf-8
-;; add-log-time-zone-rule: t
 ;; End:
 
     Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007,
@@ -1020,5 +1024,3 @@
 
   You should have received a copy of the GNU General Public License
   along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
-
-;;; arch-tag: 97728c77-77c0-4156-b669-0e8c07d94e5a
--- a/admin/bzrmerge.el	Thu Jan 13 16:33:24 2011 -0800
+++ b/admin/bzrmerge.el	Thu Jan 13 21:07:26 2011 -0800
@@ -24,8 +24,11 @@
 
 ;;; Code:
 
+(eval-when-compile
+  (require 'cl))                        ; assert
+
 (defun bzrmerge-merges ()
-  "Return the list of already merged (not not committed) revisions.
+  "Return the list of already merged (not yet committed) revisions.
 The list returned is sorted by oldest-first."
   (with-current-buffer (get-buffer-create "*bzrmerge*")
     (erase-buffer)
--- a/lisp/ChangeLog	Thu Jan 13 16:33:24 2011 -0800
+++ b/lisp/ChangeLog	Thu Jan 13 21:07:26 2011 -0800
@@ -1,3 +1,12 @@
+2011-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* emacs-lisp/easymenu.el: Add :enable (bug#7754), and obey :label.
+	Require CL.
+	(easy-menu-create-menu, easy-menu-convert-item-1):
+	Use :label rather than nil for labels.  Use `case'.
+	Add :enable as alias for :active.
+	(easy-menu-binding): Obey :label.
+
 2011-01-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	Use run-mode-hooks for major mode hooks (bug#513).
--- a/lisp/emacs-lisp/easymenu.el	Thu Jan 13 16:33:24 2011 -0800
+++ b/lisp/emacs-lisp/easymenu.el	Thu Jan 13 21:07:26 2011 -0800
@@ -1,7 +1,7 @@
 ;;; easymenu.el --- support the easymenu interface for defining a menu
 
 ;; Copyright (C) 1994, 1996, 1998, 1999, 2000, 2001, 2002, 2003,
-;;   2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+;;   2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 
 ;; Keywords: emulations
 ;; Author: Richard Stallman <rms@gnu.org>
@@ -30,6 +30,8 @@
 
 ;;; Code:
 
+(eval-when-compile (require 'cl))
+
 (defvar easy-menu-precalculate-equivalent-keybindings nil
   "Determine when equivalent key bindings are computed for easy-menu menus.
 It can take some time to calculate the equivalent key bindings that are shown
@@ -66,8 +68,8 @@
 
    :active ENABLE
 
-ENABLE is an expression; the menu is enabled for selection
-whenever this expression's value is non-nil.
+ENABLE is an expression; the menu is enabled for selection whenever
+this expression's value is non-nil.  `:enable' is an alias for `:active'.
 
 The rest of the elements in MENU, are menu items.
 
@@ -104,8 +106,8 @@
 
    :active ENABLE
 
-ENABLE is an expression; the item is enabled for selection
-whenever this expression's value is non-nil.
+ENABLE is an expression; the item is enabled for selection whenever
+this expression's value is non-nil.  `:enable' is an alias for `:active'.
 
    :visible INCLUDE
 
@@ -163,10 +165,13 @@
                    (prog1 (get menu 'menu-prop)
                      (setq menu (symbol-function menu))))))
     (cons 'menu-item
-          (cons (or item-name
-                    (if (keymapp menu)
-                        (keymap-prompt menu))
-                    "")
+          (cons (if (eq :label (car props))
+                    (prog1 (cadr props)
+                      (setq props (cddr props)))
+                  (or item-name
+                      (if (keymapp menu)
+                          (keymap-prompt menu))
+                      ""))
                 (cons menu props)))))
 
 ;;;###autoload
@@ -232,15 +237,14 @@
 		(keywordp (setq keyword (car menu-items))))
       (setq arg (cadr menu-items))
       (setq menu-items (cddr menu-items))
-      (cond
-       ((eq keyword :filter)
+      (case keyword
+       (:filter
 	(setq filter `(lambda (menu)
 			(easy-menu-filter-return (,arg menu) ,menu-name))))
-       ((eq keyword :active) (setq enable (or arg ''nil)))
-       ((eq keyword :label) (setq label arg))
-       ((eq keyword :help) (setq help arg))
-       ((or (eq keyword :included) (eq keyword :visible))
-	(setq visible (or arg ''nil)))))
+       ((:enable :active) (setq enable (or arg ''nil)))
+       (:label (setq label arg))
+       (:help (setq help arg))
+       ((:included :visible) (setq visible (or arg ''nil)))))
     (if (equal visible ''nil)
 	nil				; Invisible menu entry, return nil.
       (if (and visible (not (easy-menu-always-true-p visible)))
@@ -249,14 +253,14 @@
 	  (setq prop (cons :enable (cons enable prop))))
       (if filter (setq prop (cons :filter (cons filter prop))))
       (if help (setq prop (cons :help (cons help prop))))
-      (if label (setq prop (cons nil (cons label prop))))
-      (if filter
-	  ;; The filter expects the menu in its XEmacs form and the pre-filter
-	  ;; form will only be passed to the filter anyway, so we'd better
-	  ;; not convert it at all (it will be converted on the fly by
-	  ;; easy-menu-filter-return).
-	  (setq menu menu-items)
-	(setq menu (append menu (mapcar 'easy-menu-convert-item menu-items))))
+      (if label (setq prop (cons :label (cons label prop))))
+      (setq menu (if filter
+                     ;; The filter expects the menu in its XEmacs form and the
+                     ;; pre-filter form will only be passed to the filter
+                     ;; anyway, so we'd better not convert it at all (it will
+                     ;; be converted on the fly by easy-menu-filter-return).
+                     menu-items
+                   (append menu (mapcar 'easy-menu-convert-item menu-items))))
       (when prop
 	(setq menu (easy-menu-make-symbol menu 'noexp))
 	(put menu 'menu-prop prop))
@@ -312,7 +316,7 @@
 	  ;; Invisible menu item. Don't insert into keymap.
 	  (setq remove t)
 	(when (and (symbolp command) (setq prop (get command 'menu-prop)))
-	  (when (null (car prop))
+	  (when (eq :label (car prop))
 	    (setq label (cadr prop))
 	    (setq prop (cddr prop)))
 	  (setq command (symbol-function command)))))
@@ -331,30 +335,28 @@
 		(setq keyword (aref item count))
 		(setq arg (aref item (1+ count)))
 		(setq count (+ 2 count))
-		(cond
-		 ((or (eq keyword :included) (eq keyword :visible))
-		  (setq visible (or arg ''nil)))
-		 ((eq keyword :key-sequence)
-		  (setq cache arg cache-specified t))
-		 ((eq keyword :keys) (setq keys arg no-name nil))
-		 ((eq keyword :label) (setq label arg))
-		 ((eq keyword :active) (setq active (or arg ''nil)))
-		 ((eq keyword :help) (setq prop (cons :help (cons arg prop))))
-		 ((eq keyword :suffix) (setq suffix arg))
-		 ((eq keyword :style) (setq style arg))
-		 ((eq keyword :selected) (setq selected (or arg ''nil)))))
+		(case keyword
+                  ((:included :visible) (setq visible (or arg ''nil)))
+                  (:key-sequence (setq cache arg cache-specified t))
+                  (:keys (setq keys arg no-name nil))
+                  (:label (setq label arg))
+                  ((:active :enable) (setq active (or arg ''nil)))
+                  (:help (setq prop (cons :help (cons arg prop))))
+                  (:suffix (setq suffix arg))
+                  (:style (setq style arg))
+                  (:selected (setq selected (or arg ''nil)))))
 	      (if suffix
 		  (setq label
 			(if (stringp suffix)
 			    (if (stringp label) (concat label " " suffix)
-			      (list 'concat label (concat " " suffix)))
+			      `(concat ,label ,(concat " " suffix)))
 			  (if (stringp label)
-			      (list 'concat (concat label " ") suffix)
-			    (list 'concat label " " suffix)))))
+			      `(concat ,(concat label " ") ,suffix)
+			    `(concat ,label " " ,suffix)))))
 	      (cond
 	       ((eq style 'button)
 		(setq label (if (stringp label) (concat "[" label "]")
-			      (list 'concat "[" label "]"))))
+			      `(concat "[" ,label "]"))))
 	       ((and selected
 		     (setq style (assq style easy-menu-button-prefix)))
 		(setq prop (cons :button