# HG changeset patch # User Miles Bader # Date 1165977391 0 # Node ID e6b28ccae7d8c4b35a7371eac5239cdf45c019ec # Parent 6ee41fdd69ffc68e6e7abea05116cd9287d97706 erc-iswitchb: Temporarily enable iswitchb mode * erc.el: (erc-iswitchb): Temporarily enable iswitchb mode if it isn't active already, instead of leaving it on. Revision: emacs@sv.gnu.org/emacs--devo--0--patch-555 Creator: Michael Olson diff -r 6ee41fdd69ff -r e6b28ccae7d8 lisp/erc/ChangeLog --- a/lisp/erc/ChangeLog Wed Dec 13 01:13:58 2006 +0000 +++ b/lisp/erc/ChangeLog Wed Dec 13 02:36:31 2006 +0000 @@ -1,3 +1,8 @@ +2006-12-13 Leo + + * erc.el (erc-iswitchb): Temporarily enable iswitchb mode if it + isn't active already, instead of leaving it on. + 2006-12-10 Juanma Barranquero * erc-ezbounce.el (erc-ezb-init-session-list): Doc fix. diff -r 6ee41fdd69ff -r e6b28ccae7d8 lisp/erc/erc.el --- a/lisp/erc/erc.el Wed Dec 13 01:13:58 2006 +0000 +++ b/lisp/erc/erc.el Wed Dec 13 02:36:31 2006 +0000 @@ -1668,22 +1668,25 @@ Due to some yet unresolved reason, global function `iswitchb-mode' needs to be active for this function to work." (interactive "P") - (eval-and-compile + (eval-when-compile (require 'iswitchb)) - (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)))) + (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)))) (defun erc-channel-list (proc) "Return a list of channel buffers.