From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Barry OReilly Newsgroups: gmane.emacs.bugs Subject: bug#12022: [PATCH] Unable to use anonymous functions for Key Translations, Date: Sat, 11 Aug 2012 22:45:47 -0400 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=20cf307ca5380b677f04c7089336 X-Trace: dough.gmane.org 1344739606 19006 80.91.229.3 (12 Aug 2012 02:46:46 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 12 Aug 2012 02:46:46 +0000 (UTC) To: 12022@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Aug 12 04:46:47 2012 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1T0OCU-0008WF-7Q for geb-bug-gnu-emacs@m.gmane.org; Sun, 12 Aug 2012 04:46:46 +0200 Original-Received: from localhost ([::1]:34920 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T0OCT-0004qF-2k for geb-bug-gnu-emacs@m.gmane.org; Sat, 11 Aug 2012 22:46:45 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:52506) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T0OCP-0004py-F6 for bug-gnu-emacs@gnu.org; Sat, 11 Aug 2012 22:46:42 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T0OCM-0000KF-Kw for bug-gnu-emacs@gnu.org; Sat, 11 Aug 2012 22:46:41 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:40743) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T0OCM-0000K8-FE for bug-gnu-emacs@gnu.org; Sat, 11 Aug 2012 22:46:38 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1T0OKU-00036C-Ad for bug-gnu-emacs@gnu.org; Sat, 11 Aug 2012 22:55:02 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: Resent-From: Barry OReilly Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 12 Aug 2012 02:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 12022 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.134474006311861 (code B ref -1); Sun, 12 Aug 2012 02:55:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 12 Aug 2012 02:54:23 +0000 Original-Received: from localhost ([127.0.0.1]:50289 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1T0OJr-00035F-15 for submit@debbugs.gnu.org; Sat, 11 Aug 2012 22:54:23 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:46254) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1T0OJm-000356-S7 for submit@debbugs.gnu.org; Sat, 11 Aug 2012 22:54:20 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T0OBd-0008Co-76 for submit@debbugs.gnu.org; Sat, 11 Aug 2012 22:45:54 -0400 Original-Received: from lists.gnu.org ([208.118.235.17]:44496) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T0OBd-0008Ck-2m for submit@debbugs.gnu.org; Sat, 11 Aug 2012 22:45:53 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:52294) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T0OBb-0004pH-Iz for bug-gnu-emacs@gnu.org; Sat, 11 Aug 2012 22:45:52 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T0OBY-0008CQ-NE for bug-gnu-emacs@gnu.org; Sat, 11 Aug 2012 22:45:51 -0400 Original-Received: from mail-vc0-f169.google.com ([209.85.220.169]:52043) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T0OBY-0008CL-HI for bug-gnu-emacs@gnu.org; Sat, 11 Aug 2012 22:45:48 -0400 Original-Received: by vcbfl10 with SMTP id fl10so3026310vcb.0 for ; Sat, 11 Aug 2012 19:45:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=ekqq0F/2qd+dJGvbSDRvLfoRHV6PYhIYTwL52GZUCLY=; b=MFJllykzhmTOXM+4CI9jxQ+TIlAHq/0yWNBfNDfVZddV9t0F6gBx7on9fyQNbxJHGX w5Mr/VAgqq+3xGUZRoXmFd5bPelHGK9A0t7C0iN3pBZakLMlroij0qwHsTMBdK5hUoLA sif/gQ/joD6XfwuwtK1Xl+Kcf4Zba7C5LMs+4FLma1uYCkU4/zWW3euaykJpfKwVfFBa rg0zFeSEO4weFm2t+pXMo2NWKN23g88lz7MLTEziAn3af0D9oCGAPdX87ZfWiuM6ti+R sPnQweuH5bTt1LX69jcrom+gKiGPRkAFnuoYkWgGzm/F9JDqmwX2dXpv5tR6Ko+qR+SM enOg== Original-Received: by 10.52.21.174 with SMTP id w14mr5206432vde.24.1344739547506; Sat, 11 Aug 2012 19:45:47 -0700 (PDT) Original-Received: by 10.58.219.225 with HTTP; Sat, 11 Aug 2012 19:45:47 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.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-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:63059 Archived-At: --20cf307ca5380b677f04c7089336 Content-Type: multipart/alternative; boundary=20cf307ca5380b677b04c7089334 --20cf307ca5380b677b04c7089334 Content-Type: text/plain; charset=ISO-8859-1 > Using an anonymous function to translate keys as described in the Elisp manual at http://www.gnu.org/software/emacs/manual/html_node/elisp/Translation-Keymaps.htmldoes not work as expected. > > Using a named function to map C-e to C-c, the Key Translation is successful: > (progn (fset 'foo (lambda (prompt) (kbd "C-c"))) > (define-key key-translation-map (kbd "C-e") 'foo)) > > Using an anonymous function for another keymap binds C-e to the lambda-defined command. > (define-key global-map > (kbd "C-e") > (lambda () (interactive) (message "Inside C-e's lambda"))) > > But using an anonymous function for key-translation-map does not change behavior of inputting C-e: > (define-key key-translation-map > (kbd "C-e") > (lambda (prompt) (kbd "C-c"))) > > I find no reason why the last Elisp shouldn't define a Key Translation. The Elisp manual section on Anonymous Functions states "Anonymous functions are valid wherever function names are." ( http://www.gnu.org/software/emacs/manual/html_node/elisp/Anonymous-Functions.html) Hi, I found where the definition of a key translation is called, and made a patch. The quoted test case works correctly now. Is the change ok? --20cf307ca5380b677b04c7089334 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable > Using an anonymous function to translate keys as described in the Elis= p manual at http://www.gnu.org/software/emacs/manual/htm= l_node/elisp/Translation-Keymaps.html does not work as expected.
>
> Using a named function to map C-e to C-c, the Key Translation= is successful:
>=A0=A0 (progn (fset 'foo (lambda (prompt) (kbd &= quot;C-c")))
>=A0=A0=A0=A0=A0=A0=A0=A0=A0 (define-key key-transl= ation-map (kbd "C-e") 'foo))
>=A0=A0=A0=A0=A0=A0=A0=A0
> Using an anonymous function for anoth= er keymap binds C-e to the lambda-defined command.
>=A0=A0 (define-ke= y global-map
>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (kbd "C= -e")
>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (lambda () (int= eractive) (message "Inside C-e's lambda")))
>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0
> But using an anonymous funct= ion for key-translation-map does not change behavior of inputting C-e:
&= gt;=A0=A0 (define-key key-translation-map
>=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 (kbd "C-e")
>=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 (lambda (prompt) (kbd "C-c")))
>
> I find no reason why the last Elisp shouldn't define a Ke= y Translation.=A0 The Elisp manual section on Anonymous Functions states &q= uot;Anonymous functions are valid wherever function names are."=A0 ( <= a href=3D"http://www.gnu.org/software/emacs/manual/html_node/elisp/Anonymou= s-Functions.html">http://www.gnu.org/software/emacs/manual/html_node/elisp/= Anonymous-Functions.html )

Hi,
I found where the definition of a key translation is called, and= made a patch.=A0 The quoted test case works correctly now.=A0 Is the chang= e ok?

--20cf307ca5380b677b04c7089334-- --20cf307ca5380b677f04c7089336 Content-Type: text/plain; charset=US-ASCII; name="lambdaKeyTranslation.txt" Content-Disposition: attachment; filename="lambdaKeyTranslation.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h5rj35k10 IyBCYXphYXIgbWVyZ2UgZGlyZWN0aXZlIGZvcm1hdCAyIChCYXphYXIgMC45MCkKIyByZXZpc2lv bl9pZDogZ3VuZGFldGlhcG9AZ21haWwuY29tLTIwMTIwODEyMDIyMzU4LTloZjM4czN5cXJuZ213 ajAKIyB0YXJnZXRfYnJhbmNoOiBienI6Ly9ienIuc2F2YW5uYWguZ251Lm9yZy9lbWFjcy90cnVu ay8KIyB0ZXN0YW1lbnRfc2hhMTogOTdhYzdkMzk2Y2ZjYmY2OTJlOGU4OGRmNDI1ODllY2JhMGZj OGM3MAojIHRpbWVzdGFtcDogMjAxMi0wOC0xMSAyMjoyNDowMyAtMDQwMAojIGJhc2VfcmV2aXNp b25faWQ6IGphc29uckBnbnUub3JnLTIwMTIwODExMTQ1MDI4LWF4MXFhcm42ejBtajVndHIKIyAK IyBCZWdpbiBwYXRjaAo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL2tleWJvYXJkLmMnCi0tLSBzcmMv a2V5Ym9hcmQuYwkyMDEyLTA4LTA4IDE1OjUzOjUyICswMDAwCisrKyBzcmMva2V5Ym9hcmQuYwky MDEyLTA4LTEyIDAyOjIzOjU4ICswMDAwCkBAIC04ODM3LDcgKzg4MzcsOCBAQAogICAvKiBJZiB0 aGUga2V5bWFwIGdpdmVzIGEgZnVuY3Rpb24sIG5vdCBhbgogICAgICBhcnJheSwgdGhlbiBjYWxs IHRoZSBmdW5jdGlvbiB3aXRoIG9uZSBhcmcgYW5kIHVzZQogICAgICBpdHMgdmFsdWUgaW5zdGVh ZC4gICovCi0gIGlmIChTWU1CT0xQIChuZXh0KSAmJiAhTklMUCAoRmZib3VuZHAgKG5leHQpKSAm JiBkb19mdW5jYWxsKQorICBpZiAoKFNZTUJPTFAgKG5leHQpICYmICFOSUxQIChGZmJvdW5kcCAo bmV4dCkpIHx8IEZVTkNUSU9OUChuZXh0KSkKKyAgICAgICYmIGRvX2Z1bmNhbGwpCiAgICAgewog ICAgICAgTGlzcF9PYmplY3QgdGVtOwogICAgICAgdGVtID0gbmV4dDsKCiMgQmVnaW4gYnVuZGxl Ckl5QkNZWHBoWVhJZ2NtVjJhWE5wYjI0Z1luVnVaR3hsSUhZMENpTUtRbHBvT1RGQldTWlRXV3A0 cjVNQUFYeGZnQkFRY2VQLzkzc24KM2lDLy8vLzBVQU44OGRGZTlxQUFOSlQxTnBEUTBCb0QwZ2FB YU5IcUdReU5HbnFBMHBNaHRQVXhDYlNBQUFBQUFBQUVFazlOSTlKawowQVpNSUFEUUdnQmdqVEVU RWthZXBvd05RRElBQUFBWkFhYUFrb0poQUUwYUUyaVpLYjFKcCtxZU5KcVBVQTBhZWs4b1Q5Y0ZS MVhBCld0aUNCQkcwQUFhaVpxTUdscEJBNHp1eHFHUi9hNElDTW5NUEtXWFVrUmtLSnZ3ek54ZGU3 SFJjWnl2U2lpSVFOTmFlMjZ0NHd0WmcKSVFROFI1ZWpUbXd6WjliT21iV0gyMy9EQmY0SHFLZ2tn NVMvM0phOW1VYzFlbFNHRlV1MlhxVUMrUm00Y3pGUFlrUDZ0RjBURS9nMApSZEFtbTBKeWFPYkp2 Y2U2cUkxTlRZOHZuME1UVG41YkZlcHF0aWhGNHJoRy8wYnBma2NRVFN2YmNJaktCc3Nxb1ZtSThl SXlRRHBDCmRJcU0veFB6WlpNYUJCNExXbUNKQ2J1RmU4YzlNTG92RHl6ME9teFh5VmkwUGF5MkFz UjFXNTlkbllLK2RVOGFXbTQ0aXVxWk1sbkYKTmRNYW43YUlha3pJY25xQ2FSTERLVkNzSjBOaEUy bEFGM2d3dzlsV3ZGUGV4bXFtVDl0Um9yMlJMaEpvTWVTTFJLRWpIVXV3SU15Uwp3VjdDeWVjQktK Q1RpRW9FRzFnYU15OWo3cXIyMGt5c2dMQmxnMlNvVjZaTWpjYlJTbEJ0MDlMelU5Y3lDR3dRSE1K SU9ZNExBQ0ZpClR4YUxPMG05YVVJSHVtbHdSS0FYRUFrZ01QSjQ1V0c0RHpTcVd1TTlCNUV3bytH dmN5M0w5ZkNZQ0NJNFRyQndNWWZmZTlQU3JyU2wKWDNCOXlYcFY1WVlRelpCS25GV0k4MXY4MVlx L05QMTVhTVR4OHA4V1lRRGJQeGJnSVhEQlRyV0pRNk85VEpzcG5SVXlLc2hGVW04dApnV2hTWkpn bU9jcm5KVHIwR0hBNHdseHVYQXZrYXJLaDhmMC9mT0VEbnYxV00rRGJaaDhmMk5QM3dXR3FsUTBN enZ5OXBVVGF6WjZ0CkpuY21MNGF0UGJvejFsU1VndVVWZ0ZFTXkvSVhkYU9PYTR1L2psejE5OHpj U1ZoOXVmRFN3cVBkc01jZzFvWjdKU0V3TVY5REVaVloKM0dZTzFDN2NFek1zWWt5end4VEg0N1N2 UWxrcVlFTjRWK2VGN3NBaWNnMXUrUC9DNDJVS2F2SjZidG14bVFWN2txZ3RCelFpNTYxRwpIdjR2 a3ZCTG9CbXBHaUIzNmVhbDFqRW1LVkJOTUxxNHNvQmdEOXlkQVhiUkRzVVVOeFJGaXBCcWZ3MnpY eVM0OTZzM29KaDA3RTA0ClVGSWRRclZUbFpWczdMVzVhMk1UUzJPbEtuS0Z5NkxhS0d0UFVndHVx Z21waUo3N1NJT253Y29MekZKOXo0UW8xTlY5cDFGUmJHczcKR1Y3QVpCYXAySy9sU1RRLzZxRFdO SzJUa2JJWHpTd3BNNlBuS29LMDNnbXhrMVlkcWFHRzlSU3RqUzNvb3E0SGNCWnFsWHFnV2lrcgpj MGExVDZpOFZHOG85OGYvRjNKRk9GQ1Fhbml2a3c9PQo= --20cf307ca5380b677f04c7089336--