From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.bugs Subject: bug#24236: 25.1.50; `substitute-command-keys', \{...}: optionally show menu items Date: Mon, 15 Aug 2016 10:15:29 -0700 (PDT) Message-ID: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: blaine.gmane.org 1471281424 5924 195.159.176.226 (15 Aug 2016 17:17:04 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 15 Aug 2016 17:17:04 +0000 (UTC) To: 24236@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Aug 15 19:17:00 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZLVT-0001IL-Tv for geb-bug-gnu-emacs@m.gmane.org; Mon, 15 Aug 2016 19:17:00 +0200 Original-Received: from localhost ([::1]:38153 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bZLVT-0001YS-VF for geb-bug-gnu-emacs@m.gmane.org; Mon, 15 Aug 2016 13:16:59 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:43150) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bZLUd-0001B3-PT for bug-gnu-emacs@gnu.org; Mon, 15 Aug 2016 13:16:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bZLUY-0007lw-LW for bug-gnu-emacs@gnu.org; Mon, 15 Aug 2016 13:16:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:60794) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bZLUY-0007ls-Hj for bug-gnu-emacs@gnu.org; Mon, 15 Aug 2016 13:16:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1bZLUY-0001Cx-F6 for bug-gnu-emacs@gnu.org; Mon, 15 Aug 2016 13:16:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Drew Adams Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 15 Aug 2016 17:16:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 24236 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.14712813484614 (code B ref -1); Mon, 15 Aug 2016 17:16:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 15 Aug 2016 17:15:48 +0000 Original-Received: from localhost ([127.0.0.1]:58506 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZLUJ-0001CM-MJ for submit@debbugs.gnu.org; Mon, 15 Aug 2016 13:15:47 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:52107) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZLUI-0001CA-7I for submit@debbugs.gnu.org; Mon, 15 Aug 2016 13:15:46 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bZLUC-0007if-31 for submit@debbugs.gnu.org; Mon, 15 Aug 2016 13:15:41 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:35485) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bZLUB-0007iU-Vu for submit@debbugs.gnu.org; Mon, 15 Aug 2016 13:15:40 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:43067) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bZLU9-00019A-Nu for bug-gnu-emacs@gnu.org; Mon, 15 Aug 2016 13:15:38 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bZLU5-0007hl-Hy for bug-gnu-emacs@gnu.org; Mon, 15 Aug 2016 13:15:37 -0400 Original-Received: from aserp1040.oracle.com ([141.146.126.69]:28607) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bZLU5-0007hh-6u for bug-gnu-emacs@gnu.org; Mon, 15 Aug 2016 13:15:33 -0400 Original-Received: from aserv0022.oracle.com (aserv0022.oracle.com [141.146.126.234]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id u7FHFWm3000997 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 15 Aug 2016 17:15:32 GMT Original-Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserv0022.oracle.com (8.14.4/8.14.4) with ESMTP id u7FHFWVS025118 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 15 Aug 2016 17:15:32 GMT Original-Received: from abhmp0002.oracle.com (abhmp0002.oracle.com [141.146.116.8]) by aserv0121.oracle.com (8.13.8/8.13.8) with ESMTP id u7FHFVJh018823 for ; Mon, 15 Aug 2016 17:15:31 GMT X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.9 (901082) [OL 12.0.6753.5000 (x86)] X-Source-IP: aserv0022.oracle.com [141.146.126.234] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:122247 Archived-At: Enhancement request. Add an optional arg to `substitute-command-keys'. When present (non-nil) it would cause \{...} to include menu items. IOW, when `substitute-command-keys' makes use of `describe-bindings' (or equivalent), if the optional arg is non-nil then it would use `describe-buffer-bindings', in effect, passing it a non-nil MENUS argument. This gives callers of `substitute-command-keys' the possibility of including menu items in a listing of keymap bindings. In particular, it lets them show keys that are conditionally bound to commands in a given map - bindings that are defined using `menu-item' with a :filter - keys, such as this: (define-key some-map (kbd "some-keys") '(menu-item "" nil :filter (lambda (&rest _) (and (some-condition) #'some-command)))) Such conditional bindings are typically made for keyboard keys. But the fact that they make use of an Emacs-Lisp idiom that defines them using `menu-item' means that `substitute-command-keys' always filters them out. It should be possible to prevent filtering them out. (If things like `substitute-command-keys', `describe-bindings', and `describe-buffer-bindings' were defined in Lisp and not C, Lisp users could themselves take care of such a request. Please consider moving such things to Lisp, unless there is a real reason they need to be in C. I don't imagine that performance is a real reason in this case, nowadays.) In GNU Emacs 25.1.50.1 (i686-pc-mingw32) of 2015-12-10 Repository revision: 6148555ee5a3d0139ae517803718b3e0357933c7 Windowing system distributor 'Microsoft Corp.', version 6.1.7601 Configured using: 'configure --prefix=3D/c/Devel/emacs/snapshot/trunk --enable-checking=3Dye= s --enable-check-lisp-object-type --without-compress-install 'CFLAGS=3D-Og -ggdb3' LDFLAGS=3D-Lc:/Devel/emacs/lib 'CPPFLAGS=3D-DGC_MCHECK=3D1 -Ic:/Devel/emacs/include''