From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#23129: 25.1.50; Prefix key is not echoed during minibuffer completion Date: Mon, 28 Mar 2016 19:16:33 +0300 Message-ID: <83io06y3vi.fsf@gnu.org> References: <> <<83shzay6fd.fsf@gnu.org>> <5a83c42d-50c1-4217-b1dd-506814a7ed34@default> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1459181901 23662 80.91.229.3 (28 Mar 2016 16:18:21 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 28 Mar 2016 16:18:21 +0000 (UTC) Cc: rms@gnu.org, 23129@debbugs.gnu.org To: Drew Adams Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Mar 28 18:18:11 2016 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 1akZrm-0001zq-OY for geb-bug-gnu-emacs@m.gmane.org; Mon, 28 Mar 2016 18:18:10 +0200 Original-Received: from localhost ([::1]:41683 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1akZrl-0006GI-MS for geb-bug-gnu-emacs@m.gmane.org; Mon, 28 Mar 2016 12:18:09 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:33527) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1akZrh-0006GD-FY for bug-gnu-emacs@gnu.org; Mon, 28 Mar 2016 12:18:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1akZre-00085B-6S for bug-gnu-emacs@gnu.org; Mon, 28 Mar 2016 12:18:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:45105) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1akZre-000857-2y for bug-gnu-emacs@gnu.org; Mon, 28 Mar 2016 12:18:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1akZrd-0004cv-V5 for bug-gnu-emacs@gnu.org; Mon, 28 Mar 2016 12:18:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 28 Mar 2016 16:18:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 23129 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 23129-submit@debbugs.gnu.org id=B23129.145918183017725 (code B ref 23129); Mon, 28 Mar 2016 16:18:01 +0000 Original-Received: (at 23129) by debbugs.gnu.org; 28 Mar 2016 16:17:10 +0000 Original-Received: from localhost ([127.0.0.1]:42232 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1akZqo-0004bo-48 for submit@debbugs.gnu.org; Mon, 28 Mar 2016 12:17:10 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:42227) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1akZqm-0004bZ-Ch for 23129@debbugs.gnu.org; Mon, 28 Mar 2016 12:17:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1akZqe-0007Rt-0t for 23129@debbugs.gnu.org; Mon, 28 Mar 2016 12:17:03 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:57213) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1akZqd-0007Ro-T5; Mon, 28 Mar 2016 12:16:59 -0400 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4758 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1akZqW-0007h6-5F; Mon, 28 Mar 2016 12:16:52 -0400 In-reply-to: <5a83c42d-50c1-4217-b1dd-506814a7ed34@default> (message from Drew Adams on Mon, 28 Mar 2016 09:00:35 -0700 (PDT)) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] 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-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:115656 Archived-At: > Date: Mon, 28 Mar 2016 09:00:35 -0700 (PDT) > From: Drew Adams > Cc: 23129@debbugs.gnu.org > > > Does the following simple recipe exhibit the same behavior? > > (If not, please tell why not.) > > > > emacs -Q > > C-x C-f C-x > > > > "C-x C-f" causes the prompt showing the current directory; typing > > "C-x" afterwards has no visible effect, whereas you expect it to echo > > the usual "C-x-". Right? > > Is `C-x' a prefix key in `minibuffer-local-filename-completion-map' > at that point? What's the significance of minibuffer-local-filename-completion-map for the purposes of this issue? > > How do you mean "should"? > > How do I mean "should"? Should. It is helpful for a user > (as well as consistent) to echo the prefix keys s?he hits. There's also "should" as in "it did this yesterday or the last year". > > AFAICT, this is a deliberate feature: > > Do you have evidence for that? I've read the code. It does this explicitly and purposefully, there's no mistake about that. > Yes, I know the bug is longstanding. And as long as we're > guessing, I guess it is an oversight. We are not guessing, see below. The function echo_now is the one that echoes the prefix keys; look at the conditions (and the commentary, for that matter). I hope Richard will be able to shed some light on this. The code is very old, it was present in the initial commit in Jan 1992: /* If in middle of key sequence and minibuffer not active, ^^^^^^^^^^^^^^^^^^^^^ start echoing if enough time elapses. */ if (minibuf_level == 0 <<<<<<<<<<<<<<<<<<<<<<<<<<<<< && !end_time && !current_kboard->immediate_echo && (this_command_key_count > 0 || !NILP (call0 (Qinternal_echo_keystrokes_prefix))) && ! noninteractive && echo_keystrokes_p () && (/* No message. */ NILP (echo_area_buffer[0]) /* Or empty message. */ || (BUF_BEG (XBUFFER (echo_area_buffer[0])) == BUF_Z (XBUFFER (echo_area_buffer[0]))) /* Or already echoing from same kboard. */ || (echo_kboard && ok_to_echo_at_next_pause == echo_kboard) /* Or not echoing before and echoing allowed. */ || (!echo_kboard && ok_to_echo_at_next_pause))) { /* After a mouse event, start echoing right away. This is because we are probably about to display a menu, and we don't want to delay before doing so. */ if (EVENT_HAS_PARAMETERS (prev_event)) echo_now (); else { Lisp_Object tem0; save_getcjmp (save_jump); restore_getcjmp (local_getcjmp); tem0 = sit_for (Vecho_keystrokes, 1, 1); restore_getcjmp (save_jump); if (EQ (tem0, Qt) && ! CONSP (Vunread_command_events)) echo_now (); } }