dot/ercrc.el: Function for looking for things in alists by regexps.
authorMark Wooding <mdw@distorted.org.uk>
Wed, 22 Jan 2014 15:56:32 +0000 (15:56 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Wed, 22 Jan 2014 15:56:32 +0000 (15:56 +0000)
We'll want more of these later.

dot/ercrc.el

index 5b573e0..9ed001a 100644 (file)
@@ -50,12 +50,20 @@ matches SERVER-REGEXP.")
                       :test #'string= :key #'car))))
 (load "~/.erc-auth.el")
 
+(defun mdw-assoc-regexp (regexp alist)
+  "Return the association in ALIST whose car matches REGEXP."
+  (let ((answer nil))
+    (dolist (l alist)
+      (when (string-match (car l) regexp)
+       (setq answer l)))
+    answer))
+
 (defun mdw-erc-auto-greet-bots (server nick)
   "Send greeting message to bots."
-  (dolist (l mdw-erc-auto-greet-bots-alist)
-    (when (string-match (car l) server)
-      (let ((bot (cadr l))
-           (message (caddr l)))
+  (let ((a (mdw-assoc-regexp server mdw-erc-auto-greet-bots-alist)))
+    (when a
+      (let ((bot (cadr a))
+           (message (caddr a)))
        (erc-server-send (concat "PRIVMSG " bot " :" message))))))
 (add-hook 'erc-after-connect 'mdw-erc-auto-greet-bots)