[erc] buffer-file-truename vs. erc [was vs. info.el]
stephen at xemacs.org
stephen at xemacs.org
Tue Nov 14 04:20:41 EST 2006
[Adrian, since this affects ERC, too, would you please take a look at
this patch? It's correct in theory, but I don't know anything about
ERC.]
Nelson Ferreira writes:
> I am sorry, but should there have been a patch attached?
Yes; you should have received the resend by now. Very sorry about that!
> This has also happened to me in some ERC buffers, specially the ones
> where part of the history from logs were pulled out from the disk. I
> will try to remember if there were any more cases. Those 2 are
> certainly the ones I encounter repeatedly.
Thanks! I've taken a look at ERC. I have no idea what they think
they're doing here in erc-log.el:
;;;functionality referenced from erc.el
(defun erc-log-setup-logging ()
"Setup the buffer-local logging variables in the current buffer.
This function is destined to be run from `erc-connect-pre-hook'."
(when (erc-logging-enabled)
(auto-save-mode -1)
(setq buffer-offer-save t
buffer-file-name "")
;; code continues ...
The empty string looks very suspicious, I can't see how anything good
might come of it. I propose changing it to nil and setq'ing
buffer-file-truename to nil, too, to maintain the invariant. If that
doesn't work, you might need to change it to something like
(setq buffer-offer-save t
buffer-file-name (erc-current-logfile buffer)
buffer-file-truename (file-truename buffer-file-name))
or you could try
(setq buffer-offer-save t
buffer-file-name ""
buffer-file-truename (file-truename buffer-file-name))
but it all seems very hackish.
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/erc/ChangeLog,v
retrieving revision 1.40
diff -U0 -r1.40 ChangeLog
--- ChangeLog 2 May 2006 06:38:43 -0000 1.40
+++ ChangeLog 14 Nov 2006 09:02:44 -0000
@@ -0,0 +1,5 @@
+2006-11-14 Stephen J. Turnbull <stephen at xemacs.org>
+
+ * erc-dcc.el (erc-dcc-find-file,erc-log-setup-logging):
+ Maintain buffer-file-name invariant.
+
Index: erc-dcc.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/erc/erc-dcc.el,v
retrieving revision 1.9
diff -u -r1.9 erc-dcc.el
--- erc-dcc.el 19 Feb 2006 12:57:28 -0000 1.9
+++ erc-dcc.el 14 Nov 2006 09:02:50 -0000
@@ -776,7 +776,9 @@
(defun erc-dcc-find-file (file)
(with-current-buffer (generate-new-buffer (file-name-nondirectory file))
(insert-file-contents-literally file)
- (setq buffer-file-name file)
+ ;; XEmacs change: maintain invariant for truename vs. name.
+ (setq buffer-file-name file
+ buffer-file-truename (file-truename buffer-file-name))
(current-buffer)))
(defun erc-dcc-file-to-name (file)
Index: erc-log.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/erc/erc-log.el,v
retrieving revision 1.9
diff -u -r1.9 erc-log.el
--- erc-log.el 19 Feb 2006 12:57:29 -0000 1.9
+++ erc-log.el 14 Nov 2006 09:02:51 -0000
@@ -219,7 +219,8 @@
(when (erc-logging-enabled)
(auto-save-mode -1)
(setq buffer-offer-save t
- buffer-file-name "")
+ buffer-file-name nil
+ buffer-file-truename nil)
(cond ((boundp 'write-file-functions)
(set (make-local-variable 'write-file-functions)
'(erc-save-buffer-in-logs)))
More information about the XEmacs-Patches
mailing list