Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defun kill-buffer-always (&optional buffer)
- "Murderface a buffer, don't listen to nobody, son!"
- (interactive "b")
- (let ((buffer (or buffer (current-buffer)))
- (kill-buffer-query-functions nil))
- (kill-buffer buffer)))
- (defun erc-all-kill (&optional prefix)
- "Kill all buffers in erc-mode. With prefix, kill-buffer-query-functions is preserved"
- (interactive "P")
- (flet ((kill-buffer-p (b) (with-current-buffer b (eq major-mode seek-mode))))
- (let* ((seek-mode 'erc-mode)
- (kill-buffer-query-functions (if prefix kill-buffer-query-functions '()))
- (killed (loop for buffer in (buffer-list)
- when (kill-buffer-p buffer)
- collect (buffer-name buffer)
- and do
- (kill-buffer buffer))))
- (message "Killed: %s buffers: %s" (length killed) killed)
- killed)))
- (defadvice erc-server-reconnect (after erc-znc-rename last nil activate)
- "Maybe rename the buffer we create"
- (let* ((wants-name (and (local-variable-p 'znc-buffer-name (erc-server-buffer))
- (buffer-local-value 'znc-buffer-name (erc-server-buffer))))
- (current (erc-server-buffer))
- (returning ad-return-value))
- (if wants-name
- (progn
- (ignore-errors (kill-buffer-always wants-name))
- (with-current-buffer returning
- (erc-znc-set-name wants-name)
- (rename-buffer wants-name))
- (get-buffer wants-name))
- returning)))
- (defun erc-znc-set-name (znc-name &optional buffer)
- "Set the znc-buffer-name buffer local to znc-name in buffer or (current-buffer)"
- (let ((buffer (get-buffer (or buffer (current-buffer)))))
- (with-current-buffer buffer
- (make-local-variable 'znc-buffer-name)
- (setf znc-buffer-name znc-name))))
- (defun erc-znc (network user pass)
- (let ((buffer (format "*irc-%s*" network))
- (erc-buffer (erc :server "localhost"
- :port 12533
- :nick "Muta"
- :password (format "%s:%s" user pass))))
- (when (get-buffer buffer)
- (kill-buffer-always buffer))
- (erc-znc-set-name buffer erc-buffer)
- (with-current-buffer erc-buffer
- (rename-buffer buffer))))
Add Comment
Please, Sign In to add comment