From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: owner@emacsbugs.donarmstrong.com (Emacs bug Tracking System) Newsgroups: gmane.emacs.bugs Subject: bug#3938: marked as done (23.0.96; regression: minibuffer-message interferes with C-u) Date: Tue, 28 Jul 2009 20:20:06 +0000 Message-ID: References: <81FEC5A6961B47B5BDF82CA5C33EC637@us.oracle.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----------=_1248812406-5675-0" X-Trace: ger.gmane.org 1248813490 4116 80.91.229.12 (28 Jul 2009 20:38:10 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 28 Jul 2009 20:38:10 +0000 (UTC) To: "Drew Adams" Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Jul 28 22:38:03 2009 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.50) id 1MVtQv-0001cI-Qz for geb-bug-gnu-emacs@m.gmane.org; Tue, 28 Jul 2009 22:38:02 +0200 Original-Received: from localhost ([127.0.0.1]:53242 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MVtQv-0006PE-8H for geb-bug-gnu-emacs@m.gmane.org; Tue, 28 Jul 2009 16:38:01 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MVtQZ-000620-8V for bug-gnu-emacs@gnu.org; Tue, 28 Jul 2009 16:37:39 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MVtQU-0005zi-7r for bug-gnu-emacs@gnu.org; Tue, 28 Jul 2009 16:37:38 -0400 Original-Received: from [199.232.76.173] (port=33737 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MVtQU-0005zZ-4K for bug-gnu-emacs@gnu.org; Tue, 28 Jul 2009 16:37:34 -0400 Original-Received: from rzlab.ucr.edu ([138.23.92.77]:46554) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MVtQT-0000d3-B8 for bug-gnu-emacs@gnu.org; Tue, 28 Jul 2009 16:37:33 -0400 Original-Received: from rzlab.ucr.edu (rzlab.ucr.edu [127.0.0.1]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n6SKbVSe009202; Tue, 28 Jul 2009 13:37:31 -0700 Original-Received: (from debbugs@localhost) by rzlab.ucr.edu (8.14.3/8.14.3/Submit) id n6SKK61P005741; Tue, 28 Jul 2009 13:20:06 -0700 X-Mailer: MIME-tools 5.427 (Entity 5.427) X-Loop: owner@emacsbugs.donarmstrong.com X-Emacs-PR-Message: closed 3938 X-Emacs-PR-Package: emacs X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list 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:29685 Archived-At: This is a multi-part message in MIME format... ------------=_1248812406-5675-0 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Your message dated Tue, 28 Jul 2009 13:14:19 -0700 with message-id <81FEC5A6961B47B5BDF82CA5C33EC637@us.oracle.com> and subject line bug#3938: 23.0.96; regression: minibuffer-message interfer= es with C-u has caused the Emacs bug report #3938, regarding 23.0.96; regression: minibuffer-message interferes with C-u to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@emacsbugs.donarmstrong.com immediately.) --=20 3938: http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=3D3938 Emacs Bug Tracking System Contact owner@emacsbugs.donarmstrong.com with problems ------------=_1248812406-5675-0 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by emacsbugs.donarmstrong.com; 26 Jul 2009 23:30:42 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-2.7 required=4.0 tests=AWL,FOURLA autolearn=no version=3.2.5-bugs.debian.org_2005_01_02 Received: from fencepost.gnu.org (fencepost.gnu.org [140.186.70.10]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n6QNUbBO010518 for ; Sun, 26 Jul 2009 16:30:38 -0700 Received: from mx10.gnu.org ([199.232.76.166]:35699) by fencepost.gnu.org with esmtp (Exim 4.67) (envelope-from ) id 1MVDAq-0008UN-JV for emacs-pretest-bug@gnu.org; Sun, 26 Jul 2009 19:30:36 -0400 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1MVDAo-0003wR-Vw for emacs-pretest-bug@gnu.org; Sun, 26 Jul 2009 19:30:36 -0400 Received: from mx20.gnu.org ([199.232.41.8]:50150) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MVDAo-0003w5-9d for emacs-pretest-bug@gnu.org; Sun, 26 Jul 2009 19:30:34 -0400 Received: from acsinet11.oracle.com ([141.146.126.233]) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MVDAm-0006pU-Rn for emacs-pretest-bug@gnu.org; Sun, 26 Jul 2009 19:30:33 -0400 Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227]) by acsinet11.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n6QNUlfh028919 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Sun, 26 Jul 2009 23:30:48 GMT Received: from abhmt008.oracle.com (abhmt008.oracle.com [141.146.116.17]) by acsinet15.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n6QNUdKa029554 for ; Sun, 26 Jul 2009 23:30:39 GMT Received: from dradamslap1 (/141.144.232.119) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sun, 26 Jul 2009 16:30:27 -0700 From: "Drew Adams" To: Subject: 23.0.96; regression: minibuffer-message interferes with C-u Date: Sun, 26 Jul 2009 16:30:44 -0700 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 Thread-Index: AcoOSRjW6imYTDf+S9qS78CueeQ0Pg== X-Source-IP: abhmt008.oracle.com [141.146.116.17] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A010206.4A6CE714.00DE:SCFSTAT5015188,ss=1,fgs=0 X-Detected-Operating-System: by mx20.gnu.org: GNU/Linux 2.6 (newer, 1) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) emacs -Q Eval these: (defun test-univ-arg () (interactive) (setq prefix-arg (list 4) universal-argument-num-events (length (this-command-keys))) (minibuffer-message "FOO") ; NO GOOD. OK ONLY IF THIS IS REMOVED (ensure-overriding-map-is-bound)) (defun test2 () (interactive) (describe-function '+)) (define-key minibuffer-local-completion-map "\C-f" 'test2) (define-key minibuffer-local-completion-map (vector 'remap 'universal-argument) 'test-univ-arg) Note that the definition of `test-univ-arg' is identical to the definition of `universal-argument', except for the addition of the call to `minibuffer-message'. 1. Now do this, without waiting for the 2-sec delay after C-u. That is, hit C-f immediately after C-u. M-x C-u C-f 2. Now do `M-x C-u C-f' again, this time waiting for the delay, so the minibuffer message `FOO' is no longer displayed, before hitting `C-f'. #2 has the correct behavior: the input event `C-f' interrupts the minibuffer message and immediately executes the `C-f' command (the particular command used is immaterial; I use `describe-function' just to easily see whether it is executed). In Emacs 23, #1 has this incorrect effect: After C-u, the minibuffer message FOO is erased, but the `C-f' is not picked up. You must repeat `C-f' a second time, to get it to be picked up. Note that if you hit C-f twice even very quickly, then the second `C-f' is picked up (but not the first). IOW, the problem doesn't seem to be that the delay has not passed. It seems to be that only the first input event is ignored if the delay has not expired. It's hard to hit C-f twice quickly, so I'm not certain about this, but it seems to be the case. In Emacs prior to Emacs 23, #1 also had the correct behavior of #2. IOW, this is a regression. In GNU Emacs 23.0.96.1 (i386-mingw-nt5.1.2600) of 2009-07-09 on SOFT-MJASON Windowing system distributor `Microsoft Corp.', version 5.1.2600 configured using `configure --with-gcc (3.4)' ------------=_1248812406-5675-0 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 3938-done) by emacsbugs.donarmstrong.com; 28 Jul 2009 20:14:29 +0000 X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02 (2008-06-10) on rzlab.ucr.edu X-Spam-Level: X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. X-Spam-Status: No, score=-4.2 required=4.0 tests=AWL,FVGT_m_MULTI_ODD, HAS_BUG_NUMBER autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02 Received: from rgminet11.oracle.com (rcsinet11.oracle.com [148.87.113.123]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n6SKEPAS003171 for <3938-done@emacsbugs.donarmstrong.com>; Tue, 28 Jul 2009 13:14:26 -0700 Received: from rgminet15.oracle.com (rcsinet15.oracle.com [148.87.113.117]) by rgminet11.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n6SKG8RW015228 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 28 Jul 2009 20:16:09 GMT Received: from abhmt001.oracle.com (abhmt001.oracle.com [141.146.116.10]) by rgminet15.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n6SKEHeb023771; Tue, 28 Jul 2009 20:14:18 GMT Received: from dradamslap1 (/130.35.178.194) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 28 Jul 2009 13:14:16 -0700 From: "Drew Adams" To: "'Chong Yidong'" Cc: <3938-done@emacsbugs.donarmstrong.com> References: <877hxsolnt.fsf@stupidchicken.com> Subject: bug#3938: 23.0.96; regression: minibuffer-message interferes with C-u Date: Tue, 28 Jul 2009 13:14:19 -0700 Message-ID: <81FEC5A6961B47B5BDF82CA5C33EC637@us.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <877hxsolnt.fsf@stupidchicken.com> Thread-Index: AcoPmsSGZjwgH8J9Sl6CvIOU3k7nJAAEIh+A X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 X-Source-IP: abhmt001.oracle.com [141.146.116.10] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A010205.4A6F5C19.0113:SCFSTAT5015188,ss=1,fgs=0 > The function `sit-for', which `minibuffer-message' uses, treats C-u > specially. It's easy to get your code to work; just put the call to > `minibuffer-message' after `ensure-overriding-map-is-bound': > > (defun test-univ-arg () > (interactive) > (setq prefix-arg (list 4) > universal-argument-num-events (length (this-command-keys))) > (ensure-overriding-map-is-bound) > (minibuffer-message "FOO")) Actually, I already had the call to `minibuffer-message' last, in my own code. I pared down my original code again, and discovered that the problem of the regression is elsewhere. (Note, BTW, that the definition of `sit-for' has not changed in Emacs 23 wrt Emacs 22, and this bug is a regression from Emacs 22.) emacs -Q (define-key minibuffer-local-must-match-map "\C-f" 'test2) (define-key minibuffer-local-must-match-map (vector 'remap 'universal-argument) 'test-univ-arg) (defun test2 () (interactive) (describe-function '+)) (defun test-univ-arg () (interactive) (setq prefix-arg (list 4) universal-argument-num-events (length (this-command-keys))) (my-ensure-overriding-map-is-bound) (minibuffer-message "FOO")) ;; Same as `ensure-overriding-map-is-bound', but with ;; `my-universal-argument-map' instead of `universal-argument-map'. (defun my-ensure-overriding-map-is-bound () (unless overriding-map-is-bound (setq saved-overriding-map overriding-terminal-local-map overriding-terminal-local-map my-universal-argument-map overriding-map-is-bound t))) ;; Exact copy of `universal-argument-map'. (defvar my-universal-argument-map (let ((map (make-sparse-keymap))) (define-key map [t] 'universal-argument-other-key) (define-key map (vector meta-prefix-char t) 'universal-argument-other-key) (define-key map [switch-frame] nil) (define-key map [?\C-u] 'universal-argument-more) (define-key map [?-] 'universal-argument-minus) (define-key map [?0] 'digit-argument) (define-key map [?1] 'digit-argument) (define-key map [?2] 'digit-argument) (define-key map [?3] 'digit-argument) (define-key map [?4] 'digit-argument) (define-key map [?5] 'digit-argument) (define-key map [?6] 'digit-argument) (define-key map [?7] 'digit-argument) (define-key map [?8] 'digit-argument) (define-key map [?9] 'digit-argument) (define-key map [kp-0] 'digit-argument) (define-key map [kp-1] 'digit-argument) (define-key map [kp-2] 'digit-argument) (define-key map [kp-3] 'digit-argument) (define-key map [kp-4] 'digit-argument) (define-key map [kp-5] 'digit-argument) (define-key map [kp-6] 'digit-argument) (define-key map [kp-7] 'digit-argument) (define-key map [kp-8] 'digit-argument) (define-key map [kp-9] 'digit-argument) (define-key map [kp-subtract] 'universal-argument-minus) map)) IOW, we use an exact copy of `universal-argument-map' instead of `universal-argument-map' itself. That's the only change from vanilla Emacs (the definition of `my-ensure-overriding-map-is-bound' just reflects the vanilla definition). Same instructions as before: M-x C-u C-f, hitting C-f right after C-u (no delay) vs waiting until the 2-sec delay for `minibuffer-message' has elapsed. Compare the same test using Emacs 22. With Emacs 23, the delay must elapse entirely - the user input event of hitting `C-f' does not seem to interrupt it (`sit-for' should be interrupted by an input event). So the effect, in Emacs 23, is that you need to hit `C-f' twice (or wait before hitting it). In Emacs 22, hitting `C-f' just once works immediately. In Emacs 23, the first `C-f' just has the effect of clearing "FOO" from the minibuffer. [Also, if instead of using `my-universal-argument-map' you use (copy-keymap universal-argument-map) the result is the same. Using `my-universal-argument-map' is a better test, since `copy-keymap' doesn't copy recursively.] ------------=_1248812406-5675-0--