[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Erc-commit] [commit][emacs22] Try to fix bug with /reconnect and a kill
From: |
mwolson |
Subject: |
[Erc-commit] [commit][emacs22] Try to fix bug with /reconnect and a killed server buffer |
Date: |
Sun, 14 Oct 2007 00:49:07 -0400 |
commit 75373f6d2bfb8a2245d4848a402bc6e42f6784ea
Author: Michael W. Olson <address@hidden>
Date: Mon Aug 13 21:54:48 2007 -0400
Try to fix bug with /reconnect and a killed server buffer
* erc-backend.el (erc-server-reconnect): If the server buffer has been
killed, use the current buffer instead. If the current buffer is not
an ERC buffer, give an error. This fixes a bug when /reconnect is run
from a channel buffer whose server buffer has been deleted. Thanks to
jbms for the report.
* erc.el (erc-cmd-RECONNECT): Use simpler logic, and use buffer-live-p
rather than bufferp.
diff --git a/ChangeLog b/ChangeLog
index 4c602d6..50b8dd4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,16 @@
2007-08-14 Michael Olson <address@hidden>
+ * erc-backend.el (erc-server-reconnect): If the server buffer has
+ been killed, use the current buffer instead. If the current
+ buffer is not an ERC buffer, give an error. This fixes a bug when
+ /reconnect is run from a channel buffer whose server buffer has
+ been deleted. Thanks to jbms for the report.
+
* erc.el (erc-command-no-process-p): Fix bug: the return value of
erc-extract-command-from-line is a list rather than a single
symbol. Thanks to jbms for the report.
+ (erc-cmd-RECONNECT): Use simpler logic, and use buffer-live-p
+ rather than bufferp.
2007-08-12 Michael Olson <address@hidden>
diff --git a/erc-backend.el b/erc-backend.el
index d0ec812..75bef89 100644
--- a/erc-backend.el
+++ b/erc-backend.el
@@ -550,11 +550,12 @@ We will store server variables in the buffer given by
BUFFER."
(defun erc-server-reconnect ()
"Reestablish the current IRC connection.
Make sure you are in an ERC buffer when running this."
- (let ((server (erc-server-buffer)))
- (unless (and server
- (buffer-live-p server))
- (error "Couldn't switch to server buffer"))
- (with-current-buffer server
+ (let ((buffer (erc-server-buffer)))
+ (unless (buffer-live-p buffer)
+ (if (eq major-mode 'erc-mode)
+ (error "Reconnect must be run from an ERC buffer")
+ (setq buffer (current-buffer))))
+ (with-current-buffer buffer
(erc-update-mode-line)
(erc-set-active-buffer (current-buffer))
(setq erc-server-last-sent-time 0)
diff --git a/erc.el b/erc.el
index fd709ed..5d29ace 100644
--- a/erc.el
+++ b/erc.el
@@ -3256,9 +3256,11 @@ the message given by REASON."
(defun erc-cmd-RECONNECT ()
"Try to reconnect to the current IRC server."
- (let ((buffer (or (erc-server-buffer) (current-buffer)))
+ (let ((buffer (erc-server-buffer))
(process nil))
- (with-current-buffer (if (bufferp buffer) buffer (current-buffer))
+ (unless (buffer-live-p buffer)
+ (setq buffer (current-buffer)))
+ (with-current-buffer buffer
(setq erc-server-quitting nil)
(setq erc-server-reconnecting t)
(setq erc-server-reconnect-count 0)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Erc-commit] [commit][emacs22] Try to fix bug with /reconnect and a killed server buffer,
mwolson <=