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

From: martin rudalics <[email-masked]>
Date: Mon, 04 Feb 2019 08:30:07 +0100

> 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)))

I attach a version which should handle this now.  I still can't get
used to a positional specification of direction and reference window
so ALIST now has to contain separate 'direction' and 'window' entries
as in

(pop-to-buffer buf '(display-buffer-in-direction (direction . bottom) (window . main)))

where the 'direction' entry is mandatory.

martin