all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Stephan Stahl" <stahl@eos.franken.de>
Cc: Francis Litterio <franl@world.std.com>, emacs-devel@gnu.org
Subject: Re: CVS Emacs list-buffer-noselect calls set-window-buffer, displays every buffer briefly!
Date: Fri, 3 Sep 2004 08:27:23 +0200 (CEST)	[thread overview]
Message-ID: <51975.217.194.34.123.1094192843.squirrel@wwws.franken.de> (raw)
In-Reply-To: <jwvhdqgh08m.fsf-monnier+emacs@gnu.org>

Hi Stefan, Francis.

Stefan Monnier said:

>>>> (set-window-buffer (selected-window) buffer)
>>>> once for every buffer while building the buffer menu.  On my Windows
>>>> XP
>>>> machine, this makes Emacs briefely display every buffer for a fraction
>>>
>>> Isn't it a bug that a redisplay would happen in that loop?
>>> Which function in that loop lets redisplay happen?
>
>> It's definitely set-window-buffer, because when I remove the call to
>> that function, the symptom goes away.

That line in list-buffer-noselect was introduced by a patch from me.
Revision 1.67: (list-buffers-noselect): Append the buffer's process status
to its mode name.

If it is removed the following code in buff-menu.el will not work correctly:
mode (progn
       (set-window-buffer (selected-window) buffer)
       (concat (format-mode-line mode-name)
               (if mode-line-process
                   (format-mode-line mode-line-process))))
                   file (buffer-file-name)))

format-mode-line will only work correctly if it is called while the buffer
is selected. A way to reproduce the bug is: remove that line. start two
shells. kill one of them and do C-x C-b. Now the added information about
the process status is not correct. If you do C-x C-b from the running
shell both are shown with ":run". From the killed shell both will show
":exit [0]".
In fact that will be that case for all buffers with a process..

> It might be, but it's not necessarily the case: in Emacs, redisplay is
> a separate operation from "changes to the buffer or the window layout".
> `set-window-buffer' changes the window-layout which means it changes "what
> will be displayed at next redisplay" but it shouldn't call
> redisplay itself.
>
> My question is not directly related to your problem, in the sense that
> I think your patch is OK (except it should add a comment explaining why we
> removed the call to set-window-buffer), but I think that your problem also
> exposed another bug in the C code.

I tested my patch on both Debian GNU/Linux and WXP.  Maybe i did not look
close enough to notice that bug. I think we should try to find it and only
if that fails revert my patch..

Stephan
-- 
Stephan Stahl

  reply	other threads:[~2004-09-03  6:27 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-02 18:59 CVS Emacs list-buffer-noselect calls set-window-buffer, displays every buffer briefly! Francis Litterio
2004-09-02 19:57 ` Stefan Monnier
2004-09-02 20:07   ` Francis Litterio
2004-09-02 20:48     ` Stefan Monnier
2004-09-03  6:27       ` Stephan Stahl [this message]
2004-09-03 11:49         ` Francis Litterio
2004-09-04  3:28           ` Richard Stallman
2004-09-03 18:54         ` Kevin Rodgers
2004-09-04  8:42           ` Stephan Stahl
2004-09-04 19:40             ` Francis Litterio
2004-09-04 22:12           ` Richard Stallman
2004-09-03 19:15       ` Francis Litterio
  -- strict thread matches above, loose matches on Subject: below --
2004-09-05  5:12 Richard Stallman
2004-09-07 15:42 ` Francis Litterio
2004-09-08  0:22   ` Richard Stallman
2004-09-08 14:36 ` Francis Litterio
2004-09-09  4:02   ` Richard Stallman
2004-09-09 15:46     ` Francis Litterio
2004-09-08 15:02 ` Francis Litterio
2004-09-08 16:20   ` Kevin Rodgers
2004-09-08 18:21     ` Francis Litterio
2004-09-09  4:03       ` Richard Stallman
2004-09-09  8:23       ` Stephan Stahl
2004-09-09 15:41         ` Francis Litterio
2004-09-09 16:13           ` Stephan Stahl
2004-09-09 15:45         ` Richard Stallman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51975.217.194.34.123.1094192843.squirrel@wwws.franken.de \
    --to=stahl@eos.franken.de \
    --cc=emacs-devel@gnu.org \
    --cc=franl@world.std.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.