Subject: bug#60015: 29.0.60; multi-line messages truncated in non-selected minibuffer

From: Gregory Heytings <[email-masked]>
Date: Thu, 15 Dec 2022 16:44:29 +0000

>
> Here is a better test case.  Please evaluate:
>
> (progn
>  (keymap-global-set "C-c C-c" (lambda () (interactive) (message "abc\ndef")))
>  nil)
>
> Then the bug can be reproduced with just these keys:
>
> M-x
> C-x o
> C-c C-c
>
> Only the top line is displayed in the minibuffer.
>

Is this not something that can be solved in set-minibuffer-message, like 
this:

diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 6e42296e7ba..c10a6401180 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -817,6 +817,11 @@ set-minibuffer-message
                            ;; Make sure we can put-text-property.
                            (copy-sequence message)
                          (concat " [" message "]")))
+        (let ((window-lines (window-height minibuf-window))
+              (message-lines (length (split-string message "\n"))))
+          (when (> message-lines window-lines)
+            (with-selected-window minibuf-window
+              (enlarge-window (- message-lines window-lines)))))
          (unless (or (null minibuffer-message-properties)
                      ;; Don't overwrite the face properties the caller has set
                      (text-properties-at 0 message))