Mercurial > emacs
diff lisp/erc/erc.el @ 75092:e566d4fc8dd2
Update from erc--emacs--22
Highlights:
- New /RECONNECT command.
- Improve default method for auto-identify to nickserv.
- Fix another erc-iswitchb bug.
- Fix reconnect lockup (defaulting to twice before giving up).
- Fix reconnect on ban.
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-587
Creator: Michael Olson <mwolson@gnu.org>
author | Miles Bader <miles@gnu.org> |
---|---|
date | Fri, 05 Jan 2007 02:09:07 +0000 |
parents | e6b28ccae7d8 |
children | f45c5edf0be4 |
line wrap: on
line diff
--- a/lisp/erc/erc.el Thu Jan 04 22:14:36 2007 +0000 +++ b/lisp/erc/erc.el Fri Jan 05 02:09:07 2007 +0000 @@ -1672,21 +1672,22 @@ (require 'iswitchb)) (let ((enabled iswitchb-mode)) (or enabled (iswitchb-mode 1)) - (let ((iswitchb-make-buflist-hook - (lambda () - (setq iswitchb-temp-buflist - (mapcar 'buffer-name - (erc-buffer-list - nil - (when arg erc-server-process))))))) - (switch-to-buffer - (iswitchb-read-buffer - "Switch-to: " - (if (boundp 'erc-modified-channels-alist) - (buffer-name (caar (last erc-modified-channels-alist))) - nil) - t))) - (or enabled (iswitchb-mode -1)))) + (unwind-protect + (let ((iswitchb-make-buflist-hook + (lambda () + (setq iswitchb-temp-buflist + (mapcar 'buffer-name + (erc-buffer-list + nil + (when arg erc-server-process))))))) + (switch-to-buffer + (iswitchb-read-buffer + "Switch-to: " + (if (boundp 'erc-modified-channels-alist) + (buffer-name (caar (last erc-modified-channels-alist))) + nil) + t))) + (or enabled (iswitchb-mode -1))))) (defun erc-channel-list (proc) "Return a list of channel buffers. @@ -1888,10 +1889,11 @@ (connected-p (unless connect erc-server-connected)) (buffer (erc-get-buffer-create server port channel)) (old-buffer (current-buffer)) - (old-point (point)) + old-point continued-session) (erc-update-modules) (set-buffer buffer) + (setq old-point (point)) (erc-mode) (setq erc-server-announced-name server-announced-name) (setq erc-server-connected connected-p) @@ -3165,6 +3167,12 @@ (defalias 'erc-cmd-GQ 'erc-cmd-GQUIT) (put 'erc-cmd-GQUIT 'do-not-parse-args t) +(defun erc-cmd-RECONNECT () + "Try to reconnect to the current IRC server." + (setq erc-server-reconnect-count 0) + (erc-server-reconnect) + t) + (defun erc-cmd-SERVER (server) "Connect to SERVER, leaving existing connection intact." (erc-log (format "cmd: SERVER: %s" server))