;; erc.el --- An Emacs Internet Relay Chat client -*- lexical-binding:t -*-
-;; Copyright (C) 1997-2015 Free Software Foundation, Inc.
+;; Copyright (C) 1997-2016 Free Software Foundation, Inc.
;; Author: Alexander L. Belikoff (alexander@belikoff.net)
;; Contributors: Sergey Berezin (sergey.berezin@cs.cmu.edu),
(defconst erc-default-port 6667
"IRC port to use if it cannot be detected otherwise.")
+(defconst erc-default-port-tls 6697
+ "IRC port to use for encrypted connections if it cannot be
+ detected otherwise.")
+
(defcustom erc-join-buffer 'buffer
"Determines how to display a newly created IRC buffer.
(auth-source-search :host server
:max 1
:user nick
- :port port
+ ;; secrets.el wouldn’t accept a number
+ :port (if (numberp port) (number-to-string port) port)
:require '(:secret)))
:secret)))
(if (functionp secret)
(defun erc-tls (&rest r)
"Interactively select TLS connection parameters and run ERC.
Arguments are the same as for `erc'."
- (interactive (erc-select-read-args))
+ (interactive (let ((erc-default-port erc-default-port-tls))
+ (erc-select-read-args)))
(let ((erc-server-connect-function 'erc-open-tls-stream))
(apply #'erc r)))
(_ (error "Unknown prefix char `%S'" ch) voice))
'on)))
(when updatep
+ ;; If we didn't issue the NAMES request (consider two clients
+ ;; talking to an IRC proxy), `erc-channel-begin-receiving-names'
+ ;; will not have been called, so we have to do it here.
+ (unless erc-channel-new-member-names
+ (erc-channel-begin-receiving-names))
(puthash (erc-downcase name) t
erc-channel-new-member-names)
(erc-update-current-channel-member
(cond
((eq (erc-server-buffer) (current-buffer))
(run-hooks 'erc-kill-server-hook))
- ((erc-channel-p (erc-default-target))
+ ((erc-channel-p (or (erc-default-target) (buffer-name)))
(run-hooks 'erc-kill-channel-hook))
(t
(run-hooks 'erc-kill-buffer-hook)))))