GNU bug report logs - #39564
28.0.50; read-key function do not display the prompt if called from read-from-minibuffer

Previous Next

Package: emacs;

Reported by: Ergus <spacibba <at> aol.com>

Date: Tue, 11 Feb 2020 14:51:01 UTC

Severity: normal

Found in version 28.0.50

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Matt Kramer <mccleetus <at> gmail.com>
Cc: 39564 <at> debbugs.gnu.org
Subject: bug#39564: 
Date: Sat, 29 Feb 2020 10:16:47 +0200
> From: Matt Kramer <mccleetus <at> gmail.com>
> Date: Fri, 28 Feb 2020 09:33:57 -0800
> 
> Code I used:
> 
> (defun make-lines (n)
>   (mapconcat #'number-to-string
>              (number-sequence 0 n) "\n"))
> 
> (let ((map (make-sparse-keymap)))
>   (define-key map (kbd "C-f") (lambda ()
>                                 (interactive)
>                                 (let ((inhibit-field-text-motion t))
>                                   (goto-char (point-min)))
>                                 (message "%S"
>                                          (read-key
>                                           (concat
>                                            (make-lines 10)
>                                            "\nTest2")))
>                                 (abort-recursive-edit)))
>   (read-from-minibuffer (concat (make-lines 10) "\nTest1: ") nil map))
> 
> With this code in the clipboard, I start emacs -Q (again, 27.0.60
> commit 75a9eee8b), and immediately hit the following sequence of keys:
> 
> C-y
> M-x eval-buffer RET
> C-f
> 
> The eval-buffer results are initially as expected. However, after
> hitting C-f, the minibuffer then becomes:
> 
> 0
> 1
> 2
> 3
> 4
> 5
> 6
> 7
> 8
> 9
> 10
> Test1:  [0
> 1
> 2
> 3
> 4
> 
> with point at the very beginning of the minibuffer (first 0).

Looks like the intended behavior for this code: the "[0 ..." part is
the text of the message displayed by the command bound to C-f; it is
enclosed in brackets to indicate that it is a message text separate
from the rest of the prompt.  This display of echo-area messages that
attempts not to overwrite the minibuffer prompt in an active
minibuffer is a new feature of Emacs 27.  By default, Emacs will not
let the mini-window grow enough to show the entire combined text of
the prompt and the message, but if you set max-mini-window-height to a
value 22 or greater, you will see this:

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  Test1:  [0
  1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  Test2]

which is what I would expect, given the code you presented.

Going back to the original report, what is the bug here?

Thanks.




This bug report was last modified 3 years and 94 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.