From xemacs-m  Thu Mar 27 18:58:45 1997
Received: from altair.xemacs.org (steve@xemacs.miranova.com [206.190.83.19])
	by xemacs.org (8.8.5/8.8.5) with ESMTP id SAA28820
	for <xemacs-beta@xemacs.org>; Thu, 27 Mar 1997 18:58:44 -0600 (CST)
Received: (from steve@localhost)
	by altair.xemacs.org (8.8.5/8.8.5) id RAA17740;
	Thu, 27 Mar 1997 17:11:27 -0800
Mail-Copies-To: never
To: xemacs-beta@xemacs.org
Subject: Re: XEmacs crash (efs-related)
References: <199703271307.OAA03894@atusel63.alcatel.at> <rvwwqt6nt1.fsf@sdnp5.ucsd.edu> <m2d8slc87w.fsf@altair.xemacs.org> <rvvi6d6irv.fsf@sdnp5.ucsd.edu>
X-Url: http://www.miranova.com/%7Esteve/
X-Face: #!T9!#9s-3o8)*uHlX{Ug[xW7E7Wr!*L46-OxqMu\xz23v|R9q}lH?cRS{rCNe^'[`^sr5"
 f8*@r4ipO6Jl!:Ccq<xoV[Qz2u8<8-+Vwf2gzJ44lf_/y9OaQ`@#Q65{U4/TC)i2`~/M&QI$X>p:9I
 OSS'2{-)-4wBnVeg0S\O4Al@)uC[pD|+
X-Attribution: sb
From: Steven L Baur <steve@miranova.com>
In-Reply-To: David Moore's message of 27 Mar 1997 15:02:12 -0800
Mime-Version: 1.0 (generated by tm-edit 7.106)
Content-Type: text/plain; charset=US-ASCII
Date: 27 Mar 1997 17:11:25 -0800
Message-ID: <m2u3lwq0qq.fsf@altair.xemacs.org>
Lines: 50
X-Mailer: Gnus v5.4.37/XEmacs 20.1(beta10)

[1]
David Moore writes:

> As it is now, if you load dired to look at just one directory, 5 days
> later you'll still be paying quite large penalties to open local files
> (can we say NNML, boys and girls?  i knew you could).

There should already be code to handle this.  The function dired-advertise
is called when a dired buffer is created.  Among its side effects is to
add the buffer name to a global variable dired-buffers, and add the evil
dired "." file-name-handler.  Dired installs a kill-buffer-hook that
is supposed to arrange a call to dired-unadvertise which will (is
supposed to) remove the "." when all dired buffers are destroyed.

For whatever reason this doesn't work.  Here's a sequence using
20.1-b10 to demonstrate the problem.

O.K.  Let's start with the magical incantation no good bug report is
without ...

xemacs -q -no-site-file
;; Evaluate the following in *scratch*
file-name-handler-alist
(("^/[^/:]+:" . remote-path-file-handler-function))
C-x 4 f /tmp
;; Evaluate the following two variables in *scratch*
file-name-handler-alist
(("." . dired-handler-fn) ("^/[^/:]+:" . remote-path-file-handler-function))
dired-buffers
(("/tmp/" . #<buffer "tmp">))
;; Evaluate the following in `Dired: tmp'
M-: kill-buffer-hook
(dired-unadvertise-current-buffer)
;; Now in `Dired: tmp'
C-x k RET
;; Evaluate the following in *scratch*
dired-buffers
nil
file-name-handler-alist
(("." . dired-handler-fn) ("^/[^/:]+:" . remote-path-file-handler-function))

Uh oh.  This is a bug.

I don't think we need Yet Another Variable, I think this bug must be
fixed.

[1]  This isn't EFS bashing, really.
-- 
steve@miranova.com baur
Unsolicited commercial e-mail will be billed at $250/message.

