GNU bug report logs - #25054
25.1; bury-buffer makes bad choice of next buffer

Previous Next

Package: emacs;

Reported by: Francesco Potortì <pot <at> gnu.org>

Date: Mon, 28 Nov 2016 18:53:02 UTC

Severity: minor

Found in version 25.1

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

Bug is archived. No further changes may be made.

Full log


Message #23 received at 25054 <at> debbugs.gnu.org (full text, mbox):

From: Francesco Potortì <pot <at> gnu.org>
To: martin rudalics <rudalics <at> gmx.at>
Cc: 25054 <at> debbugs.gnu.org
Subject: Re: bug#25054: 25.1; bury-buffer makes bad choice of next buffer
Date: Tue, 06 Dec 2016 12:48:00 +0100
> > My main problem is with the *mail* buffer (I have mail-user-agent set to
> > 'sendmail-user-agent).  After I send mail, the *mail* buffer is buried,
> > but after a while it pops up.  I would expect that, being buried, it is
> > the last choice as the other buffer.  Apparently it is not.
>
>It is.  But the "other buffer" is not necessarily the one that will be
>shown in a window when that window's previous buffer is about getting
>buried or killed.
...
>(progn
>   (switch-to-buffer "a")
>   (switch-to-buffer "b")
>   (when (y-or-n-p "Bury b ? ")
>     (bury-buffer))
>   (while (y-or-n-p "Previous ? ")
>     (previous-buffer)))
>
>The loop in this scenario will eventually switch to "b" (because it has
>been already shown in the selected window) rather than to "*Messages*"
>(simply because it has never shown up in that window before).  We could
>invent an option to change that behavior, but so far you would be its
>only user.  And it's not even clear to me how to formulate that option.

I see, thanks for the explanation.

I definitely do not like that behaviour.  When I bury a buffer, I want
it to be the last choice for displaying a buffer in a window.  It worked
like that in Emacs 22 and it was okay for me.  I'd like to customise
that back.  In Emacs 22, if I am not wrong that amounted to just advise
switch-to-buffer and changing buffer-name-history before executing the
original code.  But by looking at the source code for switch-buffer in
buffer.c, it appears that wouldn't work any more.

Maybe I could write a piece of advise to switch-buffer or other-buffer
that plays with buffer predicates.

Or maybe I could try using the other_buffer_safely function in buffer.c
(but I don't know how to call it from elisp).

Can you suggest a way?




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

Previous Next


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