Commit 3720fa2b authored by Paul Eggert's avatar Paul Eggert
Browse files

Merge from mainline.

parents 096d914f 1851cac3
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
......@@ -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)
......
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).
......
;;; 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 @@ expression has a non-nil value. `:included' is an alias for `:visible'.
: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 @@ keyboard equivalent.
: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 @@ This is expected to be bound to a mouse event."
(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 @@ possibly preceded by keyword pairs as described in `easy-menu-define'."
(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 @@ possibly preceded by keyword pairs as described in `easy-menu-define'."
(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 @@ ITEM defines an item as in `easy-menu-define'."
;; 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 @@ ITEM defines an item as in `easy-menu-define'."
(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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment