;; 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),
(defvar erc-channel-modes nil
"List of strings representing channel modes.
-E.g. '(\"i\" \"m\" \"s\" \"b Quake!*@*\")
+E.g. (\"i\" \"m\" \"s\" \"b Quake!*@*\")
\(not sure the ban list will be here, but why not)")
(make-variable-buffer-local 'erc-channel-modes)
(erc-update-modules)
(set-buffer buffer)
(setq old-point (point))
- (erc-mode)
+ (let ((old-recon-count erc-server-reconnect-count))
+ (erc-mode)
+ (setq erc-server-reconnect-count old-recon-count))
(setq erc-server-announced-name server-announced-name)
(setq erc-server-connected connected-p)
;; connection parameters
(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)
The process will be given the name NAME, its target buffer will be
BUFFER. HOST and PORT specify the connection target."
(open-network-stream name buffer host port
+ :nowait t
:type 'tls))
;;; Displaying error messages
"Display STRING in the ERC BUFFER.
All screen output must be done through this function. If BUFFER is nil
or omitted, the default ERC buffer for the `erc-session-server' is used.
-The BUFFER can be an actual buffer, a list of buffers, 'all or 'active.
-If BUFFER = 'all, the string is displayed in all the ERC buffers for the
-current session. 'active means the current active buffer
+The BUFFER can be an actual buffer, a list of buffers, `all' or `active'.
+If BUFFER = `all', the string is displayed in all the ERC buffers for the
+current session. `active' means the current active buffer
\(`erc-active-buffer'). If the buffer can't be resolved, the current
buffer is used. `erc-display-line-1' is used to display STRING.
(put 'erc-cmd-ME 'do-not-parse-args t)
(defun erc-cmd-ME\'S (line)
- "Do a /ME command, but add the string \" 's\" to the beginning."
+ "Do a /ME command, but add the string \" \\='s\" to the beginning."
(erc-cmd-ME (concat " 's" line)))
(put 'erc-cmd-ME\'S 'do-not-parse-args t)
(nick (car (erc-response.command-args parsed)))
(buffer (process-buffer proc)))
(setq erc-server-connected t)
+ (setq erc-server-reconnect-count 0)
(erc-update-mode-line)
(erc-set-initial-user-mode nick buffer)
(erc-server-setup-periodical-ping buffer)
(defun erc-update-channel-topic (channel topic &optional modify)
"Find a buffer for CHANNEL and set the TOPIC for it.
-If optional MODIFY is 'append or 'prepend, then append or prepend the
+If optional MODIFY is `append' or `prepend', then append or prepend the
TOPIC string to the current topic."
(erc-with-buffer (channel)
(cond ((eq modify 'append)
(t (setq erc-channel-user-limit nil))))))
(defun erc-update-channel-key (channel onoff key)
- "Update CHANNEL's key to KEY if ONOFF is 'on or to nil if it's 'off."
+ "Update CHANNEL's key to KEY if ONOFF is `on' or to nil if it's `off'."
(erc-with-buffer
(channel)
(cond ((eq onoff 'on) (setq erc-channel-key key))
(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)))))
(text-property-not-all (point-min) (point-max) 'erc-parsed nil))
(defun erc-restore-text-properties ()
- "Restore the property 'erc-parsed for the region."
+ "Restore the property `erc-parsed' for the region."
(let ((parsed-posn (erc-find-parsed-property)))
(put-text-property
(point-min) (point-max)