diff options
author | Vincent Ambo <vincent@spotify.com> | 2013-07-08T14·55+0200 |
---|---|---|
committer | Vincent Ambo <vincent@spotify.com> | 2013-07-08T14·55+0200 |
commit | 0ebbf64fd1e42e69de29d5d49ffcedbf110c83dd (patch) | |
tree | 2faebec792fe1a5168f560f21eec184b7bf59258 /emacs.d | |
parent | 74d252df97ccee6b407aa79d0d763090346b3b14 (diff) |
Emacs: Added a function to reconnect rcirc
Diffstat (limited to 'emacs.d')
-rw-r--r-- | emacs.d/init-functions.el | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/emacs.d/init-functions.el b/emacs.d/init-functions.el index de68ab71f546..3572cca69b7a 100644 --- a/emacs.d/init-functions.el +++ b/emacs.d/init-functions.el @@ -63,3 +63,28 @@ (insert prefix) (dotimes (_ (- 80 col (length prefix) (length postfix))) (insert "u")) (insert postfix))) + +;; Reconnect rcirc +(eval-after-load 'rcirc + '(defun-rcirc-command reconnect (arg) + "Reconnect the server process." + (interactive "i") + (unless process + (error "There's no process for this target")) + (let* ((server (car (process-contact process))) + (port (process-contact process :service)) + (nick (rcirc-nick process)) + channels query-buffers) + (dolist (buf (buffer-list)) + (with-current-buffer buf + (when (eq process (rcirc-buffer-process)) + (remove-hook 'change-major-mode-hook + 'rcirc-change-major-mode-hook) + (if (rcirc-channel-p rcirc-target) + (setq channels (cons rcirc-target channels)) + (setq query-buffers (cons buf query-buffers)))))) + (delete-process process) + (rcirc-connect server port nick + rcirc-default-user-name + rcirc-default-full-name + channels)))) |