]> code.delx.au - gnu-emacs/commitdiff
erc: use auth-source
authorJulien Danjou <julien@danjou.info>
Fri, 15 Jun 2012 14:47:31 +0000 (16:47 +0200)
committerJulien Danjou <julien@danjou.info>
Fri, 15 Jun 2012 14:47:31 +0000 (16:47 +0200)
* erc.el (erc-open): Use `auth-source' for password retrieval when
  possible.

lisp/erc/ChangeLog
lisp/erc/erc.el

index fbc5baa6a793d2143f34aa5cceb827ca9123b5cf..f84df4c7b89391ac070f5789f9bd5403f2aca579 100644 (file)
@@ -1,3 +1,8 @@
+2012-06-15  Julien Danjou  <julien@danjou.info>
+
+       * erc.el (erc-open): Use `auth-source' for password retrieval when
+       possible.
+
 2012-06-12  Chong Yidong  <cyd@gnu.org>
 
        * erc-dcc.el (erc-dcc-chat-filter-functions): Rename from
index 2f714bd6d14d36a2e4e8b81bc962779c6aa0bc57..0fc308621b12d1a9957fca0ba559f76a91890780 100644 (file)
@@ -71,6 +71,7 @@
 (require 'font-lock)
 (require 'pp)
 (require 'thingatpt)
+(require 'auth-source)
 (require 'erc-compat)
 
 (defvar erc-official-location
@@ -2006,7 +2007,19 @@ Returns the buffer for the given server or channel."
     ;; The local copy of `erc-nick' - the list of nicks to choose
     (setq erc-default-nicks (if (consp erc-nick) erc-nick (list erc-nick)))
     ;; password stuff
-    (setq erc-session-password passwd)
+    (setq erc-session-password (or passwd
+                                  (let ((secret
+                                         (plist-get
+                                          (nth 0
+                                               (auth-source-search :host server
+                                                                   :max 1
+                                                                   :user nick
+                                                                   :port port
+                                                                   :require '(:secret)))
+                                          :secret)))
+                                    (if (functionp secret)
+                                        (funcall secret)
+                                      secret))))
     ;; debug output buffer
     (setq erc-dbuf
          (when erc-log-p