comparison 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
comparison
equal deleted inserted replaced
75091:2036fbeca1f2 75092:e566d4fc8dd2
1670 (interactive "P") 1670 (interactive "P")
1671 (eval-when-compile 1671 (eval-when-compile
1672 (require 'iswitchb)) 1672 (require 'iswitchb))
1673 (let ((enabled iswitchb-mode)) 1673 (let ((enabled iswitchb-mode))
1674 (or enabled (iswitchb-mode 1)) 1674 (or enabled (iswitchb-mode 1))
1675 (let ((iswitchb-make-buflist-hook 1675 (unwind-protect
1676 (lambda () 1676 (let ((iswitchb-make-buflist-hook
1677 (setq iswitchb-temp-buflist 1677 (lambda ()
1678 (mapcar 'buffer-name 1678 (setq iswitchb-temp-buflist
1679 (erc-buffer-list 1679 (mapcar 'buffer-name
1680 nil 1680 (erc-buffer-list
1681 (when arg erc-server-process))))))) 1681 nil
1682 (switch-to-buffer 1682 (when arg erc-server-process)))))))
1683 (iswitchb-read-buffer 1683 (switch-to-buffer
1684 "Switch-to: " 1684 (iswitchb-read-buffer
1685 (if (boundp 'erc-modified-channels-alist) 1685 "Switch-to: "
1686 (buffer-name (caar (last erc-modified-channels-alist))) 1686 (if (boundp 'erc-modified-channels-alist)
1687 nil) 1687 (buffer-name (caar (last erc-modified-channels-alist)))
1688 t))) 1688 nil)
1689 (or enabled (iswitchb-mode -1)))) 1689 t)))
1690 (or enabled (iswitchb-mode -1)))))
1690 1691
1691 (defun erc-channel-list (proc) 1692 (defun erc-channel-list (proc)
1692 "Return a list of channel buffers. 1693 "Return a list of channel buffers.
1693 PROC is the process for the server connection. If PROC is nil, return 1694 PROC is the process for the server connection. If PROC is nil, return
1694 all channel buffers on all servers." 1695 all channel buffers on all servers."
1886 (string= server erc-session-server)) 1887 (string= server erc-session-server))
1887 erc-server-announced-name)) 1888 erc-server-announced-name))
1888 (connected-p (unless connect erc-server-connected)) 1889 (connected-p (unless connect erc-server-connected))
1889 (buffer (erc-get-buffer-create server port channel)) 1890 (buffer (erc-get-buffer-create server port channel))
1890 (old-buffer (current-buffer)) 1891 (old-buffer (current-buffer))
1891 (old-point (point)) 1892 old-point
1892 continued-session) 1893 continued-session)
1893 (erc-update-modules) 1894 (erc-update-modules)
1894 (set-buffer buffer) 1895 (set-buffer buffer)
1896 (setq old-point (point))
1895 (erc-mode) 1897 (erc-mode)
1896 (setq erc-server-announced-name server-announced-name) 1898 (setq erc-server-announced-name server-announced-name)
1897 (setq erc-server-connected connected-p) 1899 (setq erc-server-connected connected-p)
1898 ;; connection parameters 1900 ;; connection parameters
1899 (setq erc-server-process process) 1901 (setq erc-server-process process)
3162 (erc-server-process-alive))) 3164 (erc-server-process-alive)))
3163 (erc-cmd-QUIT reason))) 3165 (erc-cmd-QUIT reason)))
3164 3166
3165 (defalias 'erc-cmd-GQ 'erc-cmd-GQUIT) 3167 (defalias 'erc-cmd-GQ 'erc-cmd-GQUIT)
3166 (put 'erc-cmd-GQUIT 'do-not-parse-args t) 3168 (put 'erc-cmd-GQUIT 'do-not-parse-args t)
3169
3170 (defun erc-cmd-RECONNECT ()
3171 "Try to reconnect to the current IRC server."
3172 (setq erc-server-reconnect-count 0)
3173 (erc-server-reconnect)
3174 t)
3167 3175
3168 (defun erc-cmd-SERVER (server) 3176 (defun erc-cmd-SERVER (server)
3169 "Connect to SERVER, leaving existing connection intact." 3177 "Connect to SERVER, leaving existing connection intact."
3170 (erc-log (format "cmd: SERVER: %s" server)) 3178 (erc-log (format "cmd: SERVER: %s" server))
3171 (condition-case nil 3179 (condition-case nil