From 46bc08eb4938e6f83468b1ed37a2b29e1242408d Mon Sep 17 00:00:00 2001 From: Kashish Sharma Date: Wed, 28 Sep 2016 19:01:27 +0530 Subject: [PATCH] irc - revamp getting, switching to server buffer --- contrapunctus/cp-irc.el | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/contrapunctus/cp-irc.el b/contrapunctus/cp-irc.el index 162c135..84d8856 100644 --- a/contrapunctus/cp-irc.el +++ b/contrapunctus/cp-irc.el @@ -76,12 +76,24 @@ value for `erc-generate-log-file-name-function'." (add-hook 'erc-mode-hook (lambda () (setq erc-ignore-list '("*!csmr@kapsi.fi"))))) (autoload 'erc "erc" "ERC." t) +;; erc-server-buffer-p is the first ERC function called by +;; cp-erc-freenode, which is what I use to start ERC +(autoload 'erc-server-buffer-p "erc" "ERC." t) -(defun cp-erc-irc-buffer () - (cp-get-buffer-regexp "^irc")) +;; (let ((results (remove-if-not (lambda (a) +;; (string-match regexp a)) +;; (mapcar #'buffer-name (buffer-list))))) +;; (if all results (car results))) +;; (defun cp-erc-server-buffer () +;; (cp-get-buffer-regexp "^irc")) + +(defun cp-erc-server-buffer (&optional all) + (let ((results (remove-if-not #'erc-server-buffer-p + (buffer-list)))) + (if all results (car results)))) (defun cp-erc-freenode () (interactive) - (let ((bufname (cp-erc-irc-buffer))) + (let ((bufname (cp-erc-server-buffer))) (if bufname (switch-to-buffer bufname) (erc :server "irc.freenode.net" @@ -91,11 +103,11 @@ value for `erc-generate-log-file-name-function'." (interactive) (if (equal major-mode 'erc-mode) (erc-server-reconnect) - (progn (switch-to-buffer (cp-erc-irc-buffer)) + (progn (switch-to-buffer (cp-erc-server-buffer)) (erc-server-reconnect)))) (defun cp-erc-ghost () (interactive) - (switch-to-buffer (cp-erc-irc-buffer)) + ;; (cp-erc-server-buffer) (erc-message "PRIVMSG" "NickServ GHOST contrapunctus") (erc-cmd-NICK "contrapunctus")) (defun cp-erc-toggle-autojoin ()