The following message is a courtesy copy of an article
that has been posted to comp.emacs.xemacs as well.
>>>> "Peter" == Peter Arius
<peter.arius(a)erln.gepas.de> writes:
>>>> "mh" == michael habbert
<Michael.Habbert(a)ixpoint.de> writes:
mh> hi,
mh> I'm unable to exit xemacs 21.4.3
mh> # bind (standard-output stack-trace-on-signal debug-on-signal
mh> # stack-trace-on-error debug-on-error)
mh> buffer-modified-p(#<killed buffer>)
mh> shadow-save-todo-file()
mh> # bind (arg)
mh> save-buffers-kill-emacs()
mh> delete-frame(#<mswindows-frame "emacs" 0x88d> t)
mh> eval((delete-frame #<mswindows-frame "emacs" 0x88d> t))
mh> # (condition-case ... . error)
mh> # (catch top-level ...)
Peter> Hi all,
Peter> This happened once to me too, but somehow I got around
Peter> submitting a bug report. Now, my 0.02 EUR:
Peter> You were using shadowfile.el, maybe knowingly or not.
Peter> Shadowfile.el has the IMHO bad habit of activating itself
Yes, this, right out of shadowfile.el, is a no-no:
(if noninteractive
(add-hook 'after-init-hook 'shadow-initialize)
(shadow-initialize))
I suggest this should just be taken out and the commentary in the file
should instruct the user to perform 'shadow-initialize.
The unconditional global setting of
(setq find-file-visit-truename t) ; makes life easier with symbolic links
is a bad thing too.
Don't know whether this could be made buffer-local.
It should at least be put inside 'shadow-initialize.
Your changes are good also I think, if they work well.
For XEmacs shadowfile is part of following package:
(package-get-package-provider 'shadowfile)
(net-utils "1.23")
(package-get-info-find-package package-get-base 'net-utils)
((standards-version 1.1 version "1.23" author-version "21.5b3" date
"2001-09-28" build-date "2001-09-29" maintainer "XEmacs
Development Team <xemacs-beta(a)xemacs.org>" distribution xemacs priority low
category "standard" dump nil description "Miscellaneous Networking
Utilities." filename "net-utils-1.23-pkg.tar.gz" md5sum
"3677407752d20aa6f72be5d497eae0c8" size 119855 provides (ilisp-browse-cltl2
emacsbug feedmail metamail net-utils rcompile shadowfile webjump webster-www) requires (w3
efs mail-lib xemacs-base) type single))
shows XEmacs Development Team as maintainer.
You may want to send your patch there.
If you're very sure your patch is correct, you may also send it to
xemacs-patches, but check out
http://www.xemacs.org/Develop/index.html
first, if necessary.
Best regards,
Adrian
Peter> when you just load the library, and this can easily happen
Peter> when you browse the Options->Customize menu.
Peter> Shadowfile.el creates two buffers, ".shadow" and
Peter> ".shadow_todo". If you kill ".shadow_todo" (maybe
because
Peter> you do not know what it is good for), you'll get stuck in
Peter> `save-buffers-kill-emacs', because this tries
Peter> `shadow-save-todo-file', which fails if the buffer has been
Peter> killed.
Peter> The following patch fixes the problem (I hope in the right
Peter> way, I have not investigated very deeply). It inserts some
Peter> `buffer-live-p' calls to check for killed buffers.
Peter> Probably, there are better ways to make shadowfile more
Peter> fault-tolerant.
Peter> Cheers,
Peter> Peter
Peter> --- shadowfile.el.orig Wed Jan 14 07:27:23 1998
Peter> +++ shadowfile.el Thu Feb 7 16:47:52 2002
Peter> @@ -712,7 +712,7 @@
Peter> (shadow-invalidate-hashtable)
Peter> (if shadow-info-file
Peter> (save-excursion
Peter> - (if (not shadow-info-buffer)
Peter> + (or (buffer-live-p shadow-info-buffer)
Peter> (setq shadow-info-buffer (find-file-noselect shadow-info-file)))
Peter> (set-buffer shadow-info-buffer)
Peter> (delete-region (point-min) (point-max))
Peter> @@ -724,7 +724,7 @@
Peter> "Write out information to shadow-todo-file.
Peter> With nonnil argument also saves the buffer."
Peter> (save-excursion
Peter> - (if (not shadow-todo-buffer)
Peter> + (or (buffer-live-p shadow-todo-buffer)
Peter> (setq shadow-todo-buffer (find-file-noselect shadow-todo-file)))
Peter> (set-buffer shadow-todo-buffer)
Peter> (delete-region (point-min) (point-max))
Peter> @@ -732,7 +732,8 @@
Peter> (if save (shadow-save-todo-file))))
Peter> (defun shadow-save-todo-file ()
Peter> - (if (and shadow-todo-buffer (buffer-modified-p shadow-todo-buffer))
Peter> + (if (and (buffer-live-p shadow-todo-buffer)
Peter> + (buffer-modified-p shadow-todo-buffer))
Peter> (save-excursion
Peter> (set-buffer shadow-todo-buffer)
Peter> (condition-case nil ; have to continue even in case of
Peter> --
Peter> Peter Arius, Software Process Improvement
Peter> method park>Software AG Wetterkreuz 19a, 91058 Erlangen, Germany
Peter> Tel. +49-9131-97206-301 mailto:Peter.Arius@methodpark.de
Peter> Fax +49-9131-97206-222
http://www.methodpark.de
--
Adrian Aichner
mailto:adrian@xemacs.org
http://www.xemacs.org/