Subject: Re: bug#33870: 27.0.50; xref-goto-xref not configurable

From: Juri Linkov <[email-masked]>
Date: Sun, 03 Feb 2019 22:22:32 +0200

>> And what to do when the future will require adding a third arg?
>> This is why better to avoid dotted pairs, and use a list like
>>
>>    (direction DIR WIN)
>
> OK.  Let's do that.

I'm trying to use your implementation of display-buffer-in-direction,
but with this patch:

diff --git a/lisp/files.el b/lisp/files.el
index 9948bd4a03..dac75fdb78 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -3396,7 +3396,7 @@ hack-local-variables-confirm
 
       ;; Display the buffer and read a choice.
       (save-window-excursion
-	(pop-to-buffer buf '(display-buffer--maybe-at-bottom))
+	(pop-to-buffer buf '(display-buffer-in-direction (direction bottom main)))
 	(let* ((exit-chars '(?y ?n ?\s ?\C-g ?\C-v))
 	       (prompt (format "Please type %s%s: "
 			       (if offer-save "y, n, or !" "y or n")

while visiting a file with Local Variables it fails with:

Debugger entered--Lisp error: (error "Cannot share edge from within live window #<window...")
  signal(error ("Cannot share edge from within live window #<window..."))
  error("Cannot share edge from within live window %s" #<window 6 on etc>)
  windows-sharing-edge(#<window 6 on etc> below t)
  display-buffer-in-direction(#<buffer *Local Variables*> ((direction bottom main)))
  display-buffer(#<buffer *Local Variables*> (display-buffer-in-direction (direction bottom main)))
  pop-to-buffer(#<buffer *Local Variables*> (display-buffer-in-direction (direction bottom main)))

Please help.