bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#5185: 23.1; Elusive *cvs* buffer.


From: Stefan Kangas
Subject: bug#5185: 23.1; Elusive *cvs* buffer.
Date: Sun, 6 Oct 2019 07:14:12 +0200

Sergei Organov <osv@javad.com> writes:

> This bug is not in fact 23.1-specific. It is there, say, in 22.2.1 as
> well.
>
> The cvs-update command from PCL-CVS somehow manages to create and show
> *cvs* buffer that is not recorded in the buffer-list frame
> parameter. I.e., the buffer *cvs*, when first created and made current
> by cvs-update, becomes current in the only visible window in the only
> frame, yet it is not there in the frame parameter 'buffer-list. This
> does not happen when there are multiple windows visible in the frame. As
> cvs-update doesn't seem to touch 'buffer-list directly, there should be
> a bug in core emacs functions somewhere, I believe.
>
> To reproduce the bug one can invoke `cvs-update' over some
> CVS-controlled directory when single window is visible, then open
> another frame, switch to *scratch* there, and evaluate
>
>   (frame-parameter (next-frame) 'buffer-list)
>
> The result won't contain *cvs* buffer visible in the original frame.
> Switching back to original frame and then once again to the new frame
> will put *cvs* buffer into the list (evaluate the above once again to
> see it). You can see this in the automatically recorded "Recent
> messages:" at the end of this bug-report:
>
> (#<buffer frame-parameter.el> #<buffer  *Minibuf-1*> #<buffer *scratch*>)
> (#<buffer *cvs*> #<buffer frame-parameter.el> #<buffer  *Minibuf-1*> #<buffer 
> *scratch*>)
>
> are these two consecutive results of evaluation with switching back and
> force between those two frames in-between.
>
> Even switching to mini-buffer will record *cvs* buffer into 'buffer-list
> parameter, so one can't even use "M-x eval-expression" to see the
> problem.
>
> This bug, for example, breaks the following function that is intended
> to always switch between two recent buffers:
>
>   (defun switch-to-previous-buffer ()
>     "Switch to the previous buffer."
>     (interactive)
>     (switch-to-buffer (other-buffer (current-buffer))))
>
> When this function is assigned to a key, e.g.:
>
>   (global-set-key [(control meta ?l)] 'switch-to-previous-buffer)
>
> then pressing this key twice will restore the original buffer, except
> in case of such elusive *cvs* buffer, as first invocation of this
> function makes *cvs* the last buffer in the list of buffers, and the
> next invocation doesn't select it back.

That was 10 years ago, and unfortunately went unanswered at the time.
Are you still seeing this on a modern version of Emacs?  I can't
reproduce the issue here.

Best regards,
Stefan Kangas





reply via email to

[Prev in Thread] Current Thread [Next in Thread]