unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: don@donarmstrong.com (Emacs bug Tracking System)
To: Chong Yidong <cyd@stupidchicken.com>
Subject: bug#640: marked as done (Forward: Buffer being killed not current in kill-buffer-hook )
Date: Wed, 24 Sep 2008 13:20:06 -0700	[thread overview]
Message-ID: <handler.640.D640.122228723222305.ackdone@emacsbugs.donarmstrong.com> (raw)
In-Reply-To: 874p64wvqb.wl%max@openchat.com

[-- Attachment #1: Type: text/plain, Size: 872 bytes --]


Your message dated Wed, 24 Sep 2008 16:14:17 -0400
with message-id <8763oluwrq.fsf@cyd.mit.edu>
and subject line Re: Buffer being killed not current in kill-buffer-hook 
has caused the Emacs bug report #640,
regarding Forward: Buffer being killed not current in kill-buffer-hook 
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact don@donarmstrong.com
immediately.)


-- 
640: http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=640
Emacs Bug Tracking System
Contact don@donarmstrong.com with problems

[-- Attachment #2: Type: message/rfc822, Size: 4944 bytes --]

[-- Attachment #2.1.1: Type: text/plain, Size: 110 bytes --]

I posted this to emacs-dev, but there was no response. This is still
happenning to me with latest CVS build.


[-- Attachment #2.1.2: Type: message/rfc822, Size: 2456 bytes --]

From: Max Mikhanosha <max@openchat.com>
To: emacs-devel@gnu.org
Subject: Buffer being killed not current in kill-buffer-hook
Date: Sat, 19 Jul 2008 16:29:25 -0400
Message-ID: <8763r1obx6.wl%max@openchat.com>

When using multi-tty emacsclient, the following piece of code demostrates the problem:

DISPLAY is unset, CVS Emacs started with --no-init-file

(require 'server)
(progn (setq server-name "test")
       (server-start))
(defun print-current-buffer ()
  (message "current-buffer=%s" (current-buffer)))
(add-hook 'kill-buffer-hook 'print-current-buffer)

Now from a different screen session, connect with emacsclient like so:
"lib-src/emacsclient -c -s test foo". New tty frame will be created. 
Immeditely kill the buffer, it will ask "Buffer has existing clients"
say "yes". emacsclient will disconnect from a server.

In the *Messages* buffer on the server frame:

When done with a buffer, type C-x #
(No files need saving)
current-buffer=*scratch*

All the code that uses kill-buffer-hook rightfully assumes that the
buffer being killed will be current buffer when called, as that is
what is stated in the kill-buffer-hook documentation. For example
saveplace does not work because of this.. ERC leaves a channel if 
unrelated buffer is killed on a different terminal, etc.

I had fixed this with the following patch, altho I don't know enough
about server.el logic to figure out if what it does is ok? Seems to
have fixed the bug and not broke anything else:

Index: lisp/server.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/server.el,v
retrieving revision 1.166
diff -u -b -r1.166 server.el
--- lisp/server.el	6 May 2008 07:57:49 -0000	1.166
+++ lisp/server.el	19 Jul 2008 20:28:26 -0000
@@ -1084,7 +1084,8 @@
 	  ;; tell it that it is done, and forget it entirely.
 	  (unless buffers
 	    (server-log "Close" proc)
-	    (server-delete-client proc)))))
+            (save-current-buffer 
+              (server-delete-client proc))))))
     (when (and (bufferp buffer) (buffer-name buffer))
       ;; We may or may not kill this buffer;
       ;; if we do, do not call server-buffer-done recursively


[-- Attachment #3: Type: message/rfc822, Size: 1302 bytes --]

From: Chong Yidong <cyd@stupidchicken.com>
To: Max Mikhanosha <max@openchat.com>
Cc: 640-done@emacsbugs.donarmstrong.com
Subject: Re: Buffer being killed not current in kill-buffer-hook
Date: Wed, 24 Sep 2008 16:14:17 -0400
Message-ID: <8763oluwrq.fsf@cyd.mit.edu>

> I posted this to emacs-dev, but there was no response. This is still
> happenning to me with latest CVS build.

Sorry for the delay.  I've just checked in a slightly more conservative
version of you patch (since I'm not sure it's correct to apply
save-current-buffer in all situations).  Thanks for the report and the
patch.


      reply	other threads:[~2008-09-24 20:20 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <8763r1obx6.wl%max@openchat.com>
2008-08-01 16:22 ` bug#640: Forward: Buffer being killed not current in kill-buffer-hook Max Mikhanosha
2008-09-24 20:20   ` Emacs bug Tracking System [this message]

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=handler.640.D640.122228723222305.ackdone@emacsbugs.donarmstrong.com \
    --to=don@donarmstrong.com \
    --cc=cyd@stupidchicken.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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).