From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Don March Newsgroups: gmane.emacs.bugs Subject: bug#7541: 24.0.50; define-key error message for non-prefix M-[char] Date: Fri, 3 Dec 2010 11:35:03 -0500 Message-ID: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=90e6ba6e86540148c704968420b5 X-Trace: dough.gmane.org 1291396531 1993 80.91.229.12 (3 Dec 2010 17:15:31 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 3 Dec 2010 17:15:31 +0000 (UTC) To: 7541@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Dec 03 18:15:27 2010 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1POZEE-0006ei-Fj for geb-bug-gnu-emacs@m.gmane.org; Fri, 03 Dec 2010 18:15:26 +0100 Original-Received: from localhost ([127.0.0.1]:45473 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1POZED-0006X4-QD for geb-bug-gnu-emacs@m.gmane.org; Fri, 03 Dec 2010 12:15:25 -0500 Original-Received: from [140.186.70.92] (port=58623 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1POZE1-0006Fh-Mn for bug-gnu-emacs@gnu.org; Fri, 03 Dec 2010 12:15:21 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1POZE0-0006hn-Ev for bug-gnu-emacs@gnu.org; Fri, 03 Dec 2010 12:15:13 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:48367) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1POZE0-0006hS-AC for bug-gnu-emacs@gnu.org; Fri, 03 Dec 2010 12:15:12 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1POYko-0004Dr-DL; Fri, 03 Dec 2010 11:45:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Don March Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 03 Dec 2010 16:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 7541 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.129139465016156 (code B ref -1); Fri, 03 Dec 2010 16:45:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 3 Dec 2010 16:44:10 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1POYjx-0004CX-Rm for submit@debbugs.gnu.org; Fri, 03 Dec 2010 11:44:10 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1POYW4-0003sx-Bi for submit@debbugs.gnu.org; Fri, 03 Dec 2010 11:29:49 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1POYbc-0001Wj-1v for submit@debbugs.gnu.org; Fri, 03 Dec 2010 11:35:33 -0500 Original-Received: from lists.gnu.org ([199.232.76.165]:43723) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1POYbb-0001WW-Tw for submit@debbugs.gnu.org; Fri, 03 Dec 2010 11:35:32 -0500 Original-Received: from [140.186.70.92] (port=56885 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1POYba-0002k1-KG for bug-gnu-emacs@gnu.org; Fri, 03 Dec 2010 11:35:31 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1POYbZ-0001VM-9i for bug-gnu-emacs@gnu.org; Fri, 03 Dec 2010 11:35:30 -0500 Original-Received: from cl28.gs01.gridserver.com ([64.13.192.37]:59983) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1POYbZ-0001UP-1U for bug-gnu-emacs@gnu.org; Fri, 03 Dec 2010 11:35:29 -0500 Original-Received: from mail-yx0-f169.google.com ([209.85.213.169]:53712) by cl28.gs01.gridserver.com with esmtpsa (TLS-1.0:RSA_ARCFOUR_MD5:16) (Exim 4.63) (envelope-from ) id 1POYbV-0005VO-8G for bug-gnu-emacs@gnu.org; Fri, 03 Dec 2010 08:35:26 -0800 Original-Received: by yxl31 with SMTP id 31so19522257yxl.0 for ; Fri, 03 Dec 2010 08:35:23 -0800 (PST) Original-Received: by 10.42.179.9 with SMTP id bo9mr508448icb.183.1291394123646; Fri, 03 Dec 2010 08:35:23 -0800 (PST) Original-Received: by 10.42.164.199 with HTTP; Fri, 3 Dec 2010 08:35:03 -0800 (PST) X-Authenticated-User: 14129 don@ohspite.net 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, 2) X-Mailman-Approved-At: Fri, 03 Dec 2010 11:44:08 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Fri, 03 Dec 2010 11:45:02 -0500 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) 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: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:42109 Archived-At: --90e6ba6e86540148c704968420b5 Content-Type: text/plain; charset=ISO-8859-1 Typing and evaluating the following code in the scratch buffer results in an (appropriate) error, but with an incorrect message: (setq new-kmap (make-sparse-keymap)) (define-key new-kmap [?a 27] 'command) (define-key new-kmap [?a ?\M-x] 'command) ;; Debugger entered--Lisp error: ;; (error "Key sequence a M-x starts with non-prefix key a") ;; (should be: ;; "Key sequence a M-x starts with non-prefix key a ESC") The code in keymap.c loops over the characters in the key sequence and says to report everything before the current character as the non-prefix key. But that misses the case when M-x is converted into [27 ?x] and it's the `27' part that causes the error. Please see the attached patch. A few other cases that show the problem: (setq a (make-sparse-keymap)) (define-key a [27] 'command) (define-key a [?\M-x] 'command) ;; Debugger entered--Lisp error: ;; (error "Key sequence M-x starts with non-prefix key ") ;; (should be: ;; "Key sequence M-x starts with non-prefix key ESC") (setq new-kmap (make-sparse-keymap)) (define-key new-kmap [?a 27] 'command) (define-key new-kmap [?a 27 ?x] 'command) ;; Debugger entered--Lisp error: ;; (error "Key sequence a M-x starts with non-prefix key a ESC") ;; (error text is correct) (setq new-kmap (make-sparse-keymap)) (define-key new-kmap [?a] 'command) (define-key new-kmap [?a ?\M-x] 'command) ;; Debugger entered--Lisp error: ;; (error "Key sequence a M-x starts with non-prefix key a") ;; (error text is correct) In GNU Emacs 24.0.50.1 (i686-pc-linux-gnu, GTK+ Version 2.22.0) of 2010-12-03 on lappy Windowing system distributor `The X.Org Foundation', version 11.0.10900000 --90e6ba6e86540148c704968420b5 Content-Type: application/octet-stream; name=define-key_diff Content-Disposition: attachment; filename=define-key_diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_gh9ao6y70 PT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9DaGFuZ2VMb2cnCioqKiBzcmMvQ2hhbmdlTG9nCTIwMTAt MTItMDIgMDk6MzM6NTcgKzAwMDAKLS0tIHNyYy9DaGFuZ2VMb2cJMjAxMC0xMi0wMyAxNjoxNTo0 MSArMDAwMAoqKioqKioqKioqKioqKioKKioqIDEsMyAqKioqCi0tLSAxLDggLS0tLQorIDIwMTAt MTItMDMgIERvbiBNYXJjaCAgPGRvbkBvaHNwaXRlLm5ldD4KKyAKKyAJKiBrZXltYXAuYyAoRmRl ZmluZV9rZXkpOiBGaXggbm9uLXByZWZpeCBrZXkgZXJyb3IgbWVzc2FnZSB3aGVuCisgCWxhc3Qg Y2hhcmFjdGVyIE0tW2NoYXJdIGlzIHRyYW5zbGF0ZWQgdG8gRVNDIFtjaGFyXS4KKyAKICAyMDEw LTEyLTAyICBKYW4gRGrDpHJ2ICA8amFuLmguZEBzd2lwbmV0LnNlPgogIAogIAkqIG5zbWVudS5t ICh1cGRhdGVfZnJhbWVfdG9vbF9iYXIpOiBSZW1vdmUgTlNMb2cgb24gaW52YWxpZCBpbWFnZS4K Cj09PSBtb2RpZmllZCBmaWxlICdzcmMva2V5bWFwLmMnCioqKiBzcmMva2V5bWFwLmMJMjAxMC0w OC0wOSAwOTozNToyMSArMDAwMAotLS0gc3JjL2tleW1hcC5jCTIwMTAtMTItMDMgMDg6MDU6MTEg KzAwMDAKKioqKioqKioqKioqKioqIGJpbmRpbmcgS0VZIHRvIERFRiBpcyBhZGRlZCBhdCB0aGUg ZnJvbnQKKioqIDEyMzQsMTI0NiAqKioqCiAgCiAgICAgICAga2V5bWFwID0gZ2V0X2tleW1hcCAo Y21kLCAwLCAxKTsKICAgICAgICBpZiAoIUNPTlNQIChrZXltYXApKQohIAkvKiBXZSBtdXN0IHVz ZSBGa2V5X2Rlc2NyaXB0aW9uIHJhdGhlciB0aGFuIGp1c3QgcGFzc2luZyBrZXkgdG8KISAJICAg ZXJyb3I7IGtleSBtaWdodCBiZSBhIHZlY3Rvciwgbm90IGEgc3RyaW5nLiAgKi8KISAJZXJyb3Ig KCJLZXkgc2VxdWVuY2UgJXMgc3RhcnRzIHdpdGggbm9uLXByZWZpeCBrZXkgJXMiLAohIAkgICAg ICAgU0RBVEEgKEZrZXlfZGVzY3JpcHRpb24gKGtleSwgUW5pbCkpLAohIAkgICAgICAgU0RBVEEg KEZrZXlfZGVzY3JpcHRpb24gKEZzdWJzdHJpbmcgKGtleSwgbWFrZV9udW1iZXIgKDApLAohIAkJ CQkJCSAgICBtYWtlX251bWJlciAoaWR4KSksCiEgCQkJCQlRbmlsKSkpOwogICAgICB9CiAgfQog IAotLS0gMTIzNCwxMjYwIC0tLS0KICAKICAgICAgICBrZXltYXAgPSBnZXRfa2V5bWFwIChjbWQs IDAsIDEpOwogICAgICAgIGlmICghQ09OU1AgKGtleW1hcCkpCiEgCXsKISAJICBjaGFyIHRyYWls aW5nX2VzY1s1XTsKISAJICBpZiAoYyA9PSBtZXRhX3ByZWZpeF9jaGFyICYmIG1ldGl6ZWQpCiEg CSAgICB7CiEgCSAgICAgIGlmIChpZHggPT0gMCkKISAJCXN0cmNweSh0cmFpbGluZ19lc2MsICJF U0MiKTsKISAJICAgICAgZWxzZQohIAkJc3RyY3B5KHRyYWlsaW5nX2VzYywgIiBFU0MiKTsKISAJ ICAgIH0KISAJICBlbHNlCiEgCSAgICAgIHN0cmNweSh0cmFpbGluZ19lc2MsICIiKTsgCiEgCiEg CSAgLyogV2UgbXVzdCB1c2UgRmtleV9kZXNjcmlwdGlvbiByYXRoZXIgdGhhbiBqdXN0IHBhc3Np bmcga2V5IHRvCiEgCSAgICAgZXJyb3I7IGtleSBtaWdodCBiZSBhIHZlY3Rvciwgbm90IGEgc3Ry aW5nLiAgKi8KISAJICBlcnJvciAoIktleSBzZXF1ZW5jZSAlcyBzdGFydHMgd2l0aCBub24tcHJl Zml4IGtleSAlcyVzIiwKISAJCSBTREFUQSAoRmtleV9kZXNjcmlwdGlvbiAoa2V5LCBRbmlsKSks CiEgCQkgU0RBVEEgKEZrZXlfZGVzY3JpcHRpb24gKEZzdWJzdHJpbmcgKGtleSwgbWFrZV9udW1i ZXIgKDApLAohIAkJCQkJCSAgICAgIG1ha2VfbnVtYmVyIChpZHgpKSwKISAJCQkJCSAgUW5pbCkp LAohIAkJIHRyYWlsaW5nX2VzYyk7CQkgCiEgCX0KICAgICAgfQogIH0KICAKCg== --90e6ba6e86540148c704968420b5--