]> code.delx.au - gnu-emacs/blobdiff - lisp/erc/erc-backend.el
merge emacs-23
[gnu-emacs] / lisp / erc / erc-backend.el
index 1ab9467ab3a032f6a3e4e220c4b8ab2deddcb087..8b533b4c25598b3b669bf97a495247c103adf9d4 100644 (file)
@@ -130,6 +130,10 @@ Use `erc-current-nick' to access this.")
   "The server name used to connect to for this session.")
 (make-variable-buffer-local 'erc-session-server)
 
+(defvar erc-session-connector nil
+  "The function used to connect to this session (nil for the default).")
+(make-variable-buffer-local 'erc-session-connector)
+
 (defvar erc-session-port nil
   "The port used to connect to.")
 (make-variable-buffer-local 'erc-session-port)
@@ -538,8 +542,10 @@ Make sure you are in an ERC buffer when running this."
       (erc-set-active-buffer (current-buffer))
       (setq erc-server-last-sent-time 0)
       (setq erc-server-lines-sent 0)
-      (erc-open erc-session-server erc-session-port erc-server-current-nick
-                erc-session-user-full-name t erc-session-password))))
+      (let ((erc-server-connect-function (or erc-session-connector
+                                             'open-network-stream)))
+        (erc-open erc-session-server erc-session-port erc-server-current-nick
+                  erc-session-user-full-name t erc-session-password)))))
 
 (defun erc-server-filter-function (process string)
   "The process filter for the ERC server."