# HG changeset patch # User Paul Eggert # Date 1294981646 28800 # Node ID 63e39d23b102d541b2b60a1cd142d48edf9bc497 # Parent 36329d05ddec1925444e2ff9f43c89d45bedf969# Parent 1fd3710e68458452243e6f576e0d8c09767f7957 Merge from mainline. diff -r 36329d05ddec -r 63e39d23b102 admin/ChangeLog --- 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 +2011-01-14 Paul Eggert 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 + + * bzrmerge.el: Require cl when compiling. + (bzrmerge-merges): Doc fix. + 2011-01-07 Paul Eggert * 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 . - -;;; arch-tag: 97728c77-77c0-4156-b669-0e8c07d94e5a diff -r 36329d05ddec -r 63e39d23b102 admin/bzrmerge.el --- 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) diff -r 36329d05ddec -r 63e39d23b102 lisp/ChangeLog --- 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 + + * 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 Use run-mode-hooks for major mode hooks (bug#513). diff -r 36329d05ddec -r 63e39d23b102 lisp/emacs-lisp/easymenu.el --- 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 @@ -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