From 731fc3aec85564ab026964dd4dee361f786bcfa3 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 7 Oct 2013 01:13:51 -0400 Subject: [PATCH] * lisp/emacs-lisp/easymenu.el (easy-menu-create-menu): Use closures. --- lisp/ChangeLog | 2 ++ lisp/emacs-lisp/easymenu.el | 27 ++++++++++++++------------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6e6c0aaa67..bceb495917 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,7 @@ 2013-10-07 Stefan Monnier + * emacs-lisp/easymenu.el (easy-menu-create-menu): Use closures. + * emacs-lisp/lisp-mode.el (eval-defun-2): Simplify, using lexical-binding. * emacs-lisp/tq.el (tq-create): Use a closure instead of `(lambda...). diff --git a/lisp/emacs-lisp/easymenu.el b/lisp/emacs-lisp/easymenu.el index f33ae54bf2..924ca7c054 100644 --- a/lisp/emacs-lisp/easymenu.el +++ b/lisp/emacs-lisp/easymenu.el @@ -1,4 +1,4 @@ -;;; easymenu.el --- support the easymenu interface for defining a menu +;;; easymenu.el --- support the easymenu interface for defining a menu -*- lexical-binding:t -*- ;; Copyright (C) 1994, 1996, 1998-2013 Free Software Foundation, Inc. @@ -218,21 +218,22 @@ MENU-NAME is a string, the name of the menu. MENU-ITEMS is a list of items possibly preceded by keyword pairs as described in `easy-menu-define'." (let ((menu (make-sparse-keymap menu-name)) (easy-menu-avoid-duplicate-keys nil) - prop keyword arg label enable filter visible help) + prop keyword label enable filter visible help) ;; Look for keywords. (while (and menu-items (cdr menu-items) (keywordp (setq keyword (car menu-items)))) - (setq arg (cadr menu-items)) - (setq menu-items (cddr menu-items)) - (pcase keyword - (`:filter - (setq filter `(lambda (menu) - (easy-menu-filter-return (,arg menu) ,menu-name)))) - ((or `:enable `:active) (setq enable (or arg ''nil))) - (`:label (setq label arg)) - (`:help (setq help arg)) - ((or `:included `:visible) (setq visible (or arg ''nil))))) + (let ((arg (cadr menu-items))) + (setq menu-items (cddr menu-items)) + (pcase keyword + (`:filter + (setq filter (lambda (menu) + (easy-menu-filter-return (funcall arg menu) + menu-name)))) + ((or `:enable `:active) (setq enable (or arg ''nil))) + (`:label (setq label arg)) + (`:help (setq help arg)) + ((or `: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))) @@ -496,7 +497,7 @@ Contrary to XEmacs, this is a nop on Emacs since menus are automatically \(fn MENU)") -(defun easy-menu-add (menu &optional map) +(defun easy-menu-add (_menu &optional _map) "Add the menu to the menubar. On Emacs, menus are already automatically activated when the corresponding keymap is activated. On XEmacs this is needed to -- 2.20.1