2016-04-02 19:38:54 +00:00
|
|
|
;;; erc-backend.el --- Backend network communication for ERC -*- lexical-binding:t -*-
|
2006-01-29 13:08:58 +00:00
|
|
|
|
2020-01-01 00:19:43 +00:00
|
|
|
;; Copyright (C) 2004-2020 Free Software Foundation, Inc.
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
;; Filename: erc-backend.el
|
|
|
|
;; Author: Lawrence Mitchell <wence@gmx.li>
|
2020-03-19 01:27:49 +00:00
|
|
|
;; Maintainer: Amin Bandali <bandali@gnu.org>
|
2006-01-29 13:08:58 +00:00
|
|
|
;; Created: 2004-05-7
|
|
|
|
;; Keywords: IRC chat client internet
|
|
|
|
|
|
|
|
;; This file is part of GNU Emacs.
|
|
|
|
|
2008-05-06 03:36:21 +00:00
|
|
|
;; GNU Emacs is free software: you can redistribute it and/or modify
|
2006-01-29 13:08:58 +00:00
|
|
|
;; it under the terms of the GNU General Public License as published by
|
2008-05-06 03:36:21 +00:00
|
|
|
;; the Free Software Foundation, either version 3 of the License, or
|
|
|
|
;; (at your option) any later version.
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
;; GNU Emacs is distributed in the hope that it will be useful,
|
|
|
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
;; GNU General Public License for more details.
|
|
|
|
|
|
|
|
;; You should have received a copy of the GNU General Public License
|
2017-09-13 22:52:52 +00:00
|
|
|
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
;;; Commentary:
|
|
|
|
|
|
|
|
;; This file defines backend network communication handlers for ERC.
|
|
|
|
;;
|
|
|
|
;; How things work:
|
|
|
|
;;
|
|
|
|
;; You define a new handler with `define-erc-response-handler'. This
|
|
|
|
;; defines a function, a corresponding hook variable, and populates a
|
|
|
|
;; global hash table `erc-server-responses' with a map from response
|
|
|
|
;; to hook variable. See the function documentation for more
|
|
|
|
;; information.
|
|
|
|
;;
|
|
|
|
;; Upon receiving a line from the server, `erc-parse-server-response'
|
|
|
|
;; is called on it.
|
|
|
|
;;
|
|
|
|
;; A line generally looks like:
|
|
|
|
;;
|
|
|
|
;; LINE := ':' SENDER ' ' COMMAND ' ' (COMMAND-ARGS ' ')* ':' CONTENTS
|
|
|
|
;; SENDER := Not ':' | ' '
|
|
|
|
;; COMMAND := Not ':' | ' '
|
|
|
|
;; COMMAND-ARGS := Not ':' | ' '
|
|
|
|
;;
|
|
|
|
;; This gets parsed and stuffed into an `erc-response' struct. You
|
|
|
|
;; can access the fields of the struct with:
|
|
|
|
;;
|
|
|
|
;; COMMAND --- `erc-response.command'
|
|
|
|
;; COMMAND-ARGS --- `erc-response.command-args'
|
|
|
|
;; CONTENTS --- `erc-response.contents'
|
|
|
|
;; SENDER --- `erc-response.sender'
|
|
|
|
;; LINE --- `erc-response.unparsed'
|
2017-04-24 06:27:46 +00:00
|
|
|
;; TAGS --- `erc-response.tags'
|
2006-01-29 13:08:58 +00:00
|
|
|
;;
|
|
|
|
;; WARNING, WARNING!!
|
|
|
|
;; It's probably not a good idea to destructively modify the list
|
|
|
|
;; of command-args in your handlers, since other functions down the
|
|
|
|
;; line may well need to access the arguments too.
|
|
|
|
;;
|
|
|
|
;; That is, unless you're /absolutely/ sure that your handler doesn't
|
|
|
|
;; invoke some other function that needs to use COMMAND-ARGS, don't do
|
|
|
|
;; something like
|
|
|
|
;;
|
|
|
|
;; (while (erc-response.command-args parsed)
|
|
|
|
;; (let ((a (pop (erc-response.command-args parsed))))
|
|
|
|
;; ...))
|
|
|
|
;;
|
|
|
|
;; The parsed response is handed over to
|
|
|
|
;; `erc-handle-parsed-server-response', which checks whether it should
|
|
|
|
;; carry out duplicate suppression, and then runs `erc-call-hooks'.
|
|
|
|
;; `erc-call-hooks' retrieves the relevant hook variable from
|
|
|
|
;; `erc-server-responses' and runs it.
|
|
|
|
;;
|
|
|
|
;; Most handlers then destructure the parsed response in some way
|
|
|
|
;; (depending on what the handler is, the arguments have different
|
|
|
|
;; meanings), and generally display something, usually using
|
|
|
|
;; `erc-display-message'.
|
|
|
|
|
|
|
|
;;; TODO:
|
|
|
|
|
2011-11-13 07:48:23 +00:00
|
|
|
;; o Generalize the display-line code so that we can use it to
|
2006-01-29 13:08:58 +00:00
|
|
|
;; display the stuff we send, as well as the stuff we receive.
|
|
|
|
;; Then, move all display-related code into another backend-like
|
|
|
|
;; file, erc-display.el, say.
|
|
|
|
;;
|
|
|
|
;; o Clean up the handlers using new display code (has to be written
|
|
|
|
;; first).
|
|
|
|
|
|
|
|
;;; History:
|
|
|
|
|
|
|
|
;; 2004/05/10 -- Handler bodies taken out of erc.el and ported to new
|
|
|
|
;; interface.
|
|
|
|
|
|
|
|
;; 2005-08-13 -- Moved sending commands from erc.el.
|
|
|
|
|
|
|
|
;;; Code:
|
|
|
|
|
|
|
|
(require 'erc-compat)
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(eval-when-compile (require 'cl-lib))
|
2012-10-18 15:51:28 +00:00
|
|
|
;; There's a fairly strong mutual dependency between erc.el and erc-backend.el.
|
|
|
|
;; Luckily, erc.el does not need erc-backend.el for macroexpansion whereas the
|
|
|
|
;; reverse is true:
|
2013-05-30 03:19:04 +00:00
|
|
|
(provide 'erc-backend)
|
|
|
|
(require 'erc)
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
;;;; Variables and options
|
|
|
|
|
|
|
|
(defvar erc-server-responses (make-hash-table :test #'equal)
|
2016-11-04 21:50:09 +00:00
|
|
|
"Hash table mapping server responses to their handler hooks.")
|
2006-01-29 13:08:58 +00:00
|
|
|
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(cl-defstruct (erc-response (:conc-name erc-response.))
|
2006-01-29 13:08:58 +00:00
|
|
|
(unparsed "" :type string)
|
|
|
|
(sender "" :type string)
|
|
|
|
(command "" :type string)
|
|
|
|
(command-args '() :type list)
|
2017-04-24 06:27:46 +00:00
|
|
|
(contents "" :type string)
|
|
|
|
(tags '() :type list))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
;;; User data
|
|
|
|
|
|
|
|
(defvar erc-server-current-nick nil
|
|
|
|
"Nickname on the current server.
|
|
|
|
Use `erc-current-nick' to access this.")
|
|
|
|
(make-variable-buffer-local 'erc-server-current-nick)
|
|
|
|
|
|
|
|
;;; Server attributes
|
|
|
|
|
|
|
|
(defvar erc-server-process nil
|
|
|
|
"The process object of the corresponding server connection.")
|
|
|
|
(make-variable-buffer-local 'erc-server-process)
|
|
|
|
|
|
|
|
(defvar erc-session-server nil
|
|
|
|
"The server name used to connect to for this session.")
|
|
|
|
(make-variable-buffer-local 'erc-session-server)
|
|
|
|
|
2010-01-25 18:49:23 +00:00
|
|
|
(defvar erc-session-connector nil
|
|
|
|
"The function used to connect to this session (nil for the default).")
|
|
|
|
(make-variable-buffer-local 'erc-session-connector)
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
(defvar erc-session-port nil
|
|
|
|
"The port used to connect to.")
|
|
|
|
(make-variable-buffer-local 'erc-session-port)
|
|
|
|
|
|
|
|
(defvar erc-server-announced-name nil
|
|
|
|
"The name the server announced to use.")
|
|
|
|
(make-variable-buffer-local 'erc-server-announced-name)
|
|
|
|
|
|
|
|
(defvar erc-server-version nil
|
|
|
|
"The name and version of the server's ircd.")
|
|
|
|
(make-variable-buffer-local 'erc-server-version)
|
|
|
|
|
|
|
|
(defvar erc-server-parameters nil
|
|
|
|
"Alist listing the supported server parameters.
|
|
|
|
|
|
|
|
This is only set if the server sends 005 messages saying what is
|
|
|
|
supported on the server.
|
|
|
|
|
|
|
|
Entries are of the form:
|
|
|
|
(PARAMETER . VALUE)
|
|
|
|
or
|
|
|
|
(PARAMETER) if no value is provided.
|
|
|
|
|
|
|
|
Some examples of possible parameters sent by servers:
|
|
|
|
CHANMODES=b,k,l,imnpst - list of supported channel modes
|
|
|
|
CHANNELLEN=50 - maximum length of channel names
|
|
|
|
CHANTYPES=#&!+ - supported channel prefixes
|
|
|
|
CHARMAPPING=rfc1459 - character mapping used for nickname and channels
|
|
|
|
KICKLEN=160 - maximum allowed kick message length
|
|
|
|
MAXBANS=30 - maximum number of bans per channel
|
|
|
|
MAXCHANNELS=10 - maximum number of channels allowed to join
|
|
|
|
NETWORK=EFnet - the network identifier
|
|
|
|
NICKLEN=9 - maximum allowed length of nicknames
|
|
|
|
PREFIX=(ov)@+ - list of channel modes and the user prefixes if user has mode
|
|
|
|
RFC2812 - server supports RFC 2812 features
|
|
|
|
SILENCE=10 - supports the SILENCE command, maximum allowed number of entries
|
|
|
|
TOPICLEN=160 - maximum allowed topic length
|
|
|
|
WALLCHOPS - supports sending messages to all operators in a channel")
|
|
|
|
(make-variable-buffer-local 'erc-server-parameters)
|
|
|
|
|
|
|
|
;;; Server and connection state
|
|
|
|
|
2007-04-01 13:36:38 +00:00
|
|
|
(defvar erc-server-ping-timer-alist nil
|
|
|
|
"Mapping of server buffers to their specific ping timer.")
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
(defvar erc-server-connected nil
|
2007-04-01 13:36:38 +00:00
|
|
|
"Non-nil if the current buffer has been used by ERC to establish
|
|
|
|
an IRC connection.
|
|
|
|
|
|
|
|
If you wish to determine whether an IRC connection is currently
|
|
|
|
active, use the `erc-server-process-alive' function instead.")
|
2006-01-29 13:08:58 +00:00
|
|
|
(make-variable-buffer-local 'erc-server-connected)
|
|
|
|
|
2007-01-05 02:09:07 +00:00
|
|
|
(defvar erc-server-reconnect-count 0
|
|
|
|
"Number of times we have failed to reconnect to the current server.")
|
|
|
|
(make-variable-buffer-local 'erc-server-reconnect-count)
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
(defvar erc-server-quitting nil
|
|
|
|
"Non-nil if the user requests a quit.")
|
|
|
|
(make-variable-buffer-local 'erc-server-quitting)
|
|
|
|
|
2007-04-01 13:36:38 +00:00
|
|
|
(defvar erc-server-reconnecting nil
|
|
|
|
"Non-nil if the user requests an explicit reconnect, and the
|
|
|
|
current IRC process is still alive.")
|
|
|
|
(make-variable-buffer-local 'erc-server-reconnecting)
|
|
|
|
|
|
|
|
(defvar erc-server-timed-out nil
|
|
|
|
"Non-nil if the IRC server failed to respond to a ping.")
|
|
|
|
(make-variable-buffer-local 'erc-server-timed-out)
|
|
|
|
|
2007-01-05 02:09:07 +00:00
|
|
|
(defvar erc-server-banned nil
|
|
|
|
"Non-nil if the user is denied access because of a server ban.")
|
|
|
|
(make-variable-buffer-local 'erc-server-banned)
|
|
|
|
|
2007-04-01 13:36:38 +00:00
|
|
|
(defvar erc-server-error-occurred nil
|
|
|
|
"Non-nil if the user triggers some server error.")
|
|
|
|
(make-variable-buffer-local 'erc-server-error-occurred)
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
(defvar erc-server-lines-sent nil
|
|
|
|
"Line counter.")
|
|
|
|
(make-variable-buffer-local 'erc-server-lines-sent)
|
|
|
|
|
|
|
|
(defvar erc-server-last-peers '(nil . nil)
|
|
|
|
"Last peers used, both sender and receiver.
|
|
|
|
Those are used for /MSG destination shortcuts.")
|
|
|
|
(make-variable-buffer-local 'erc-server-last-peers)
|
|
|
|
|
|
|
|
(defvar erc-server-last-sent-time nil
|
|
|
|
"Time the message was sent.
|
|
|
|
This is useful for flood protection.")
|
|
|
|
(make-variable-buffer-local 'erc-server-last-sent-time)
|
|
|
|
|
|
|
|
(defvar erc-server-last-ping-time nil
|
|
|
|
"Time the last ping was sent.
|
|
|
|
This is useful for flood protection.")
|
|
|
|
(make-variable-buffer-local 'erc-server-last-ping-time)
|
|
|
|
|
2007-04-01 13:36:38 +00:00
|
|
|
(defvar erc-server-last-received-time nil
|
|
|
|
"Time the last message was received from the server.
|
|
|
|
This is useful for detecting hung connections.")
|
|
|
|
(make-variable-buffer-local 'erc-server-last-received-time)
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
(defvar erc-server-lag nil
|
|
|
|
"Calculated server lag time in seconds.
|
|
|
|
This variable is only set in a server buffer.")
|
|
|
|
(make-variable-buffer-local 'erc-server-lag)
|
|
|
|
|
|
|
|
(defvar erc-server-filter-data nil
|
|
|
|
"The data that arrived from the server
|
|
|
|
but has not been processed yet.")
|
|
|
|
(make-variable-buffer-local 'erc-server-filter-data)
|
|
|
|
|
|
|
|
(defvar erc-server-duplicates (make-hash-table :test 'equal)
|
|
|
|
"Internal variable used to track duplicate messages.")
|
|
|
|
(make-variable-buffer-local 'erc-server-duplicates)
|
|
|
|
|
|
|
|
;; From Circe
|
|
|
|
(defvar erc-server-processing-p nil
|
|
|
|
"Non-nil when we're currently processing a message.
|
|
|
|
|
|
|
|
When ERC receives a private message, it sets up a new buffer for
|
lisp/*.el: Fix typos and other trivial doc fixes
* lisp/allout-widgets.el (allout-widgets-auto-activation)
(allout-current-decorated-p):
* lisp/auth-source.el (auth-source-protocols):
* lisp/autorevert.el (auto-revert-set-timer):
* lisp/battery.el (battery-mode-line-limit):
* lisp/calc/calcalg3.el (math-map-binop):
* lisp/calendar/cal-dst.el (calendar-dst-find-startend):
* lisp/calendar/cal-mayan.el (calendar-mayan-long-count-to-absolute):
* lisp/calendar/calendar.el (calendar-date-echo-text)
(calendar-generate-month, calendar-string-spread)
(calendar-cursor-to-date, calendar-read, calendar-read-date)
(calendar-mark-visible-date, calendar-dayname-on-or-before):
* lisp/calendar/diary-lib.el (diary-ordinal-suffix):
* lisp/cedet/ede/autoconf-edit.el (autoconf-new-program)
(autoconf-find-last-macro, autoconf-parameter-strip):
* lisp/cedet/ede/config.el (ede-target-with-config-build):
* lisp/cedet/ede/linux.el (ede-linux--detect-architecture)
(ede-linux--get-architecture):
* lisp/cedet/semantic/complete.el (semantic-collector-calculate-cache)
(semantic-displayer-abstract, semantic-displayer-point-position):
* lisp/cedet/semantic/format.el (semantic-format-face-alist)
(semantic-format-tag-short-doc):
* lisp/cedet/semantic/fw.el (semantic-find-file-noselect):
* lisp/cedet/semantic/idle.el (semantic-idle-scheduler-work-idle-time)
(semantic-idle-breadcrumbs-display-function)
(semantic-idle-breadcrumbs-format-tag-list-function):
* lisp/cedet/semantic/lex.el (semantic-lex-map-types)
(define-lex, define-lex-block-type-analyzer):
* lisp/cedet/semantic/senator.el (senator-search-default-tag-filter):
* lisp/cedet/semantic/symref.el (semantic-symref-result)
(semantic-symref-hit-to-tag-via-db):
* lisp/cedet/semantic/symref.el (semantic-symref-tool-baseclass):
* lisp/cedet/semantic/tag.el (semantic-tag-new-variable)
(semantic-tag-new-include, semantic-tag-new-package)
(semantic-tag-set-faux, semantic-create-tag-proxy)
(semantic-tag-function-parent)
(semantic-tag-components-with-overlays):
* lisp/cedet/srecode/cpp.el (srecode-cpp-namespaces)
(srecode-semantic-handle-:c, srecode-semantic-apply-tag-to-dict):
* lisp/cedet/srecode/dictionary.el (srecode-create-dictionary)
(srecode-dictionary-add-entries, srecode-dictionary-lookup-name)
(srecode-create-dictionaries-from-tags):
* lisp/cmuscheme.el (scheme-compile-region):
* lisp/color.el (color-lab-to-lch):
* lisp/doc-view.el (doc-view-image-width)
(doc-view-set-up-single-converter):
* lisp/dynamic-setting.el (font-setting-change-default-font)
(dynamic-setting-handle-config-changed-event):
* lisp/elec-pair.el (electric-pair-text-pairs)
(electric-pair-skip-whitespace-function)
(electric-pair-string-bound-function):
* lisp/emacs-lisp/avl-tree.el (avl-tree--del-balance)
(avl-tree-member, avl-tree-mapcar, avl-tree-iter):
* lisp/emacs-lisp/bytecomp.el (byte-compile-generate-call-tree):
* lisp/emacs-lisp/checkdoc.el (checkdoc-autofix-flag)
(checkdoc-spellcheck-documentation-flag, checkdoc-ispell)
(checkdoc-ispell-current-buffer, checkdoc-ispell-interactive)
(checkdoc-ispell-message-interactive)
(checkdoc-ispell-message-text, checkdoc-ispell-start)
(checkdoc-ispell-continue, checkdoc-ispell-comments)
(checkdoc-ispell-defun):
* lisp/emacs-lisp/cl-generic.el (cl--generic-search-method):
* lisp/emacs-lisp/eieio-custom.el (eieio-read-customization-group):
* lisp/emacs-lisp/lisp.el (forward-sexp, up-list):
* lisp/emacs-lisp/package-x.el (package--archive-contents-from-file):
* lisp/emacs-lisp/package.el (package-desc)
(package--make-autoloads-and-stuff, package-hidden-regexps):
* lisp/emacs-lisp/tcover-ses.el (ses-exercise-startup):
* lisp/emacs-lisp/testcover.el (testcover-nohits)
(testcover-1value):
* lisp/epg.el (epg-receive-keys, epg-start-edit-key):
* lisp/erc/erc-backend.el (erc-server-processing-p)
(erc-split-line-length, erc-server-coding-system)
(erc-server-send, erc-message):
* lisp/erc/erc-button.el (erc-button-face, erc-button-alist)
(erc-browse-emacswiki):
* lisp/erc/erc-ezbounce.el (erc-ezbounce, erc-ezb-get-login):
* lisp/erc/erc-fill.el (erc-fill-variable-maximum-indentation):
* lisp/erc/erc-log.el (erc-current-logfile):
* lisp/erc/erc-match.el (erc-log-match-format)
(erc-text-matched-hook):
* lisp/erc/erc-netsplit.el (erc-netsplit, erc-netsplit-debug):
* lisp/erc/erc-networks.el (erc-server-alist)
(erc-networks-alist, erc-current-network):
* lisp/erc/erc-ring.el (erc-input-ring-index):
* lisp/erc/erc-speedbar.el (erc-speedbar)
(erc-speedbar-update-channel):
* lisp/erc/erc-stamp.el (erc-timestamp-only-if-changed-flag):
* lisp/erc/erc-track.el (erc-track-position-in-mode-line)
(erc-track-remove-from-mode-line, erc-modified-channels-update)
(erc-track-last-non-erc-buffer, erc-track-sort-by-importance)
(erc-track-get-active-buffer):
* lisp/erc/erc.el (erc-get-channel-user-list)
(erc-echo-notice-hook, erc-echo-notice-always-hook)
(erc-wash-quit-reason, erc-format-@nick):
* lisp/ffap.el (ffap-latex-mode):
* lisp/files.el (abort-if-file-too-large)
(dir-locals--get-sort-score, buffer-stale--default-function):
* lisp/filesets.el (filesets-tree-max-level, filesets-data)
(filesets-update-pre010505):
* lisp/gnus/gnus-agent.el (gnus-agent-flush-cache):
* lisp/gnus/gnus-art.el (gnus-article-encrypt-protocol)
(gnus-button-prefer-mid-or-mail):
* lisp/gnus/gnus-cus.el (gnus-group-parameters):
* lisp/gnus/gnus-demon.el (gnus-demon-handlers)
(gnus-demon-run-callback):
* lisp/gnus/gnus-dired.el (gnus-dired-print):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event-from-buffer):
* lisp/gnus/gnus-range.el (gnus-range-normalize):
* lisp/gnus/gnus-spec.el (gnus-pad-form):
* lisp/gnus/gnus-srvr.el (gnus-server-agent, gnus-server-cloud)
(gnus-server-opened, gnus-server-closed, gnus-server-denied)
(gnus-server-offline):
* lisp/gnus/gnus-sum.el (gnus-refer-thread-use-nnir)
(gnus-refer-thread-limit-to-thread)
(gnus-summary-limit-include-thread, gnus-summary-refer-thread)
(gnus-summary-find-matching):
* lisp/gnus/gnus-util.el (gnus-rescale-image):
* lisp/gnus/gnus.el (gnus-summary-line-format, gnus-no-server):
* lisp/gnus/mail-source.el (mail-source-incoming-file-prefix):
* lisp/gnus/message.el (message-cite-reply-position)
(message-cite-style-outlook, message-cite-style-thunderbird)
(message-cite-style-gmail, message--send-mail-maybe-partially):
* lisp/gnus/mm-extern.el (mm-inline-external-body):
* lisp/gnus/mm-partial.el (mm-inline-partial):
* lisp/gnus/mml-sec.el (mml-secure-message-sign)
(mml-secure-message-sign-encrypt, mml-secure-message-encrypt):
* lisp/gnus/mml2015.el (mml2015-epg-key-image)
(mml2015-epg-key-image-to-string):
* lisp/gnus/nndiary.el (nndiary-reminders, nndiary-get-new-mail):
* lisp/gnus/nnheader.el (nnheader-directory-files-is-safe):
* lisp/gnus/nnir.el (nnir-search-history)
(nnir-imap-search-other, nnir-artlist-length)
(nnir-artlist-article, nnir-artitem-group, nnir-artitem-number)
(nnir-artitem-rsv, nnir-article-group, nnir-article-number)
(nnir-article-rsv, nnir-article-ids, nnir-categorize)
(nnir-retrieve-headers-override-function)
(nnir-imap-default-search-key, nnir-hyrex-additional-switches)
(gnus-group-make-nnir-group, nnir-run-namazu, nnir-read-parms)
(nnir-read-parm, nnir-read-server-parm, nnir-search-thread):
* lisp/gnus/nnmairix.el (nnmairix-default-group)
(nnmairix-propagate-marks):
* lisp/gnus/smime.el (smime-keys, smime-crl-check)
(smime-verify-buffer, smime-noverify-buffer):
* lisp/gnus/spam-report.el (spam-report-url-ping-mm-url):
* lisp/gnus/spam.el (spam-spamassassin-positive-spam-flag-header)
(spam-spamassassin-spam-status-header, spam-sa-learn-rebuild)
(spam-classifications, spam-check-stat, spam-spamassassin-score):
* lisp/help.el (describe-minor-mode-from-symbol):
* lisp/hippie-exp.el (hippie-expand-ignore-buffers):
* lisp/htmlfontify.el (hfy-optimizations, hfy-face-resolve-face)
(hfy-begin-span):
* lisp/ibuf-ext.el (ibuffer-update-saved-filters-format)
(ibuffer-saved-filters, ibuffer-old-saved-filters-warning)
(ibuffer-filtering-qualifiers, ibuffer-repair-saved-filters)
(eval, ibuffer-unary-operand, file-extension, directory):
* lisp/image-dired.el (image-dired-cmd-pngcrush-options):
* lisp/image-mode.el (image-toggle-display):
* lisp/international/ccl.el (ccl-compile-read-multibyte-character)
(ccl-compile-write-multibyte-character):
* lisp/international/kkc.el (kkc-save-init-file):
* lisp/international/latin1-disp.el (latin1-display):
* lisp/international/ogonek.el (ogonek-name-encoding-alist)
(ogonek-information, ogonek-lookup-encoding)
(ogonek-deprefixify-region):
* lisp/isearch.el (isearch-filter-predicate)
(isearch--momentary-message):
* lisp/jsonrpc.el (jsonrpc-connection-send)
(jsonrpc-process-connection, jsonrpc-shutdown)
(jsonrpc--async-request-1):
* lisp/language/tibet-util.el (tibetan-char-p):
* lisp/mail/feedmail.el (feedmail-queue-use-send-time-for-date)
(feedmail-last-chance-hook, feedmail-before-fcc-hook)
(feedmail-send-it-immediately-wrapper, feedmail-find-eoh):
* lisp/mail/hashcash.el (hashcash-generate-payment)
(hashcash-generate-payment-async, hashcash-insert-payment)
(hashcash-verify-payment):
* lisp/mail/rmail.el (rmail-movemail-variant-in-use)
(rmail-get-attr-value):
* lisp/mail/rmailmm.el (rmail-mime-prefer-html, rmail-mime):
* lisp/mail/rmailsum.el (rmail-summary-show-message):
* lisp/mail/supercite.el (sc-raw-mode-toggle):
* lisp/man.el (Man-start-calling):
* lisp/mh-e/mh-acros.el (mh-do-at-event-location)
(mh-iterate-on-messages-in-region, mh-iterate-on-range):
* lisp/mh-e/mh-alias.el (mh-alias-system-aliases)
(mh-alias-reload, mh-alias-ali)
(mh-alias-canonicalize-suggestion, mh-alias-add-alias-to-file)
(mh-alias-add-alias):
* lisp/mouse.el (mouse-save-then-kill):
* lisp/net/browse-url.el (browse-url-default-macosx-browser):
* lisp/net/eudc.el (eudc-set, eudc-variable-protocol-value)
(eudc-variable-server-value, eudc-update-variable)
(eudc-expand-inline):
* lisp/net/eudcb-bbdb.el (eudc-bbdb-format-record-as-result):
* lisp/net/eudcb-ldap.el (eudc-ldap-get-field-list):
* lisp/net/pop3.el (pop3-list):
* lisp/net/soap-client.el (soap-namespace-put)
(soap-xs-parse-sequence, soap-parse-envelope):
* lisp/net/soap-inspect.el (soap-inspect-xs-complex-type):
* lisp/nxml/rng-xsd.el (rng-xsd-date-to-days):
* lisp/org/ob-C.el (org-babel-prep-session:C)
(org-babel-load-session:C):
* lisp/org/ob-J.el (org-babel-execute:J):
* lisp/org/ob-asymptote.el (org-babel-prep-session:asymptote):
* lisp/org/ob-awk.el (org-babel-execute:awk):
* lisp/org/ob-core.el (org-babel-process-file-name):
* lisp/org/ob-ebnf.el (org-babel-execute:ebnf):
* lisp/org/ob-forth.el (org-babel-execute:forth):
* lisp/org/ob-fortran.el (org-babel-execute:fortran)
(org-babel-prep-session:fortran, org-babel-load-session:fortran):
* lisp/org/ob-groovy.el (org-babel-execute:groovy):
* lisp/org/ob-io.el (org-babel-execute:io):
* lisp/org/ob-js.el (org-babel-execute:js):
* lisp/org/ob-lilypond.el (org-babel-default-header-args:lilypond)
(org-babel-lilypond-compile-post-tangle)
(org-babel-lilypond-display-pdf-post-tangle)
(org-babel-lilypond-tangle)
(org-babel-lilypond-execute-tangled-ly)
(org-babel-lilypond-compile-lilyfile)
(org-babel-lilypond-check-for-compile-error)
(org-babel-lilypond-process-compile-error)
(org-babel-lilypond-mark-error-line)
(org-babel-lilypond-parse-error-line)
(org-babel-lilypond-attempt-to-open-pdf)
(org-babel-lilypond-attempt-to-play-midi)
(org-babel-lilypond-switch-extension)
(org-babel-lilypond-set-header-args):
* lisp/org/ob-lua.el (org-babel-prep-session:lua):
* lisp/org/ob-picolisp.el (org-babel-execute:picolisp):
* lisp/org/ob-processing.el (org-babel-prep-session:processing):
* lisp/org/ob-python.el (org-babel-prep-session:python):
* lisp/org/ob-scheme.el (org-babel-scheme-capture-current-message)
(org-babel-scheme-execute-with-geiser, org-babel-execute:scheme):
* lisp/org/ob-shen.el (org-babel-execute:shen):
* lisp/org/org-agenda.el (org-agenda-entry-types)
(org-agenda-move-date-from-past-immediately-to-today)
(org-agenda-time-grid, org-agenda-sorting-strategy)
(org-agenda-filter-by-category, org-agenda-forward-block):
* lisp/org/org-colview.el (org-columns--overlay-text):
* lisp/org/org-faces.el (org-verbatim, org-cycle-level-faces):
* lisp/org/org-indent.el (org-indent-set-line-properties):
* lisp/org/org-macs.el (org-get-limited-outline-regexp):
* lisp/org/org-mobile.el (org-mobile-files):
* lisp/org/org.el (org-use-fast-todo-selection)
(org-extend-today-until, org-use-property-inheritance)
(org-refresh-effort-properties, org-open-at-point-global)
(org-track-ordered-property-with-tag, org-shiftright):
* lisp/org/ox-html.el (org-html-checkbox-type):
* lisp/org/ox-man.el (org-man-source-highlight)
(org-man-verse-block):
* lisp/org/ox-publish.el (org-publish-sitemap-default):
* lisp/outline.el (outline-head-from-level):
* lisp/progmodes/dcl-mode.el (dcl-back-to-indentation-1)
(dcl-calc-command-indent, dcl-indent-to):
* lisp/progmodes/flymake.el (flymake-make-diagnostic)
(flymake--overlays, flymake-diagnostic-functions)
(flymake-diagnostic-types-alist, flymake--backend-state)
(flymake-is-running, flymake--collect, flymake-mode):
* lisp/progmodes/gdb-mi.el (gdb-threads-list, gdb, gdb-non-stop)
(gdb-buffers, gdb-gud-context-call, gdb-jsonify-buffer):
* lisp/progmodes/grep.el (grep-error-screen-columns):
* lisp/progmodes/gud.el (gud-prev-expr):
* lisp/progmodes/ps-mode.el (ps-mode, ps-mode-target-column)
(ps-run-goto-error):
* lisp/progmodes/python.el (python-eldoc-get-doc)
(python-eldoc-function-timeout-permanent, python-eldoc-function):
* lisp/shadowfile.el (shadow-make-group):
* lisp/speedbar.el (speedbar-obj-do-check):
* lisp/textmodes/flyspell.el (flyspell-auto-correct-previous-hook):
* lisp/textmodes/reftex-cite.el (reftex-bib-or-thebib):
* lisp/textmodes/reftex-index.el (reftex-index-goto-entry)
(reftex-index-kill, reftex-index-undo):
* lisp/textmodes/reftex-parse.el (reftex-context-substring):
* lisp/textmodes/reftex.el (reftex-TeX-master-file):
* lisp/textmodes/rst.el (rst-next-hdr, rst-toc)
(rst-uncomment-region, rst-font-lock-extend-region-internal):
* lisp/thumbs.el (thumbs-mode):
* lisp/vc/ediff-util.el (ediff-restore-diff):
* lisp/vc/pcvs-defs.el (cvs-cvsroot, cvs-force-dir-tag):
* lisp/vc/vc-hg.el (vc-hg--ignore-patterns-valid-p):
* lisp/wid-edit.el (widget-field-value-set, string):
* lisp/x-dnd.el (x-dnd-version-from-flags)
(x-dnd-more-than-3-from-flags): Assorted docfixes.
2019-09-20 22:27:53 +00:00
|
|
|
this query. These in turn, though, do start flyspell. This
|
2006-01-29 13:08:58 +00:00
|
|
|
involves starting an external process, in which case Emacs will
|
|
|
|
wait - and when it waits, it does accept other stuff from, say,
|
|
|
|
network exceptions. So, if someone sends you two messages
|
|
|
|
quickly after each other, ispell is started for the first, but
|
|
|
|
might take long enough for the second message to be processed
|
|
|
|
first.")
|
|
|
|
(make-variable-buffer-local 'erc-server-processing-p)
|
|
|
|
|
|
|
|
(defvar erc-server-flood-last-message 0
|
|
|
|
"When we sent the last message.
|
|
|
|
See `erc-server-flood-margin' for an explanation of the flood
|
|
|
|
protection algorithm.")
|
|
|
|
(make-variable-buffer-local 'erc-server-flood-last-message)
|
|
|
|
|
|
|
|
(defvar erc-server-flood-queue nil
|
|
|
|
"The queue of messages waiting to be sent to the server.
|
|
|
|
See `erc-server-flood-margin' for an explanation of the flood
|
|
|
|
protection algorithm.")
|
|
|
|
(make-variable-buffer-local 'erc-server-flood-queue)
|
|
|
|
|
|
|
|
(defvar erc-server-flood-timer nil
|
|
|
|
"The timer to resume sending.")
|
|
|
|
(make-variable-buffer-local 'erc-server-flood-timer)
|
|
|
|
|
|
|
|
;;; IRC protocol and misc options
|
|
|
|
|
|
|
|
(defgroup erc-server nil
|
|
|
|
"Parameters for dealing with IRC servers."
|
|
|
|
:group 'erc)
|
|
|
|
|
|
|
|
(defcustom erc-server-auto-reconnect t
|
|
|
|
"Non-nil means that ERC will attempt to reestablish broken connections.
|
|
|
|
|
|
|
|
Reconnection will happen automatically for any unexpected disconnection."
|
|
|
|
:group 'erc-server
|
|
|
|
:type 'boolean)
|
|
|
|
|
2007-01-05 02:09:07 +00:00
|
|
|
(defcustom erc-server-reconnect-attempts 2
|
|
|
|
"The number of times that ERC will attempt to reestablish a
|
|
|
|
broken connection, or t to always attempt to reconnect.
|
|
|
|
|
|
|
|
This only has an effect if `erc-server-auto-reconnect' is non-nil."
|
|
|
|
:group 'erc-server
|
|
|
|
:type '(choice (const :tag "Always reconnect" t)
|
|
|
|
integer))
|
|
|
|
|
|
|
|
(defcustom erc-server-reconnect-timeout 1
|
|
|
|
"The amount of time, in seconds, that ERC will wait between
|
|
|
|
successive reconnect attempts.
|
|
|
|
|
|
|
|
If a key is pressed while ERC is waiting, it will stop waiting."
|
|
|
|
:group 'erc-server
|
|
|
|
:type 'number)
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
(defcustom erc-split-line-length 440
|
2012-04-09 13:05:48 +00:00
|
|
|
"The maximum length of a single message.
|
2006-01-29 13:08:58 +00:00
|
|
|
If a message exceeds this size, it is broken into multiple ones.
|
|
|
|
|
lisp/*.el: Fix typos and other trivial doc fixes
* lisp/allout-widgets.el (allout-widgets-auto-activation)
(allout-current-decorated-p):
* lisp/auth-source.el (auth-source-protocols):
* lisp/autorevert.el (auto-revert-set-timer):
* lisp/battery.el (battery-mode-line-limit):
* lisp/calc/calcalg3.el (math-map-binop):
* lisp/calendar/cal-dst.el (calendar-dst-find-startend):
* lisp/calendar/cal-mayan.el (calendar-mayan-long-count-to-absolute):
* lisp/calendar/calendar.el (calendar-date-echo-text)
(calendar-generate-month, calendar-string-spread)
(calendar-cursor-to-date, calendar-read, calendar-read-date)
(calendar-mark-visible-date, calendar-dayname-on-or-before):
* lisp/calendar/diary-lib.el (diary-ordinal-suffix):
* lisp/cedet/ede/autoconf-edit.el (autoconf-new-program)
(autoconf-find-last-macro, autoconf-parameter-strip):
* lisp/cedet/ede/config.el (ede-target-with-config-build):
* lisp/cedet/ede/linux.el (ede-linux--detect-architecture)
(ede-linux--get-architecture):
* lisp/cedet/semantic/complete.el (semantic-collector-calculate-cache)
(semantic-displayer-abstract, semantic-displayer-point-position):
* lisp/cedet/semantic/format.el (semantic-format-face-alist)
(semantic-format-tag-short-doc):
* lisp/cedet/semantic/fw.el (semantic-find-file-noselect):
* lisp/cedet/semantic/idle.el (semantic-idle-scheduler-work-idle-time)
(semantic-idle-breadcrumbs-display-function)
(semantic-idle-breadcrumbs-format-tag-list-function):
* lisp/cedet/semantic/lex.el (semantic-lex-map-types)
(define-lex, define-lex-block-type-analyzer):
* lisp/cedet/semantic/senator.el (senator-search-default-tag-filter):
* lisp/cedet/semantic/symref.el (semantic-symref-result)
(semantic-symref-hit-to-tag-via-db):
* lisp/cedet/semantic/symref.el (semantic-symref-tool-baseclass):
* lisp/cedet/semantic/tag.el (semantic-tag-new-variable)
(semantic-tag-new-include, semantic-tag-new-package)
(semantic-tag-set-faux, semantic-create-tag-proxy)
(semantic-tag-function-parent)
(semantic-tag-components-with-overlays):
* lisp/cedet/srecode/cpp.el (srecode-cpp-namespaces)
(srecode-semantic-handle-:c, srecode-semantic-apply-tag-to-dict):
* lisp/cedet/srecode/dictionary.el (srecode-create-dictionary)
(srecode-dictionary-add-entries, srecode-dictionary-lookup-name)
(srecode-create-dictionaries-from-tags):
* lisp/cmuscheme.el (scheme-compile-region):
* lisp/color.el (color-lab-to-lch):
* lisp/doc-view.el (doc-view-image-width)
(doc-view-set-up-single-converter):
* lisp/dynamic-setting.el (font-setting-change-default-font)
(dynamic-setting-handle-config-changed-event):
* lisp/elec-pair.el (electric-pair-text-pairs)
(electric-pair-skip-whitespace-function)
(electric-pair-string-bound-function):
* lisp/emacs-lisp/avl-tree.el (avl-tree--del-balance)
(avl-tree-member, avl-tree-mapcar, avl-tree-iter):
* lisp/emacs-lisp/bytecomp.el (byte-compile-generate-call-tree):
* lisp/emacs-lisp/checkdoc.el (checkdoc-autofix-flag)
(checkdoc-spellcheck-documentation-flag, checkdoc-ispell)
(checkdoc-ispell-current-buffer, checkdoc-ispell-interactive)
(checkdoc-ispell-message-interactive)
(checkdoc-ispell-message-text, checkdoc-ispell-start)
(checkdoc-ispell-continue, checkdoc-ispell-comments)
(checkdoc-ispell-defun):
* lisp/emacs-lisp/cl-generic.el (cl--generic-search-method):
* lisp/emacs-lisp/eieio-custom.el (eieio-read-customization-group):
* lisp/emacs-lisp/lisp.el (forward-sexp, up-list):
* lisp/emacs-lisp/package-x.el (package--archive-contents-from-file):
* lisp/emacs-lisp/package.el (package-desc)
(package--make-autoloads-and-stuff, package-hidden-regexps):
* lisp/emacs-lisp/tcover-ses.el (ses-exercise-startup):
* lisp/emacs-lisp/testcover.el (testcover-nohits)
(testcover-1value):
* lisp/epg.el (epg-receive-keys, epg-start-edit-key):
* lisp/erc/erc-backend.el (erc-server-processing-p)
(erc-split-line-length, erc-server-coding-system)
(erc-server-send, erc-message):
* lisp/erc/erc-button.el (erc-button-face, erc-button-alist)
(erc-browse-emacswiki):
* lisp/erc/erc-ezbounce.el (erc-ezbounce, erc-ezb-get-login):
* lisp/erc/erc-fill.el (erc-fill-variable-maximum-indentation):
* lisp/erc/erc-log.el (erc-current-logfile):
* lisp/erc/erc-match.el (erc-log-match-format)
(erc-text-matched-hook):
* lisp/erc/erc-netsplit.el (erc-netsplit, erc-netsplit-debug):
* lisp/erc/erc-networks.el (erc-server-alist)
(erc-networks-alist, erc-current-network):
* lisp/erc/erc-ring.el (erc-input-ring-index):
* lisp/erc/erc-speedbar.el (erc-speedbar)
(erc-speedbar-update-channel):
* lisp/erc/erc-stamp.el (erc-timestamp-only-if-changed-flag):
* lisp/erc/erc-track.el (erc-track-position-in-mode-line)
(erc-track-remove-from-mode-line, erc-modified-channels-update)
(erc-track-last-non-erc-buffer, erc-track-sort-by-importance)
(erc-track-get-active-buffer):
* lisp/erc/erc.el (erc-get-channel-user-list)
(erc-echo-notice-hook, erc-echo-notice-always-hook)
(erc-wash-quit-reason, erc-format-@nick):
* lisp/ffap.el (ffap-latex-mode):
* lisp/files.el (abort-if-file-too-large)
(dir-locals--get-sort-score, buffer-stale--default-function):
* lisp/filesets.el (filesets-tree-max-level, filesets-data)
(filesets-update-pre010505):
* lisp/gnus/gnus-agent.el (gnus-agent-flush-cache):
* lisp/gnus/gnus-art.el (gnus-article-encrypt-protocol)
(gnus-button-prefer-mid-or-mail):
* lisp/gnus/gnus-cus.el (gnus-group-parameters):
* lisp/gnus/gnus-demon.el (gnus-demon-handlers)
(gnus-demon-run-callback):
* lisp/gnus/gnus-dired.el (gnus-dired-print):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event-from-buffer):
* lisp/gnus/gnus-range.el (gnus-range-normalize):
* lisp/gnus/gnus-spec.el (gnus-pad-form):
* lisp/gnus/gnus-srvr.el (gnus-server-agent, gnus-server-cloud)
(gnus-server-opened, gnus-server-closed, gnus-server-denied)
(gnus-server-offline):
* lisp/gnus/gnus-sum.el (gnus-refer-thread-use-nnir)
(gnus-refer-thread-limit-to-thread)
(gnus-summary-limit-include-thread, gnus-summary-refer-thread)
(gnus-summary-find-matching):
* lisp/gnus/gnus-util.el (gnus-rescale-image):
* lisp/gnus/gnus.el (gnus-summary-line-format, gnus-no-server):
* lisp/gnus/mail-source.el (mail-source-incoming-file-prefix):
* lisp/gnus/message.el (message-cite-reply-position)
(message-cite-style-outlook, message-cite-style-thunderbird)
(message-cite-style-gmail, message--send-mail-maybe-partially):
* lisp/gnus/mm-extern.el (mm-inline-external-body):
* lisp/gnus/mm-partial.el (mm-inline-partial):
* lisp/gnus/mml-sec.el (mml-secure-message-sign)
(mml-secure-message-sign-encrypt, mml-secure-message-encrypt):
* lisp/gnus/mml2015.el (mml2015-epg-key-image)
(mml2015-epg-key-image-to-string):
* lisp/gnus/nndiary.el (nndiary-reminders, nndiary-get-new-mail):
* lisp/gnus/nnheader.el (nnheader-directory-files-is-safe):
* lisp/gnus/nnir.el (nnir-search-history)
(nnir-imap-search-other, nnir-artlist-length)
(nnir-artlist-article, nnir-artitem-group, nnir-artitem-number)
(nnir-artitem-rsv, nnir-article-group, nnir-article-number)
(nnir-article-rsv, nnir-article-ids, nnir-categorize)
(nnir-retrieve-headers-override-function)
(nnir-imap-default-search-key, nnir-hyrex-additional-switches)
(gnus-group-make-nnir-group, nnir-run-namazu, nnir-read-parms)
(nnir-read-parm, nnir-read-server-parm, nnir-search-thread):
* lisp/gnus/nnmairix.el (nnmairix-default-group)
(nnmairix-propagate-marks):
* lisp/gnus/smime.el (smime-keys, smime-crl-check)
(smime-verify-buffer, smime-noverify-buffer):
* lisp/gnus/spam-report.el (spam-report-url-ping-mm-url):
* lisp/gnus/spam.el (spam-spamassassin-positive-spam-flag-header)
(spam-spamassassin-spam-status-header, spam-sa-learn-rebuild)
(spam-classifications, spam-check-stat, spam-spamassassin-score):
* lisp/help.el (describe-minor-mode-from-symbol):
* lisp/hippie-exp.el (hippie-expand-ignore-buffers):
* lisp/htmlfontify.el (hfy-optimizations, hfy-face-resolve-face)
(hfy-begin-span):
* lisp/ibuf-ext.el (ibuffer-update-saved-filters-format)
(ibuffer-saved-filters, ibuffer-old-saved-filters-warning)
(ibuffer-filtering-qualifiers, ibuffer-repair-saved-filters)
(eval, ibuffer-unary-operand, file-extension, directory):
* lisp/image-dired.el (image-dired-cmd-pngcrush-options):
* lisp/image-mode.el (image-toggle-display):
* lisp/international/ccl.el (ccl-compile-read-multibyte-character)
(ccl-compile-write-multibyte-character):
* lisp/international/kkc.el (kkc-save-init-file):
* lisp/international/latin1-disp.el (latin1-display):
* lisp/international/ogonek.el (ogonek-name-encoding-alist)
(ogonek-information, ogonek-lookup-encoding)
(ogonek-deprefixify-region):
* lisp/isearch.el (isearch-filter-predicate)
(isearch--momentary-message):
* lisp/jsonrpc.el (jsonrpc-connection-send)
(jsonrpc-process-connection, jsonrpc-shutdown)
(jsonrpc--async-request-1):
* lisp/language/tibet-util.el (tibetan-char-p):
* lisp/mail/feedmail.el (feedmail-queue-use-send-time-for-date)
(feedmail-last-chance-hook, feedmail-before-fcc-hook)
(feedmail-send-it-immediately-wrapper, feedmail-find-eoh):
* lisp/mail/hashcash.el (hashcash-generate-payment)
(hashcash-generate-payment-async, hashcash-insert-payment)
(hashcash-verify-payment):
* lisp/mail/rmail.el (rmail-movemail-variant-in-use)
(rmail-get-attr-value):
* lisp/mail/rmailmm.el (rmail-mime-prefer-html, rmail-mime):
* lisp/mail/rmailsum.el (rmail-summary-show-message):
* lisp/mail/supercite.el (sc-raw-mode-toggle):
* lisp/man.el (Man-start-calling):
* lisp/mh-e/mh-acros.el (mh-do-at-event-location)
(mh-iterate-on-messages-in-region, mh-iterate-on-range):
* lisp/mh-e/mh-alias.el (mh-alias-system-aliases)
(mh-alias-reload, mh-alias-ali)
(mh-alias-canonicalize-suggestion, mh-alias-add-alias-to-file)
(mh-alias-add-alias):
* lisp/mouse.el (mouse-save-then-kill):
* lisp/net/browse-url.el (browse-url-default-macosx-browser):
* lisp/net/eudc.el (eudc-set, eudc-variable-protocol-value)
(eudc-variable-server-value, eudc-update-variable)
(eudc-expand-inline):
* lisp/net/eudcb-bbdb.el (eudc-bbdb-format-record-as-result):
* lisp/net/eudcb-ldap.el (eudc-ldap-get-field-list):
* lisp/net/pop3.el (pop3-list):
* lisp/net/soap-client.el (soap-namespace-put)
(soap-xs-parse-sequence, soap-parse-envelope):
* lisp/net/soap-inspect.el (soap-inspect-xs-complex-type):
* lisp/nxml/rng-xsd.el (rng-xsd-date-to-days):
* lisp/org/ob-C.el (org-babel-prep-session:C)
(org-babel-load-session:C):
* lisp/org/ob-J.el (org-babel-execute:J):
* lisp/org/ob-asymptote.el (org-babel-prep-session:asymptote):
* lisp/org/ob-awk.el (org-babel-execute:awk):
* lisp/org/ob-core.el (org-babel-process-file-name):
* lisp/org/ob-ebnf.el (org-babel-execute:ebnf):
* lisp/org/ob-forth.el (org-babel-execute:forth):
* lisp/org/ob-fortran.el (org-babel-execute:fortran)
(org-babel-prep-session:fortran, org-babel-load-session:fortran):
* lisp/org/ob-groovy.el (org-babel-execute:groovy):
* lisp/org/ob-io.el (org-babel-execute:io):
* lisp/org/ob-js.el (org-babel-execute:js):
* lisp/org/ob-lilypond.el (org-babel-default-header-args:lilypond)
(org-babel-lilypond-compile-post-tangle)
(org-babel-lilypond-display-pdf-post-tangle)
(org-babel-lilypond-tangle)
(org-babel-lilypond-execute-tangled-ly)
(org-babel-lilypond-compile-lilyfile)
(org-babel-lilypond-check-for-compile-error)
(org-babel-lilypond-process-compile-error)
(org-babel-lilypond-mark-error-line)
(org-babel-lilypond-parse-error-line)
(org-babel-lilypond-attempt-to-open-pdf)
(org-babel-lilypond-attempt-to-play-midi)
(org-babel-lilypond-switch-extension)
(org-babel-lilypond-set-header-args):
* lisp/org/ob-lua.el (org-babel-prep-session:lua):
* lisp/org/ob-picolisp.el (org-babel-execute:picolisp):
* lisp/org/ob-processing.el (org-babel-prep-session:processing):
* lisp/org/ob-python.el (org-babel-prep-session:python):
* lisp/org/ob-scheme.el (org-babel-scheme-capture-current-message)
(org-babel-scheme-execute-with-geiser, org-babel-execute:scheme):
* lisp/org/ob-shen.el (org-babel-execute:shen):
* lisp/org/org-agenda.el (org-agenda-entry-types)
(org-agenda-move-date-from-past-immediately-to-today)
(org-agenda-time-grid, org-agenda-sorting-strategy)
(org-agenda-filter-by-category, org-agenda-forward-block):
* lisp/org/org-colview.el (org-columns--overlay-text):
* lisp/org/org-faces.el (org-verbatim, org-cycle-level-faces):
* lisp/org/org-indent.el (org-indent-set-line-properties):
* lisp/org/org-macs.el (org-get-limited-outline-regexp):
* lisp/org/org-mobile.el (org-mobile-files):
* lisp/org/org.el (org-use-fast-todo-selection)
(org-extend-today-until, org-use-property-inheritance)
(org-refresh-effort-properties, org-open-at-point-global)
(org-track-ordered-property-with-tag, org-shiftright):
* lisp/org/ox-html.el (org-html-checkbox-type):
* lisp/org/ox-man.el (org-man-source-highlight)
(org-man-verse-block):
* lisp/org/ox-publish.el (org-publish-sitemap-default):
* lisp/outline.el (outline-head-from-level):
* lisp/progmodes/dcl-mode.el (dcl-back-to-indentation-1)
(dcl-calc-command-indent, dcl-indent-to):
* lisp/progmodes/flymake.el (flymake-make-diagnostic)
(flymake--overlays, flymake-diagnostic-functions)
(flymake-diagnostic-types-alist, flymake--backend-state)
(flymake-is-running, flymake--collect, flymake-mode):
* lisp/progmodes/gdb-mi.el (gdb-threads-list, gdb, gdb-non-stop)
(gdb-buffers, gdb-gud-context-call, gdb-jsonify-buffer):
* lisp/progmodes/grep.el (grep-error-screen-columns):
* lisp/progmodes/gud.el (gud-prev-expr):
* lisp/progmodes/ps-mode.el (ps-mode, ps-mode-target-column)
(ps-run-goto-error):
* lisp/progmodes/python.el (python-eldoc-get-doc)
(python-eldoc-function-timeout-permanent, python-eldoc-function):
* lisp/shadowfile.el (shadow-make-group):
* lisp/speedbar.el (speedbar-obj-do-check):
* lisp/textmodes/flyspell.el (flyspell-auto-correct-previous-hook):
* lisp/textmodes/reftex-cite.el (reftex-bib-or-thebib):
* lisp/textmodes/reftex-index.el (reftex-index-goto-entry)
(reftex-index-kill, reftex-index-undo):
* lisp/textmodes/reftex-parse.el (reftex-context-substring):
* lisp/textmodes/reftex.el (reftex-TeX-master-file):
* lisp/textmodes/rst.el (rst-next-hdr, rst-toc)
(rst-uncomment-region, rst-font-lock-extend-region-internal):
* lisp/thumbs.el (thumbs-mode):
* lisp/vc/ediff-util.el (ediff-restore-diff):
* lisp/vc/pcvs-defs.el (cvs-cvsroot, cvs-force-dir-tag):
* lisp/vc/vc-hg.el (vc-hg--ignore-patterns-valid-p):
* lisp/wid-edit.el (widget-field-value-set, string):
* lisp/x-dnd.el (x-dnd-version-from-flags)
(x-dnd-more-than-3-from-flags): Assorted docfixes.
2019-09-20 22:27:53 +00:00
|
|
|
IRC allows for lines up to 512 bytes. Two of them are CR LF.
|
2006-01-29 13:08:58 +00:00
|
|
|
And a typical message looks like this:
|
|
|
|
|
|
|
|
:nicky!uhuser@host212223.dialin.fnordisp.net PRIVMSG #lazybastards :Hello!
|
|
|
|
|
|
|
|
You can limit here the maximum length of the \"Hello!\" part.
|
|
|
|
Good luck."
|
|
|
|
:type 'integer
|
|
|
|
:group 'erc-server)
|
|
|
|
|
2010-11-05 14:17:46 +00:00
|
|
|
(defcustom erc-coding-system-precedence '(utf-8 undecided)
|
|
|
|
"List of coding systems to be preferred when receiving a string from the server.
|
|
|
|
This will only be consulted if the coding system in
|
|
|
|
`erc-server-coding-system' is `undecided'."
|
|
|
|
:group 'erc-server
|
2014-11-10 10:38:11 +00:00
|
|
|
:version "24.1"
|
2010-11-05 14:17:46 +00:00
|
|
|
:type '(repeat coding-system))
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
(defcustom erc-server-coding-system (if (and (fboundp 'coding-system-p)
|
|
|
|
(coding-system-p 'undecided)
|
|
|
|
(coding-system-p 'utf-8))
|
|
|
|
'(utf-8 . undecided)
|
|
|
|
nil)
|
|
|
|
"The default coding system for incoming and outgoing text.
|
|
|
|
This is either a coding system, a cons, a function, or nil.
|
|
|
|
|
|
|
|
If a cons, the encoding system for outgoing text is in the car
|
lisp/*.el: Fix typos and other trivial doc fixes
* lisp/allout-widgets.el (allout-widgets-auto-activation)
(allout-current-decorated-p):
* lisp/auth-source.el (auth-source-protocols):
* lisp/autorevert.el (auto-revert-set-timer):
* lisp/battery.el (battery-mode-line-limit):
* lisp/calc/calcalg3.el (math-map-binop):
* lisp/calendar/cal-dst.el (calendar-dst-find-startend):
* lisp/calendar/cal-mayan.el (calendar-mayan-long-count-to-absolute):
* lisp/calendar/calendar.el (calendar-date-echo-text)
(calendar-generate-month, calendar-string-spread)
(calendar-cursor-to-date, calendar-read, calendar-read-date)
(calendar-mark-visible-date, calendar-dayname-on-or-before):
* lisp/calendar/diary-lib.el (diary-ordinal-suffix):
* lisp/cedet/ede/autoconf-edit.el (autoconf-new-program)
(autoconf-find-last-macro, autoconf-parameter-strip):
* lisp/cedet/ede/config.el (ede-target-with-config-build):
* lisp/cedet/ede/linux.el (ede-linux--detect-architecture)
(ede-linux--get-architecture):
* lisp/cedet/semantic/complete.el (semantic-collector-calculate-cache)
(semantic-displayer-abstract, semantic-displayer-point-position):
* lisp/cedet/semantic/format.el (semantic-format-face-alist)
(semantic-format-tag-short-doc):
* lisp/cedet/semantic/fw.el (semantic-find-file-noselect):
* lisp/cedet/semantic/idle.el (semantic-idle-scheduler-work-idle-time)
(semantic-idle-breadcrumbs-display-function)
(semantic-idle-breadcrumbs-format-tag-list-function):
* lisp/cedet/semantic/lex.el (semantic-lex-map-types)
(define-lex, define-lex-block-type-analyzer):
* lisp/cedet/semantic/senator.el (senator-search-default-tag-filter):
* lisp/cedet/semantic/symref.el (semantic-symref-result)
(semantic-symref-hit-to-tag-via-db):
* lisp/cedet/semantic/symref.el (semantic-symref-tool-baseclass):
* lisp/cedet/semantic/tag.el (semantic-tag-new-variable)
(semantic-tag-new-include, semantic-tag-new-package)
(semantic-tag-set-faux, semantic-create-tag-proxy)
(semantic-tag-function-parent)
(semantic-tag-components-with-overlays):
* lisp/cedet/srecode/cpp.el (srecode-cpp-namespaces)
(srecode-semantic-handle-:c, srecode-semantic-apply-tag-to-dict):
* lisp/cedet/srecode/dictionary.el (srecode-create-dictionary)
(srecode-dictionary-add-entries, srecode-dictionary-lookup-name)
(srecode-create-dictionaries-from-tags):
* lisp/cmuscheme.el (scheme-compile-region):
* lisp/color.el (color-lab-to-lch):
* lisp/doc-view.el (doc-view-image-width)
(doc-view-set-up-single-converter):
* lisp/dynamic-setting.el (font-setting-change-default-font)
(dynamic-setting-handle-config-changed-event):
* lisp/elec-pair.el (electric-pair-text-pairs)
(electric-pair-skip-whitespace-function)
(electric-pair-string-bound-function):
* lisp/emacs-lisp/avl-tree.el (avl-tree--del-balance)
(avl-tree-member, avl-tree-mapcar, avl-tree-iter):
* lisp/emacs-lisp/bytecomp.el (byte-compile-generate-call-tree):
* lisp/emacs-lisp/checkdoc.el (checkdoc-autofix-flag)
(checkdoc-spellcheck-documentation-flag, checkdoc-ispell)
(checkdoc-ispell-current-buffer, checkdoc-ispell-interactive)
(checkdoc-ispell-message-interactive)
(checkdoc-ispell-message-text, checkdoc-ispell-start)
(checkdoc-ispell-continue, checkdoc-ispell-comments)
(checkdoc-ispell-defun):
* lisp/emacs-lisp/cl-generic.el (cl--generic-search-method):
* lisp/emacs-lisp/eieio-custom.el (eieio-read-customization-group):
* lisp/emacs-lisp/lisp.el (forward-sexp, up-list):
* lisp/emacs-lisp/package-x.el (package--archive-contents-from-file):
* lisp/emacs-lisp/package.el (package-desc)
(package--make-autoloads-and-stuff, package-hidden-regexps):
* lisp/emacs-lisp/tcover-ses.el (ses-exercise-startup):
* lisp/emacs-lisp/testcover.el (testcover-nohits)
(testcover-1value):
* lisp/epg.el (epg-receive-keys, epg-start-edit-key):
* lisp/erc/erc-backend.el (erc-server-processing-p)
(erc-split-line-length, erc-server-coding-system)
(erc-server-send, erc-message):
* lisp/erc/erc-button.el (erc-button-face, erc-button-alist)
(erc-browse-emacswiki):
* lisp/erc/erc-ezbounce.el (erc-ezbounce, erc-ezb-get-login):
* lisp/erc/erc-fill.el (erc-fill-variable-maximum-indentation):
* lisp/erc/erc-log.el (erc-current-logfile):
* lisp/erc/erc-match.el (erc-log-match-format)
(erc-text-matched-hook):
* lisp/erc/erc-netsplit.el (erc-netsplit, erc-netsplit-debug):
* lisp/erc/erc-networks.el (erc-server-alist)
(erc-networks-alist, erc-current-network):
* lisp/erc/erc-ring.el (erc-input-ring-index):
* lisp/erc/erc-speedbar.el (erc-speedbar)
(erc-speedbar-update-channel):
* lisp/erc/erc-stamp.el (erc-timestamp-only-if-changed-flag):
* lisp/erc/erc-track.el (erc-track-position-in-mode-line)
(erc-track-remove-from-mode-line, erc-modified-channels-update)
(erc-track-last-non-erc-buffer, erc-track-sort-by-importance)
(erc-track-get-active-buffer):
* lisp/erc/erc.el (erc-get-channel-user-list)
(erc-echo-notice-hook, erc-echo-notice-always-hook)
(erc-wash-quit-reason, erc-format-@nick):
* lisp/ffap.el (ffap-latex-mode):
* lisp/files.el (abort-if-file-too-large)
(dir-locals--get-sort-score, buffer-stale--default-function):
* lisp/filesets.el (filesets-tree-max-level, filesets-data)
(filesets-update-pre010505):
* lisp/gnus/gnus-agent.el (gnus-agent-flush-cache):
* lisp/gnus/gnus-art.el (gnus-article-encrypt-protocol)
(gnus-button-prefer-mid-or-mail):
* lisp/gnus/gnus-cus.el (gnus-group-parameters):
* lisp/gnus/gnus-demon.el (gnus-demon-handlers)
(gnus-demon-run-callback):
* lisp/gnus/gnus-dired.el (gnus-dired-print):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event-from-buffer):
* lisp/gnus/gnus-range.el (gnus-range-normalize):
* lisp/gnus/gnus-spec.el (gnus-pad-form):
* lisp/gnus/gnus-srvr.el (gnus-server-agent, gnus-server-cloud)
(gnus-server-opened, gnus-server-closed, gnus-server-denied)
(gnus-server-offline):
* lisp/gnus/gnus-sum.el (gnus-refer-thread-use-nnir)
(gnus-refer-thread-limit-to-thread)
(gnus-summary-limit-include-thread, gnus-summary-refer-thread)
(gnus-summary-find-matching):
* lisp/gnus/gnus-util.el (gnus-rescale-image):
* lisp/gnus/gnus.el (gnus-summary-line-format, gnus-no-server):
* lisp/gnus/mail-source.el (mail-source-incoming-file-prefix):
* lisp/gnus/message.el (message-cite-reply-position)
(message-cite-style-outlook, message-cite-style-thunderbird)
(message-cite-style-gmail, message--send-mail-maybe-partially):
* lisp/gnus/mm-extern.el (mm-inline-external-body):
* lisp/gnus/mm-partial.el (mm-inline-partial):
* lisp/gnus/mml-sec.el (mml-secure-message-sign)
(mml-secure-message-sign-encrypt, mml-secure-message-encrypt):
* lisp/gnus/mml2015.el (mml2015-epg-key-image)
(mml2015-epg-key-image-to-string):
* lisp/gnus/nndiary.el (nndiary-reminders, nndiary-get-new-mail):
* lisp/gnus/nnheader.el (nnheader-directory-files-is-safe):
* lisp/gnus/nnir.el (nnir-search-history)
(nnir-imap-search-other, nnir-artlist-length)
(nnir-artlist-article, nnir-artitem-group, nnir-artitem-number)
(nnir-artitem-rsv, nnir-article-group, nnir-article-number)
(nnir-article-rsv, nnir-article-ids, nnir-categorize)
(nnir-retrieve-headers-override-function)
(nnir-imap-default-search-key, nnir-hyrex-additional-switches)
(gnus-group-make-nnir-group, nnir-run-namazu, nnir-read-parms)
(nnir-read-parm, nnir-read-server-parm, nnir-search-thread):
* lisp/gnus/nnmairix.el (nnmairix-default-group)
(nnmairix-propagate-marks):
* lisp/gnus/smime.el (smime-keys, smime-crl-check)
(smime-verify-buffer, smime-noverify-buffer):
* lisp/gnus/spam-report.el (spam-report-url-ping-mm-url):
* lisp/gnus/spam.el (spam-spamassassin-positive-spam-flag-header)
(spam-spamassassin-spam-status-header, spam-sa-learn-rebuild)
(spam-classifications, spam-check-stat, spam-spamassassin-score):
* lisp/help.el (describe-minor-mode-from-symbol):
* lisp/hippie-exp.el (hippie-expand-ignore-buffers):
* lisp/htmlfontify.el (hfy-optimizations, hfy-face-resolve-face)
(hfy-begin-span):
* lisp/ibuf-ext.el (ibuffer-update-saved-filters-format)
(ibuffer-saved-filters, ibuffer-old-saved-filters-warning)
(ibuffer-filtering-qualifiers, ibuffer-repair-saved-filters)
(eval, ibuffer-unary-operand, file-extension, directory):
* lisp/image-dired.el (image-dired-cmd-pngcrush-options):
* lisp/image-mode.el (image-toggle-display):
* lisp/international/ccl.el (ccl-compile-read-multibyte-character)
(ccl-compile-write-multibyte-character):
* lisp/international/kkc.el (kkc-save-init-file):
* lisp/international/latin1-disp.el (latin1-display):
* lisp/international/ogonek.el (ogonek-name-encoding-alist)
(ogonek-information, ogonek-lookup-encoding)
(ogonek-deprefixify-region):
* lisp/isearch.el (isearch-filter-predicate)
(isearch--momentary-message):
* lisp/jsonrpc.el (jsonrpc-connection-send)
(jsonrpc-process-connection, jsonrpc-shutdown)
(jsonrpc--async-request-1):
* lisp/language/tibet-util.el (tibetan-char-p):
* lisp/mail/feedmail.el (feedmail-queue-use-send-time-for-date)
(feedmail-last-chance-hook, feedmail-before-fcc-hook)
(feedmail-send-it-immediately-wrapper, feedmail-find-eoh):
* lisp/mail/hashcash.el (hashcash-generate-payment)
(hashcash-generate-payment-async, hashcash-insert-payment)
(hashcash-verify-payment):
* lisp/mail/rmail.el (rmail-movemail-variant-in-use)
(rmail-get-attr-value):
* lisp/mail/rmailmm.el (rmail-mime-prefer-html, rmail-mime):
* lisp/mail/rmailsum.el (rmail-summary-show-message):
* lisp/mail/supercite.el (sc-raw-mode-toggle):
* lisp/man.el (Man-start-calling):
* lisp/mh-e/mh-acros.el (mh-do-at-event-location)
(mh-iterate-on-messages-in-region, mh-iterate-on-range):
* lisp/mh-e/mh-alias.el (mh-alias-system-aliases)
(mh-alias-reload, mh-alias-ali)
(mh-alias-canonicalize-suggestion, mh-alias-add-alias-to-file)
(mh-alias-add-alias):
* lisp/mouse.el (mouse-save-then-kill):
* lisp/net/browse-url.el (browse-url-default-macosx-browser):
* lisp/net/eudc.el (eudc-set, eudc-variable-protocol-value)
(eudc-variable-server-value, eudc-update-variable)
(eudc-expand-inline):
* lisp/net/eudcb-bbdb.el (eudc-bbdb-format-record-as-result):
* lisp/net/eudcb-ldap.el (eudc-ldap-get-field-list):
* lisp/net/pop3.el (pop3-list):
* lisp/net/soap-client.el (soap-namespace-put)
(soap-xs-parse-sequence, soap-parse-envelope):
* lisp/net/soap-inspect.el (soap-inspect-xs-complex-type):
* lisp/nxml/rng-xsd.el (rng-xsd-date-to-days):
* lisp/org/ob-C.el (org-babel-prep-session:C)
(org-babel-load-session:C):
* lisp/org/ob-J.el (org-babel-execute:J):
* lisp/org/ob-asymptote.el (org-babel-prep-session:asymptote):
* lisp/org/ob-awk.el (org-babel-execute:awk):
* lisp/org/ob-core.el (org-babel-process-file-name):
* lisp/org/ob-ebnf.el (org-babel-execute:ebnf):
* lisp/org/ob-forth.el (org-babel-execute:forth):
* lisp/org/ob-fortran.el (org-babel-execute:fortran)
(org-babel-prep-session:fortran, org-babel-load-session:fortran):
* lisp/org/ob-groovy.el (org-babel-execute:groovy):
* lisp/org/ob-io.el (org-babel-execute:io):
* lisp/org/ob-js.el (org-babel-execute:js):
* lisp/org/ob-lilypond.el (org-babel-default-header-args:lilypond)
(org-babel-lilypond-compile-post-tangle)
(org-babel-lilypond-display-pdf-post-tangle)
(org-babel-lilypond-tangle)
(org-babel-lilypond-execute-tangled-ly)
(org-babel-lilypond-compile-lilyfile)
(org-babel-lilypond-check-for-compile-error)
(org-babel-lilypond-process-compile-error)
(org-babel-lilypond-mark-error-line)
(org-babel-lilypond-parse-error-line)
(org-babel-lilypond-attempt-to-open-pdf)
(org-babel-lilypond-attempt-to-play-midi)
(org-babel-lilypond-switch-extension)
(org-babel-lilypond-set-header-args):
* lisp/org/ob-lua.el (org-babel-prep-session:lua):
* lisp/org/ob-picolisp.el (org-babel-execute:picolisp):
* lisp/org/ob-processing.el (org-babel-prep-session:processing):
* lisp/org/ob-python.el (org-babel-prep-session:python):
* lisp/org/ob-scheme.el (org-babel-scheme-capture-current-message)
(org-babel-scheme-execute-with-geiser, org-babel-execute:scheme):
* lisp/org/ob-shen.el (org-babel-execute:shen):
* lisp/org/org-agenda.el (org-agenda-entry-types)
(org-agenda-move-date-from-past-immediately-to-today)
(org-agenda-time-grid, org-agenda-sorting-strategy)
(org-agenda-filter-by-category, org-agenda-forward-block):
* lisp/org/org-colview.el (org-columns--overlay-text):
* lisp/org/org-faces.el (org-verbatim, org-cycle-level-faces):
* lisp/org/org-indent.el (org-indent-set-line-properties):
* lisp/org/org-macs.el (org-get-limited-outline-regexp):
* lisp/org/org-mobile.el (org-mobile-files):
* lisp/org/org.el (org-use-fast-todo-selection)
(org-extend-today-until, org-use-property-inheritance)
(org-refresh-effort-properties, org-open-at-point-global)
(org-track-ordered-property-with-tag, org-shiftright):
* lisp/org/ox-html.el (org-html-checkbox-type):
* lisp/org/ox-man.el (org-man-source-highlight)
(org-man-verse-block):
* lisp/org/ox-publish.el (org-publish-sitemap-default):
* lisp/outline.el (outline-head-from-level):
* lisp/progmodes/dcl-mode.el (dcl-back-to-indentation-1)
(dcl-calc-command-indent, dcl-indent-to):
* lisp/progmodes/flymake.el (flymake-make-diagnostic)
(flymake--overlays, flymake-diagnostic-functions)
(flymake-diagnostic-types-alist, flymake--backend-state)
(flymake-is-running, flymake--collect, flymake-mode):
* lisp/progmodes/gdb-mi.el (gdb-threads-list, gdb, gdb-non-stop)
(gdb-buffers, gdb-gud-context-call, gdb-jsonify-buffer):
* lisp/progmodes/grep.el (grep-error-screen-columns):
* lisp/progmodes/gud.el (gud-prev-expr):
* lisp/progmodes/ps-mode.el (ps-mode, ps-mode-target-column)
(ps-run-goto-error):
* lisp/progmodes/python.el (python-eldoc-get-doc)
(python-eldoc-function-timeout-permanent, python-eldoc-function):
* lisp/shadowfile.el (shadow-make-group):
* lisp/speedbar.el (speedbar-obj-do-check):
* lisp/textmodes/flyspell.el (flyspell-auto-correct-previous-hook):
* lisp/textmodes/reftex-cite.el (reftex-bib-or-thebib):
* lisp/textmodes/reftex-index.el (reftex-index-goto-entry)
(reftex-index-kill, reftex-index-undo):
* lisp/textmodes/reftex-parse.el (reftex-context-substring):
* lisp/textmodes/reftex.el (reftex-TeX-master-file):
* lisp/textmodes/rst.el (rst-next-hdr, rst-toc)
(rst-uncomment-region, rst-font-lock-extend-region-internal):
* lisp/thumbs.el (thumbs-mode):
* lisp/vc/ediff-util.el (ediff-restore-diff):
* lisp/vc/pcvs-defs.el (cvs-cvsroot, cvs-force-dir-tag):
* lisp/vc/vc-hg.el (vc-hg--ignore-patterns-valid-p):
* lisp/wid-edit.el (widget-field-value-set, string):
* lisp/x-dnd.el (x-dnd-version-from-flags)
(x-dnd-more-than-3-from-flags): Assorted docfixes.
2019-09-20 22:27:53 +00:00
|
|
|
and the decoding system for incoming text is in the cdr. The most
|
|
|
|
interesting use for this is to put `undecided' in the cdr. This
|
2010-11-05 14:17:46 +00:00
|
|
|
means that `erc-coding-system-precedence' will be consulted, and the
|
|
|
|
first match there will be used.
|
2008-01-25 03:28:10 +00:00
|
|
|
|
|
|
|
If a function, it is called with the argument `target' and should
|
|
|
|
return a coding system or a cons as described above.
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
If you need to send non-ASCII text to people not using a client that
|
|
|
|
does decoding on its own, you must tell ERC what encoding to use.
|
|
|
|
Emacs cannot guess it, since it does not know what the people on the
|
|
|
|
other end of the line are using."
|
|
|
|
:group 'erc-server
|
|
|
|
:type '(choice (const :tag "None" nil)
|
|
|
|
coding-system
|
|
|
|
(cons (coding-system :tag "encoding" :value utf-8)
|
|
|
|
(coding-system :tag "decoding" :value undecided))
|
|
|
|
function))
|
|
|
|
|
|
|
|
(defcustom erc-encoding-coding-alist nil
|
|
|
|
"Alist of target regexp and coding-system pairs to use.
|
|
|
|
This overrides `erc-server-coding-system' depending on the
|
|
|
|
current target as returned by `erc-default-target'.
|
|
|
|
|
|
|
|
Example: If you know that the channel #linux-ru uses the coding-system
|
2015-11-17 23:28:50 +00:00
|
|
|
`cyrillic-koi8', then add (\"#linux-ru\" . cyrillic-koi8) to the
|
2006-01-29 13:08:58 +00:00
|
|
|
alist."
|
|
|
|
:group 'erc-server
|
2019-12-21 17:52:06 +00:00
|
|
|
:type '(repeat (cons (regexp :tag "Target")
|
2006-01-29 13:08:58 +00:00
|
|
|
coding-system)))
|
|
|
|
|
2016-04-02 19:38:54 +00:00
|
|
|
(defcustom erc-server-connect-function #'erc-open-network-stream
|
2006-01-29 13:08:58 +00:00
|
|
|
"Function used to initiate a connection.
|
|
|
|
It should take same arguments as `open-network-stream' does."
|
|
|
|
:group 'erc-server
|
|
|
|
:type 'function)
|
|
|
|
|
|
|
|
(defcustom erc-server-prevent-duplicates '("301")
|
2012-04-09 13:05:48 +00:00
|
|
|
"Either nil or a list of strings.
|
2006-01-29 13:08:58 +00:00
|
|
|
Each string is a IRC message type, like PRIVMSG or NOTICE.
|
|
|
|
All Message types in that list of subjected to duplicate prevention."
|
|
|
|
:type '(choice (const nil) (list string))
|
|
|
|
:group 'erc-server)
|
|
|
|
|
|
|
|
(defcustom erc-server-duplicate-timeout 60
|
2012-04-09 13:05:48 +00:00
|
|
|
"The time allowed in seconds between duplicate messages.
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
If two identical messages arrive within this value of one another, the second
|
|
|
|
isn't displayed."
|
|
|
|
:type 'integer
|
|
|
|
:group 'erc-server)
|
|
|
|
|
2012-05-13 18:51:14 +00:00
|
|
|
(defcustom erc-server-timestamp-format "%Y-%m-%d %T"
|
2012-05-14 00:27:21 +00:00
|
|
|
"Timestamp format used with server response messages.
|
2012-05-13 18:51:14 +00:00
|
|
|
This string is processed using `format-time-string'."
|
2014-11-10 10:38:11 +00:00
|
|
|
:version "24.3"
|
2012-05-13 18:51:14 +00:00
|
|
|
:type 'string
|
|
|
|
:group 'erc-server)
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
;;; Flood-related
|
|
|
|
|
|
|
|
;; Most of this is courtesy of Jorgen Schaefer and Circe
|
|
|
|
;; (http://www.nongnu.org/circe)
|
|
|
|
|
|
|
|
(defcustom erc-server-flood-margin 10
|
2012-04-09 13:05:48 +00:00
|
|
|
"A margin on how much excess data we send.
|
2006-01-29 13:08:58 +00:00
|
|
|
The flood protection algorithm of ERC works like the one
|
|
|
|
detailed in RFC 2813, section 5.8 \"Flood control of clients\".
|
|
|
|
|
|
|
|
* If `erc-server-flood-last-message' is less than the current
|
|
|
|
time, set it equal.
|
|
|
|
* While `erc-server-flood-last-message' is less than
|
|
|
|
`erc-server-flood-margin' seconds ahead of the current
|
|
|
|
time, send a message, and increase
|
|
|
|
`erc-server-flood-last-message' by
|
|
|
|
`erc-server-flood-penalty' for each message."
|
|
|
|
:type 'integer
|
|
|
|
:group 'erc-server)
|
|
|
|
|
|
|
|
(defcustom erc-server-flood-penalty 3
|
|
|
|
"How much we penalize a message.
|
|
|
|
See `erc-server-flood-margin' for an explanation of the flood
|
|
|
|
protection algorithm."
|
|
|
|
:type 'integer
|
|
|
|
:group 'erc-server)
|
|
|
|
|
|
|
|
;; Ping handling
|
|
|
|
|
2007-04-01 13:36:38 +00:00
|
|
|
(defcustom erc-server-send-ping-interval 30
|
2012-04-09 13:05:48 +00:00
|
|
|
"Interval of sending pings to the server, in seconds.
|
2006-01-29 13:08:58 +00:00
|
|
|
If this is set to nil, pinging the server is disabled."
|
|
|
|
:group 'erc-server
|
2007-04-01 13:36:38 +00:00
|
|
|
:type '(choice (const :tag "Disabled" nil)
|
|
|
|
(integer :tag "Seconds")))
|
|
|
|
|
|
|
|
(defcustom erc-server-send-ping-timeout 120
|
2012-04-09 13:05:48 +00:00
|
|
|
"If the time between ping and response is greater than this, reconnect.
|
2007-04-01 13:36:38 +00:00
|
|
|
The time is in seconds.
|
|
|
|
|
|
|
|
This must be greater than or equal to the value for
|
|
|
|
`erc-server-send-ping-interval'.
|
|
|
|
|
|
|
|
If this is set to nil, never try to reconnect."
|
|
|
|
:group 'erc-server
|
|
|
|
:type '(choice (const :tag "Disabled" nil)
|
|
|
|
(integer :tag "Seconds")))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(defvar erc-server-ping-handler nil
|
|
|
|
"This variable holds the periodic ping timer.")
|
|
|
|
(make-variable-buffer-local 'erc-server-ping-handler)
|
|
|
|
|
|
|
|
;;;; Helper functions
|
|
|
|
|
|
|
|
;; From Circe
|
|
|
|
(defun erc-split-line (longline)
|
|
|
|
"Return a list of lines which are not too long for IRC.
|
|
|
|
The length is specified in `erc-split-line-length'.
|
|
|
|
|
|
|
|
Currently this is called by `erc-send-input'."
|
2020-04-28 17:22:50 +00:00
|
|
|
(let* ((coding (erc-coding-system-for-target nil))
|
|
|
|
(charset (if (consp coding) (car coding) coding)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(with-temp-buffer
|
|
|
|
(insert longline)
|
2018-04-13 18:24:04 +00:00
|
|
|
;; The line lengths are in octets, not characters (because these
|
|
|
|
;; are server protocol limits), so we have to first make the
|
|
|
|
;; text into bytes, then fold the bytes on "word" boundaries,
|
|
|
|
;; and then make the bytes into text again.
|
|
|
|
(encode-coding-region (point-min) (point-max) charset)
|
2006-01-29 13:08:58 +00:00
|
|
|
(let ((fill-column erc-split-line-length))
|
|
|
|
(fill-region (point-min) (point-max)
|
|
|
|
nil t))
|
2018-04-13 18:24:04 +00:00
|
|
|
(decode-coding-region (point-min) (point-max) charset)
|
2006-01-29 13:08:58 +00:00
|
|
|
(split-string (buffer-string) "\n"))))
|
|
|
|
|
2016-02-04 03:24:18 +00:00
|
|
|
(defun erc-forward-word ()
|
lisp/*.el: Fix typos and improve some docstrings
* lisp/auth-source.el (auth-source-backend-parse-parameters)
(auth-source-search-collection)
(auth-source-secrets-listify-pattern)
(auth-source--decode-octal-string, auth-source-plstore-search):
* lisp/registry.el (registry-lookup)
(registry-lookup-breaks-before-lexbind)
(registry-lookup-secondary, registry-lookup-secondary-value)
(registry-search, registry-delete, registry-size, registry-full)
(registry-insert, registry-reindex, registry-prune)
(registry-collect-prune-candidates):
* lisp/subr.el (nbutlast, process-live-p):
* lisp/tab-bar.el (tab-bar-list):
* lisp/cedet/ede/linux.el (ede-linux--get-archs)
(ede-linux--include-path, ede-linux-load):
* lisp/erc/erc-log.el (erc-log-all-but-server-buffers):
* lisp/erc/erc-pcomplete.el (pcomplete-erc-commands)
(pcomplete-erc-ops, pcomplete-erc-not-ops, pcomplete-erc-nicks)
(pcomplete-erc-all-nicks, pcomplete-erc-channels)
(pcomplete-erc-command-name, pcomplete-erc-parse-arguments):
* lisp/eshell/em-term.el (eshell-visual-command-p):
* lisp/gnus/gnus-cache.el (gnus-cache-fully-p):
* lisp/gnus/nnmail.el (nnmail-get-active)
(nnmail-fancy-expiry-target):
* lisp/mail/mail-utils.el (mail-string-delete):
* lisp/mail/supercite.el (sc-hdr, sc-valid-index-p):
* lisp/net/ange-ftp.el (ange-ftp-use-smart-gateway-p):
* lisp/net/nsm.el (nsm-save-fingerprint-maybe)
(nsm-network-same-subnet, nsm-should-check):
* lisp/net/rcirc.el (rcirc-looking-at-input):
* lisp/net/tramp-cache.el (tramp-get-hash-table):
* lisp/net/tramp-compat.el (tramp-compat-process-running-p):
* lisp/net/tramp-smb.el (tramp-smb-get-share)
(tramp-smb-get-localname, tramp-smb-read-file-entry)
(tramp-smb-get-cifs-capabilities, tramp-smb-get-stat-capability):
* lisp/net/zeroconf.el (zeroconf-list-service-names)
(zeroconf-list-service-types, zeroconf-list-services)
(zeroconf-get-host, zeroconf-get-domain)
(zeroconf-get-host-domain):
* lisp/nxml/rng-xsd.el (rng-xsd-compile)
(rng-xsd-make-date-time-regexp, rng-xsd-convert-date-time):
* lisp/obsolete/erc-hecomplete.el (erc-hecomplete)
(erc-command-list, erc-complete-at-prompt):
* lisp/org/ob-scheme.el (org-babel-scheme-get-buffer-impl):
* lisp/org/ob-shell.el (org-babel--variable-assignments:sh-generic)
(org-babel--variable-assignments:bash_array)
(org-babel--variable-assignments:bash_assoc)
(org-babel--variable-assignments:bash):
* lisp/org/org-clock.el (org-day-of-week):
* lisp/progmodes/cperl-mode.el (cperl-char-ends-sub-keyword-p):
* lisp/progmodes/gud.el (gud-find-c-expr, gud-innermost-expr)
(gud-prev-expr, gud-next-expr):
* lisp/textmodes/table.el (table--at-cell-p, table--probe-cell)
(table--get-cell-justify-property)
(table--get-cell-valign-property)
(table--put-cell-justify-property)
(table--put-cell-valign-property): Fix typos.
* lisp/so-long.el (fboundp): Doc fix.
(so-long-mode-line-info, so-long-mode)
(so-long--check-header-modes): Fix typos.
* lisp/emulation/viper-mous.el (viper-surrounding-word)
(viper-mouse-click-get-word): Fix typos.
(viper-mouse-click-search-word): Doc fix.
* lisp/erc/erc-backend.el (erc-forward-word, erc-word-at-arg-p)
(erc-bounds-of-word-at-point): Fix typos.
(erc-decode-string-from-target, define-erc-response-handler):
Refill docstring.
* lisp/erc/erc-dcc.el (pcomplete/erc-mode/DCC): Fix typo.
(erc-dcc-get-host, erc-dcc-auto-mask-p, erc-dcc-get-file):
Doc fixes.
* lisp/erc/erc-networks.el (erc-network-name): Fix typo.
(erc-determine-network): Refill docstring.
* lisp/net/dbus.el (dbus-list-hash-table)
(dbus-string-to-byte-array, dbus-byte-array-to-string)
(dbus-check-event): Fix typos.
(dbus-introspect-get-property): Doc fix.
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler):
Rename ARGS to ARGUMENTS. Doc fix.
(tramp-adb-sh-fix-ls-output, tramp-adb-execute-adb-command)
(tramp-adb-find-test-command): Fix typos.
* lisp/net/tramp.el (tramp-set-completion-function)
(tramp-get-completion-function)
(tramp-completion-dissect-file-name)
(tramp-completion-dissect-file-name1)
(tramp-get-completion-methods, tramp-get-completion-user-host)
(tramp-get-inode, tramp-get-device, tramp-mode-string-to-int)
(tramp-call-process, tramp-call-process-region)
(tramp-process-lines): Fix typos.
(tramp-interrupt-process): Doc fix.
* lisp/org/ob-core.el (org-babel-named-src-block-regexp-for-name)
(org-babel-named-data-regexp-for-name): Doc fix.
(org-babel-src-block-names, org-babel-result-names): Fix typos.
* lisp/progmodes/inf-lisp.el (lisp-input-filter): Doc fix.
(lisp-fn-called-at-pt): Fix typo.
* lisp/progmodes/xref.el (xref-backend-identifier-at-point):
Doc fix.
(xref-backend-identifier-completion-table): Fix typo.
2019-10-20 10:12:27 +00:00
|
|
|
"Move forward one word, ignoring any subword settings.
|
|
|
|
If no subword-mode is active, then this is (forward-word)."
|
2016-02-04 03:24:18 +00:00
|
|
|
(skip-syntax-forward "^w")
|
|
|
|
(> (skip-syntax-forward "w") 0))
|
|
|
|
|
|
|
|
(defun erc-word-at-arg-p (pos)
|
lisp/*.el: Fix typos and improve some docstrings
* lisp/auth-source.el (auth-source-backend-parse-parameters)
(auth-source-search-collection)
(auth-source-secrets-listify-pattern)
(auth-source--decode-octal-string, auth-source-plstore-search):
* lisp/registry.el (registry-lookup)
(registry-lookup-breaks-before-lexbind)
(registry-lookup-secondary, registry-lookup-secondary-value)
(registry-search, registry-delete, registry-size, registry-full)
(registry-insert, registry-reindex, registry-prune)
(registry-collect-prune-candidates):
* lisp/subr.el (nbutlast, process-live-p):
* lisp/tab-bar.el (tab-bar-list):
* lisp/cedet/ede/linux.el (ede-linux--get-archs)
(ede-linux--include-path, ede-linux-load):
* lisp/erc/erc-log.el (erc-log-all-but-server-buffers):
* lisp/erc/erc-pcomplete.el (pcomplete-erc-commands)
(pcomplete-erc-ops, pcomplete-erc-not-ops, pcomplete-erc-nicks)
(pcomplete-erc-all-nicks, pcomplete-erc-channels)
(pcomplete-erc-command-name, pcomplete-erc-parse-arguments):
* lisp/eshell/em-term.el (eshell-visual-command-p):
* lisp/gnus/gnus-cache.el (gnus-cache-fully-p):
* lisp/gnus/nnmail.el (nnmail-get-active)
(nnmail-fancy-expiry-target):
* lisp/mail/mail-utils.el (mail-string-delete):
* lisp/mail/supercite.el (sc-hdr, sc-valid-index-p):
* lisp/net/ange-ftp.el (ange-ftp-use-smart-gateway-p):
* lisp/net/nsm.el (nsm-save-fingerprint-maybe)
(nsm-network-same-subnet, nsm-should-check):
* lisp/net/rcirc.el (rcirc-looking-at-input):
* lisp/net/tramp-cache.el (tramp-get-hash-table):
* lisp/net/tramp-compat.el (tramp-compat-process-running-p):
* lisp/net/tramp-smb.el (tramp-smb-get-share)
(tramp-smb-get-localname, tramp-smb-read-file-entry)
(tramp-smb-get-cifs-capabilities, tramp-smb-get-stat-capability):
* lisp/net/zeroconf.el (zeroconf-list-service-names)
(zeroconf-list-service-types, zeroconf-list-services)
(zeroconf-get-host, zeroconf-get-domain)
(zeroconf-get-host-domain):
* lisp/nxml/rng-xsd.el (rng-xsd-compile)
(rng-xsd-make-date-time-regexp, rng-xsd-convert-date-time):
* lisp/obsolete/erc-hecomplete.el (erc-hecomplete)
(erc-command-list, erc-complete-at-prompt):
* lisp/org/ob-scheme.el (org-babel-scheme-get-buffer-impl):
* lisp/org/ob-shell.el (org-babel--variable-assignments:sh-generic)
(org-babel--variable-assignments:bash_array)
(org-babel--variable-assignments:bash_assoc)
(org-babel--variable-assignments:bash):
* lisp/org/org-clock.el (org-day-of-week):
* lisp/progmodes/cperl-mode.el (cperl-char-ends-sub-keyword-p):
* lisp/progmodes/gud.el (gud-find-c-expr, gud-innermost-expr)
(gud-prev-expr, gud-next-expr):
* lisp/textmodes/table.el (table--at-cell-p, table--probe-cell)
(table--get-cell-justify-property)
(table--get-cell-valign-property)
(table--put-cell-justify-property)
(table--put-cell-valign-property): Fix typos.
* lisp/so-long.el (fboundp): Doc fix.
(so-long-mode-line-info, so-long-mode)
(so-long--check-header-modes): Fix typos.
* lisp/emulation/viper-mous.el (viper-surrounding-word)
(viper-mouse-click-get-word): Fix typos.
(viper-mouse-click-search-word): Doc fix.
* lisp/erc/erc-backend.el (erc-forward-word, erc-word-at-arg-p)
(erc-bounds-of-word-at-point): Fix typos.
(erc-decode-string-from-target, define-erc-response-handler):
Refill docstring.
* lisp/erc/erc-dcc.el (pcomplete/erc-mode/DCC): Fix typo.
(erc-dcc-get-host, erc-dcc-auto-mask-p, erc-dcc-get-file):
Doc fixes.
* lisp/erc/erc-networks.el (erc-network-name): Fix typo.
(erc-determine-network): Refill docstring.
* lisp/net/dbus.el (dbus-list-hash-table)
(dbus-string-to-byte-array, dbus-byte-array-to-string)
(dbus-check-event): Fix typos.
(dbus-introspect-get-property): Doc fix.
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler):
Rename ARGS to ARGUMENTS. Doc fix.
(tramp-adb-sh-fix-ls-output, tramp-adb-execute-adb-command)
(tramp-adb-find-test-command): Fix typos.
* lisp/net/tramp.el (tramp-set-completion-function)
(tramp-get-completion-function)
(tramp-completion-dissect-file-name)
(tramp-completion-dissect-file-name1)
(tramp-get-completion-methods, tramp-get-completion-user-host)
(tramp-get-inode, tramp-get-device, tramp-mode-string-to-int)
(tramp-call-process, tramp-call-process-region)
(tramp-process-lines): Fix typos.
(tramp-interrupt-process): Doc fix.
* lisp/org/ob-core.el (org-babel-named-src-block-regexp-for-name)
(org-babel-named-data-regexp-for-name): Doc fix.
(org-babel-src-block-names, org-babel-result-names): Fix typos.
* lisp/progmodes/inf-lisp.el (lisp-input-filter): Doc fix.
(lisp-fn-called-at-pt): Fix typo.
* lisp/progmodes/xref.el (xref-backend-identifier-at-point):
Doc fix.
(xref-backend-identifier-completion-table): Fix typo.
2019-10-20 10:12:27 +00:00
|
|
|
"Report whether the char after a given POS has word syntax.
|
2016-02-04 03:24:18 +00:00
|
|
|
If POS is out of range, the value is nil."
|
|
|
|
(let ((c (char-after pos)))
|
|
|
|
(if c
|
|
|
|
(eq ?w (char-syntax c))
|
|
|
|
nil)))
|
|
|
|
|
|
|
|
(defun erc-bounds-of-word-at-point ()
|
lisp/*.el: Fix typos and improve some docstrings
* lisp/auth-source.el (auth-source-backend-parse-parameters)
(auth-source-search-collection)
(auth-source-secrets-listify-pattern)
(auth-source--decode-octal-string, auth-source-plstore-search):
* lisp/registry.el (registry-lookup)
(registry-lookup-breaks-before-lexbind)
(registry-lookup-secondary, registry-lookup-secondary-value)
(registry-search, registry-delete, registry-size, registry-full)
(registry-insert, registry-reindex, registry-prune)
(registry-collect-prune-candidates):
* lisp/subr.el (nbutlast, process-live-p):
* lisp/tab-bar.el (tab-bar-list):
* lisp/cedet/ede/linux.el (ede-linux--get-archs)
(ede-linux--include-path, ede-linux-load):
* lisp/erc/erc-log.el (erc-log-all-but-server-buffers):
* lisp/erc/erc-pcomplete.el (pcomplete-erc-commands)
(pcomplete-erc-ops, pcomplete-erc-not-ops, pcomplete-erc-nicks)
(pcomplete-erc-all-nicks, pcomplete-erc-channels)
(pcomplete-erc-command-name, pcomplete-erc-parse-arguments):
* lisp/eshell/em-term.el (eshell-visual-command-p):
* lisp/gnus/gnus-cache.el (gnus-cache-fully-p):
* lisp/gnus/nnmail.el (nnmail-get-active)
(nnmail-fancy-expiry-target):
* lisp/mail/mail-utils.el (mail-string-delete):
* lisp/mail/supercite.el (sc-hdr, sc-valid-index-p):
* lisp/net/ange-ftp.el (ange-ftp-use-smart-gateway-p):
* lisp/net/nsm.el (nsm-save-fingerprint-maybe)
(nsm-network-same-subnet, nsm-should-check):
* lisp/net/rcirc.el (rcirc-looking-at-input):
* lisp/net/tramp-cache.el (tramp-get-hash-table):
* lisp/net/tramp-compat.el (tramp-compat-process-running-p):
* lisp/net/tramp-smb.el (tramp-smb-get-share)
(tramp-smb-get-localname, tramp-smb-read-file-entry)
(tramp-smb-get-cifs-capabilities, tramp-smb-get-stat-capability):
* lisp/net/zeroconf.el (zeroconf-list-service-names)
(zeroconf-list-service-types, zeroconf-list-services)
(zeroconf-get-host, zeroconf-get-domain)
(zeroconf-get-host-domain):
* lisp/nxml/rng-xsd.el (rng-xsd-compile)
(rng-xsd-make-date-time-regexp, rng-xsd-convert-date-time):
* lisp/obsolete/erc-hecomplete.el (erc-hecomplete)
(erc-command-list, erc-complete-at-prompt):
* lisp/org/ob-scheme.el (org-babel-scheme-get-buffer-impl):
* lisp/org/ob-shell.el (org-babel--variable-assignments:sh-generic)
(org-babel--variable-assignments:bash_array)
(org-babel--variable-assignments:bash_assoc)
(org-babel--variable-assignments:bash):
* lisp/org/org-clock.el (org-day-of-week):
* lisp/progmodes/cperl-mode.el (cperl-char-ends-sub-keyword-p):
* lisp/progmodes/gud.el (gud-find-c-expr, gud-innermost-expr)
(gud-prev-expr, gud-next-expr):
* lisp/textmodes/table.el (table--at-cell-p, table--probe-cell)
(table--get-cell-justify-property)
(table--get-cell-valign-property)
(table--put-cell-justify-property)
(table--put-cell-valign-property): Fix typos.
* lisp/so-long.el (fboundp): Doc fix.
(so-long-mode-line-info, so-long-mode)
(so-long--check-header-modes): Fix typos.
* lisp/emulation/viper-mous.el (viper-surrounding-word)
(viper-mouse-click-get-word): Fix typos.
(viper-mouse-click-search-word): Doc fix.
* lisp/erc/erc-backend.el (erc-forward-word, erc-word-at-arg-p)
(erc-bounds-of-word-at-point): Fix typos.
(erc-decode-string-from-target, define-erc-response-handler):
Refill docstring.
* lisp/erc/erc-dcc.el (pcomplete/erc-mode/DCC): Fix typo.
(erc-dcc-get-host, erc-dcc-auto-mask-p, erc-dcc-get-file):
Doc fixes.
* lisp/erc/erc-networks.el (erc-network-name): Fix typo.
(erc-determine-network): Refill docstring.
* lisp/net/dbus.el (dbus-list-hash-table)
(dbus-string-to-byte-array, dbus-byte-array-to-string)
(dbus-check-event): Fix typos.
(dbus-introspect-get-property): Doc fix.
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler):
Rename ARGS to ARGUMENTS. Doc fix.
(tramp-adb-sh-fix-ls-output, tramp-adb-execute-adb-command)
(tramp-adb-find-test-command): Fix typos.
* lisp/net/tramp.el (tramp-set-completion-function)
(tramp-get-completion-function)
(tramp-completion-dissect-file-name)
(tramp-completion-dissect-file-name1)
(tramp-get-completion-methods, tramp-get-completion-user-host)
(tramp-get-inode, tramp-get-device, tramp-mode-string-to-int)
(tramp-call-process, tramp-call-process-region)
(tramp-process-lines): Fix typos.
(tramp-interrupt-process): Doc fix.
* lisp/org/ob-core.el (org-babel-named-src-block-regexp-for-name)
(org-babel-named-data-regexp-for-name): Doc fix.
(org-babel-src-block-names, org-babel-result-names): Fix typos.
* lisp/progmodes/inf-lisp.el (lisp-input-filter): Doc fix.
(lisp-fn-called-at-pt): Fix typo.
* lisp/progmodes/xref.el (xref-backend-identifier-at-point):
Doc fix.
(xref-backend-identifier-completion-table): Fix typo.
2019-10-20 10:12:27 +00:00
|
|
|
"Return the bounds of word at point, or nil if we're not at a word.
|
|
|
|
If no subword-mode is active, then this is
|
|
|
|
\(bounds-of-thing-at-point 'word)."
|
2016-02-04 03:24:18 +00:00
|
|
|
(if (or (erc-word-at-arg-p (point))
|
|
|
|
(erc-word-at-arg-p (1- (point))))
|
|
|
|
(save-excursion
|
|
|
|
(let* ((start (progn (skip-syntax-backward "w") (point)))
|
|
|
|
(end (progn (skip-syntax-forward "w") (point))))
|
|
|
|
(cons start end)))
|
|
|
|
nil))
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
;; Used by CTCP functions
|
|
|
|
(defun erc-upcase-first-word (str)
|
|
|
|
"Upcase the first word in STR."
|
|
|
|
(with-temp-buffer
|
|
|
|
(insert str)
|
|
|
|
(goto-char (point-min))
|
2016-02-04 03:24:18 +00:00
|
|
|
(upcase-region (point) (progn (erc-forward-word) (point)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(buffer-string)))
|
|
|
|
|
2007-04-01 13:36:38 +00:00
|
|
|
(defun erc-server-setup-periodical-ping (buffer)
|
|
|
|
"Set up a timer to periodically ping the current server.
|
|
|
|
The current buffer is given by BUFFER."
|
|
|
|
(with-current-buffer buffer
|
|
|
|
(and erc-server-ping-handler (erc-cancel-timer erc-server-ping-handler))
|
|
|
|
(when erc-server-send-ping-interval
|
|
|
|
(setq erc-server-ping-handler (run-with-timer
|
|
|
|
4 erc-server-send-ping-interval
|
|
|
|
#'erc-server-send-ping
|
|
|
|
buffer))
|
2015-12-27 20:19:13 +00:00
|
|
|
|
|
|
|
;; I check the timer alist for an existing timer. If one exists,
|
|
|
|
;; I get rid of it
|
|
|
|
(let ((timer-tuple (assq buffer erc-server-ping-timer-alist)))
|
|
|
|
(if timer-tuple
|
|
|
|
;; this buffer already has a timer. Cancel it and set the new one
|
|
|
|
(progn
|
|
|
|
(erc-cancel-timer (cdr timer-tuple))
|
|
|
|
(setf (cdr (assq buffer erc-server-ping-timer-alist)) erc-server-ping-handler))
|
|
|
|
|
|
|
|
;; no existing timer for this buffer. Add new one
|
|
|
|
(add-to-list 'erc-server-ping-timer-alist
|
|
|
|
(cons buffer erc-server-ping-handler)))))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
2013-09-19 02:21:31 +00:00
|
|
|
(defun erc-server-process-alive (&optional buffer)
|
|
|
|
"Return non-nil when BUFFER has an `erc-server-process' open or running."
|
|
|
|
(with-current-buffer (or buffer (current-buffer))
|
|
|
|
(and erc-server-process
|
|
|
|
(processp erc-server-process)
|
|
|
|
(memq (process-status erc-server-process) '(run open)))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
;;;; Connecting to a server
|
2015-12-27 22:12:30 +00:00
|
|
|
(defun erc-open-network-stream (name buffer host service)
|
|
|
|
"As `open-network-stream', but does non-blocking IO"
|
|
|
|
(make-network-process :name name :buffer buffer
|
|
|
|
:host host :service service :nowait t))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
2007-04-01 13:36:38 +00:00
|
|
|
(defun erc-server-connect (server port buffer)
|
|
|
|
"Perform the connection and login using the specified SERVER and PORT.
|
|
|
|
We will store server variables in the buffer given by BUFFER."
|
2015-12-27 22:12:30 +00:00
|
|
|
(let ((msg (erc-format-message 'connect ?S server ?p port)) process)
|
2006-01-29 13:08:58 +00:00
|
|
|
(message "%s" msg)
|
2015-12-27 22:12:30 +00:00
|
|
|
(setq process (funcall erc-server-connect-function
|
|
|
|
(format "erc-%s-%s" server port) nil server port))
|
|
|
|
(unless (processp process)
|
|
|
|
(error "Connection attempt failed"))
|
|
|
|
;; Misc server variables
|
|
|
|
(with-current-buffer buffer
|
|
|
|
(setq erc-server-process process)
|
|
|
|
(setq erc-server-quitting nil)
|
|
|
|
(setq erc-server-reconnecting nil)
|
|
|
|
(setq erc-server-timed-out nil)
|
|
|
|
(setq erc-server-banned nil)
|
|
|
|
(setq erc-server-error-occurred nil)
|
|
|
|
(let ((time (erc-current-time)))
|
|
|
|
(setq erc-server-last-sent-time time)
|
|
|
|
(setq erc-server-last-ping-time time)
|
|
|
|
(setq erc-server-last-received-time time))
|
|
|
|
(setq erc-server-lines-sent 0)
|
|
|
|
;; last peers (sender and receiver)
|
|
|
|
(setq erc-server-last-peers '(nil . nil)))
|
|
|
|
;; we do our own encoding and decoding
|
|
|
|
(when (fboundp 'set-process-coding-system)
|
|
|
|
(set-process-coding-system process 'raw-text))
|
|
|
|
;; process handlers
|
2016-04-02 19:38:54 +00:00
|
|
|
(set-process-sentinel process #'erc-process-sentinel)
|
|
|
|
(set-process-filter process #'erc-server-filter-function)
|
2015-12-27 22:12:30 +00:00
|
|
|
(set-process-buffer process buffer)
|
|
|
|
(erc-log "\n\n\n********************************************\n")
|
|
|
|
(message "%s" (erc-format-message
|
|
|
|
'login ?n
|
|
|
|
(with-current-buffer buffer (erc-current-nick))))
|
|
|
|
;; wait with script loading until we receive a confirmation (first
|
|
|
|
;; MOTD line)
|
|
|
|
(if (eq (process-status process) 'connect)
|
|
|
|
;; waiting for a non-blocking connect - keep the user informed
|
|
|
|
(erc-display-message nil nil buffer "Opening connection..\n")
|
2007-04-01 13:36:38 +00:00
|
|
|
(message "%s...done" msg)
|
2015-12-27 22:12:30 +00:00
|
|
|
(erc-login)) ))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
2007-01-05 02:09:07 +00:00
|
|
|
(defun erc-server-reconnect ()
|
lisp/*.el: Fix typos and improve some docstrings
* lisp/auth-source.el (auth-source-backend-parse-parameters)
(auth-source-search-collection)
(auth-source-secrets-listify-pattern)
(auth-source--decode-octal-string, auth-source-plstore-search):
* lisp/registry.el (registry-lookup)
(registry-lookup-breaks-before-lexbind)
(registry-lookup-secondary, registry-lookup-secondary-value)
(registry-search, registry-delete, registry-size, registry-full)
(registry-insert, registry-reindex, registry-prune)
(registry-collect-prune-candidates):
* lisp/subr.el (nbutlast, process-live-p):
* lisp/tab-bar.el (tab-bar-list):
* lisp/cedet/ede/linux.el (ede-linux--get-archs)
(ede-linux--include-path, ede-linux-load):
* lisp/erc/erc-log.el (erc-log-all-but-server-buffers):
* lisp/erc/erc-pcomplete.el (pcomplete-erc-commands)
(pcomplete-erc-ops, pcomplete-erc-not-ops, pcomplete-erc-nicks)
(pcomplete-erc-all-nicks, pcomplete-erc-channels)
(pcomplete-erc-command-name, pcomplete-erc-parse-arguments):
* lisp/eshell/em-term.el (eshell-visual-command-p):
* lisp/gnus/gnus-cache.el (gnus-cache-fully-p):
* lisp/gnus/nnmail.el (nnmail-get-active)
(nnmail-fancy-expiry-target):
* lisp/mail/mail-utils.el (mail-string-delete):
* lisp/mail/supercite.el (sc-hdr, sc-valid-index-p):
* lisp/net/ange-ftp.el (ange-ftp-use-smart-gateway-p):
* lisp/net/nsm.el (nsm-save-fingerprint-maybe)
(nsm-network-same-subnet, nsm-should-check):
* lisp/net/rcirc.el (rcirc-looking-at-input):
* lisp/net/tramp-cache.el (tramp-get-hash-table):
* lisp/net/tramp-compat.el (tramp-compat-process-running-p):
* lisp/net/tramp-smb.el (tramp-smb-get-share)
(tramp-smb-get-localname, tramp-smb-read-file-entry)
(tramp-smb-get-cifs-capabilities, tramp-smb-get-stat-capability):
* lisp/net/zeroconf.el (zeroconf-list-service-names)
(zeroconf-list-service-types, zeroconf-list-services)
(zeroconf-get-host, zeroconf-get-domain)
(zeroconf-get-host-domain):
* lisp/nxml/rng-xsd.el (rng-xsd-compile)
(rng-xsd-make-date-time-regexp, rng-xsd-convert-date-time):
* lisp/obsolete/erc-hecomplete.el (erc-hecomplete)
(erc-command-list, erc-complete-at-prompt):
* lisp/org/ob-scheme.el (org-babel-scheme-get-buffer-impl):
* lisp/org/ob-shell.el (org-babel--variable-assignments:sh-generic)
(org-babel--variable-assignments:bash_array)
(org-babel--variable-assignments:bash_assoc)
(org-babel--variable-assignments:bash):
* lisp/org/org-clock.el (org-day-of-week):
* lisp/progmodes/cperl-mode.el (cperl-char-ends-sub-keyword-p):
* lisp/progmodes/gud.el (gud-find-c-expr, gud-innermost-expr)
(gud-prev-expr, gud-next-expr):
* lisp/textmodes/table.el (table--at-cell-p, table--probe-cell)
(table--get-cell-justify-property)
(table--get-cell-valign-property)
(table--put-cell-justify-property)
(table--put-cell-valign-property): Fix typos.
* lisp/so-long.el (fboundp): Doc fix.
(so-long-mode-line-info, so-long-mode)
(so-long--check-header-modes): Fix typos.
* lisp/emulation/viper-mous.el (viper-surrounding-word)
(viper-mouse-click-get-word): Fix typos.
(viper-mouse-click-search-word): Doc fix.
* lisp/erc/erc-backend.el (erc-forward-word, erc-word-at-arg-p)
(erc-bounds-of-word-at-point): Fix typos.
(erc-decode-string-from-target, define-erc-response-handler):
Refill docstring.
* lisp/erc/erc-dcc.el (pcomplete/erc-mode/DCC): Fix typo.
(erc-dcc-get-host, erc-dcc-auto-mask-p, erc-dcc-get-file):
Doc fixes.
* lisp/erc/erc-networks.el (erc-network-name): Fix typo.
(erc-determine-network): Refill docstring.
* lisp/net/dbus.el (dbus-list-hash-table)
(dbus-string-to-byte-array, dbus-byte-array-to-string)
(dbus-check-event): Fix typos.
(dbus-introspect-get-property): Doc fix.
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler):
Rename ARGS to ARGUMENTS. Doc fix.
(tramp-adb-sh-fix-ls-output, tramp-adb-execute-adb-command)
(tramp-adb-find-test-command): Fix typos.
* lisp/net/tramp.el (tramp-set-completion-function)
(tramp-get-completion-function)
(tramp-completion-dissect-file-name)
(tramp-completion-dissect-file-name1)
(tramp-get-completion-methods, tramp-get-completion-user-host)
(tramp-get-inode, tramp-get-device, tramp-mode-string-to-int)
(tramp-call-process, tramp-call-process-region)
(tramp-process-lines): Fix typos.
(tramp-interrupt-process): Doc fix.
* lisp/org/ob-core.el (org-babel-named-src-block-regexp-for-name)
(org-babel-named-data-regexp-for-name): Doc fix.
(org-babel-src-block-names, org-babel-result-names): Fix typos.
* lisp/progmodes/inf-lisp.el (lisp-input-filter): Doc fix.
(lisp-fn-called-at-pt): Fix typo.
* lisp/progmodes/xref.el (xref-backend-identifier-at-point):
Doc fix.
(xref-backend-identifier-completion-table): Fix typo.
2019-10-20 10:12:27 +00:00
|
|
|
"Reestablish the current IRC connection.
|
2007-01-05 02:09:07 +00:00
|
|
|
Make sure you are in an ERC buffer when running this."
|
2007-09-08 03:07:09 +00:00
|
|
|
(let ((buffer (erc-server-buffer)))
|
|
|
|
(unless (buffer-live-p buffer)
|
|
|
|
(if (eq major-mode 'erc-mode)
|
|
|
|
(setq buffer (current-buffer))
|
|
|
|
(error "Reconnect must be run from an ERC buffer")))
|
|
|
|
(with-current-buffer buffer
|
2007-01-05 02:09:07 +00:00
|
|
|
(erc-update-mode-line)
|
|
|
|
(erc-set-active-buffer (current-buffer))
|
|
|
|
(setq erc-server-last-sent-time 0)
|
|
|
|
(setq erc-server-lines-sent 0)
|
2010-01-25 18:49:23 +00:00
|
|
|
(let ((erc-server-connect-function (or erc-session-connector
|
2016-04-02 19:38:54 +00:00
|
|
|
#'erc-open-network-stream)))
|
2010-01-25 18:49:23 +00:00
|
|
|
(erc-open erc-session-server erc-session-port erc-server-current-nick
|
|
|
|
erc-session-user-full-name t erc-session-password)))))
|
2007-01-05 02:09:07 +00:00
|
|
|
|
2016-04-02 19:38:54 +00:00
|
|
|
(defun erc-server-delayed-reconnect (buffer)
|
2015-11-13 21:34:32 +00:00
|
|
|
(if (buffer-live-p buffer)
|
|
|
|
(with-current-buffer buffer
|
|
|
|
(erc-server-reconnect))))
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
(defun erc-server-filter-function (process string)
|
|
|
|
"The process filter for the ERC server."
|
|
|
|
(with-current-buffer (process-buffer process)
|
2007-04-01 13:36:38 +00:00
|
|
|
(setq erc-server-last-received-time (erc-current-time))
|
2006-01-29 13:08:58 +00:00
|
|
|
;; If you think this is written in a weird way - please refer to the
|
|
|
|
;; docstring of `erc-server-processing-p'
|
|
|
|
(if erc-server-processing-p
|
|
|
|
(setq erc-server-filter-data
|
|
|
|
(if erc-server-filter-data
|
|
|
|
(concat erc-server-filter-data string)
|
|
|
|
string))
|
|
|
|
;; This will be true even if another process is spawned!
|
|
|
|
(let ((erc-server-processing-p t))
|
|
|
|
(setq erc-server-filter-data (if erc-server-filter-data
|
|
|
|
(concat erc-server-filter-data
|
|
|
|
string)
|
|
|
|
string))
|
|
|
|
(while (and erc-server-filter-data
|
|
|
|
(string-match "[\n\r]+" erc-server-filter-data))
|
|
|
|
(let ((line (substring erc-server-filter-data
|
|
|
|
0 (match-beginning 0))))
|
|
|
|
(setq erc-server-filter-data
|
|
|
|
(if (= (match-end 0)
|
|
|
|
(length erc-server-filter-data))
|
|
|
|
nil
|
|
|
|
(substring erc-server-filter-data
|
|
|
|
(match-end 0))))
|
2010-08-08 22:13:53 +00:00
|
|
|
(erc-log-irc-protocol line nil)
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-parse-server-response process line)))))))
|
|
|
|
|
Reimplement inline functions in ERC with define-inline.
* lisp/erc/erc-backend.el: (erc-server-reconnect-p): Reimplement using
define-inline.
* lisp/erc/erc-dcc.el: (erc-dcc-unquote-filename, erc-dcc-get-parent):
Reimplement using define-inline.
* lisp/erc/erc-services.el: (erc-nickserv-alist-sender,
erc-nickserv-alist-regexp, erc-nickserv-alist-nickserv,
erc-nickserv-alist-ident-keyword, erc-nickserv-alist-use-nick-p,
erc-nickserv-alist-ident-command,
erc-nickserv-alist-identified-regexp): Reimplement using define-inline.
* lisp/erc/erc.el: (erc-get-channel-user, erc-get-server-user,
erc-add-server-user, erc-remove-server-user, erc-channel-user-owner-p,
erc-channel-user-admin-p, erc-channel-user-op-p,
erc-channel-user-halfop-p, erc-channel-user-voice-p, erc-log):
Reimplement using define-inline.
2017-11-18 13:40:08 +00:00
|
|
|
(define-inline erc-server-reconnect-p (event)
|
2007-01-05 02:09:07 +00:00
|
|
|
"Return non-nil if ERC should attempt to reconnect automatically.
|
|
|
|
EVENT is the message received from the closed connection process."
|
Reimplement inline functions in ERC with define-inline.
* lisp/erc/erc-backend.el: (erc-server-reconnect-p): Reimplement using
define-inline.
* lisp/erc/erc-dcc.el: (erc-dcc-unquote-filename, erc-dcc-get-parent):
Reimplement using define-inline.
* lisp/erc/erc-services.el: (erc-nickserv-alist-sender,
erc-nickserv-alist-regexp, erc-nickserv-alist-nickserv,
erc-nickserv-alist-ident-keyword, erc-nickserv-alist-use-nick-p,
erc-nickserv-alist-ident-command,
erc-nickserv-alist-identified-regexp): Reimplement using define-inline.
* lisp/erc/erc.el: (erc-get-channel-user, erc-get-server-user,
erc-add-server-user, erc-remove-server-user, erc-channel-user-owner-p,
erc-channel-user-admin-p, erc-channel-user-op-p,
erc-channel-user-halfop-p, erc-channel-user-voice-p, erc-log):
Reimplement using define-inline.
2017-11-18 13:40:08 +00:00
|
|
|
(inline-letevals (event)
|
|
|
|
(inline-quote
|
|
|
|
(or erc-server-reconnecting
|
|
|
|
(and erc-server-auto-reconnect
|
|
|
|
(not erc-server-banned)
|
|
|
|
;; make sure we don't infinitely try to reconnect, unless the
|
|
|
|
;; user wants that
|
|
|
|
(or (eq erc-server-reconnect-attempts t)
|
|
|
|
(and (integerp erc-server-reconnect-attempts)
|
|
|
|
(< erc-server-reconnect-count
|
|
|
|
erc-server-reconnect-attempts)))
|
|
|
|
(or erc-server-timed-out
|
|
|
|
(not (string-match "^deleted" ,event)))
|
|
|
|
;; open-network-stream-nowait error for connection refused
|
|
|
|
(if (string-match "^failed with code 111" ,event) 'nonblocking t))))))
|
2007-01-05 02:09:07 +00:00
|
|
|
|
2007-09-08 03:07:09 +00:00
|
|
|
(defun erc-process-sentinel-2 (event buffer)
|
|
|
|
"Called when `erc-process-sentinel-1' has detected an unexpected disconnect."
|
|
|
|
(if (not (buffer-live-p buffer))
|
|
|
|
(erc-update-mode-line)
|
|
|
|
(with-current-buffer buffer
|
2015-11-13 21:34:32 +00:00
|
|
|
(let ((reconnect-p (erc-server-reconnect-p event)) message delay)
|
|
|
|
(setq message (if reconnect-p 'disconnected 'disconnected-noreconnect))
|
|
|
|
(erc-display-message nil 'error (current-buffer) message)
|
2007-09-08 03:07:09 +00:00
|
|
|
(if (not reconnect-p)
|
|
|
|
;; terminate, do not reconnect
|
|
|
|
(progn
|
|
|
|
(erc-display-message nil 'error (current-buffer)
|
|
|
|
'terminated ?e event)
|
|
|
|
;; Update mode line indicators
|
|
|
|
(erc-update-mode-line)
|
|
|
|
(set-buffer-modified-p nil))
|
|
|
|
;; reconnect
|
2016-04-02 19:38:54 +00:00
|
|
|
(condition-case nil
|
2007-09-08 03:07:09 +00:00
|
|
|
(progn
|
2015-11-13 21:34:32 +00:00
|
|
|
(setq erc-server-reconnecting nil
|
|
|
|
erc-server-reconnect-count (1+ erc-server-reconnect-count))
|
|
|
|
(setq delay erc-server-reconnect-timeout)
|
|
|
|
(run-at-time delay nil
|
2016-04-02 19:38:54 +00:00
|
|
|
#'erc-server-delayed-reconnect buffer))
|
2015-11-13 21:34:32 +00:00
|
|
|
(error (unless (integerp erc-server-reconnect-attempts)
|
|
|
|
(message "%s ... %s"
|
|
|
|
"Reconnecting until we succeed"
|
|
|
|
"kill the ERC server buffer to stop"))
|
2016-04-02 19:38:54 +00:00
|
|
|
(erc-server-delayed-reconnect buffer))))))))
|
2007-09-08 03:07:09 +00:00
|
|
|
|
|
|
|
(defun erc-process-sentinel-1 (event buffer)
|
2007-01-05 02:09:07 +00:00
|
|
|
"Called when `erc-process-sentinel' has decided that we're disconnecting.
|
|
|
|
Determine whether user has quit or whether erc has been terminated.
|
|
|
|
Conditionally try to reconnect and take appropriate action."
|
2007-09-08 03:07:09 +00:00
|
|
|
(with-current-buffer buffer
|
|
|
|
(if erc-server-quitting
|
|
|
|
;; normal quit
|
|
|
|
(progn
|
|
|
|
(erc-display-message nil 'error (current-buffer) 'finished)
|
|
|
|
;; Update mode line indicators
|
|
|
|
(erc-update-mode-line)
|
|
|
|
;; Kill server buffer if user wants it
|
2006-01-29 13:08:58 +00:00
|
|
|
(set-buffer-modified-p nil)
|
2007-09-08 03:07:09 +00:00
|
|
|
(when erc-kill-server-buffer-on-quit
|
|
|
|
(kill-buffer (current-buffer))))
|
|
|
|
;; unexpected disconnect
|
|
|
|
(erc-process-sentinel-2 event buffer))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(defun erc-process-sentinel (cproc event)
|
|
|
|
"Sentinel function for ERC process."
|
2010-10-23 19:35:22 +00:00
|
|
|
(let ((buf (process-buffer cproc)))
|
|
|
|
(when (buffer-live-p buf)
|
|
|
|
(with-current-buffer buf
|
|
|
|
(erc-log (format
|
2014-11-09 01:51:43 +00:00
|
|
|
"SENTINEL: proc: %S status: %S event: %S (quitting: %S)"
|
2010-10-23 19:35:22 +00:00
|
|
|
cproc (process-status cproc) event erc-server-quitting))
|
|
|
|
(if (string-match "^open" event)
|
|
|
|
;; newly opened connection (no wait)
|
|
|
|
(erc-login)
|
|
|
|
;; assume event is 'failed
|
|
|
|
(erc-with-all-buffers-of-server cproc nil
|
|
|
|
(setq erc-server-connected nil))
|
|
|
|
(when erc-server-ping-handler
|
|
|
|
(progn (erc-cancel-timer erc-server-ping-handler)
|
|
|
|
(setq erc-server-ping-handler nil)))
|
|
|
|
(run-hook-with-args 'erc-disconnected-hook
|
|
|
|
(erc-current-nick) (system-name) "")
|
2015-12-27 21:36:55 +00:00
|
|
|
(dolist (buf (erc-buffer-filter (lambda () (boundp 'erc-channel-users)) cproc))
|
|
|
|
(with-current-buffer buf
|
|
|
|
(setq erc-channel-users (make-hash-table :test 'equal))))
|
2010-10-23 19:35:22 +00:00
|
|
|
;; Remove the prompt
|
|
|
|
(goto-char (or (marker-position erc-input-marker) (point-max)))
|
|
|
|
(forward-line 0)
|
|
|
|
(erc-remove-text-properties-region (point) (point-max))
|
|
|
|
(delete-region (point) (point-max))
|
|
|
|
;; Decide what to do with the buffer
|
|
|
|
;; Restart if disconnected
|
|
|
|
(erc-process-sentinel-1 event buf))))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
;;;; Sending messages
|
|
|
|
|
|
|
|
(defun erc-coding-system-for-target (target)
|
|
|
|
"Return the coding system or cons cell appropriate for TARGET.
|
|
|
|
This is determined via `erc-encoding-coding-alist' or
|
|
|
|
`erc-server-coding-system'."
|
2007-04-01 13:36:38 +00:00
|
|
|
(unless target (setq target (erc-default-target)))
|
2006-08-03 05:10:38 +00:00
|
|
|
(or (when target
|
|
|
|
(let ((case-fold-search t))
|
|
|
|
(catch 'match
|
|
|
|
(dolist (pat erc-encoding-coding-alist)
|
|
|
|
(when (string-match (car pat) target)
|
|
|
|
(throw 'match (cdr pat)))))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(and (functionp erc-server-coding-system)
|
2008-01-25 03:28:10 +00:00
|
|
|
(funcall erc-server-coding-system target))
|
2006-01-29 13:08:58 +00:00
|
|
|
erc-server-coding-system))
|
|
|
|
|
|
|
|
(defun erc-decode-string-from-target (str target)
|
|
|
|
"Decode STR as appropriate for TARGET.
|
lisp/*.el: Fix typos and improve some docstrings
* lisp/auth-source.el (auth-source-backend-parse-parameters)
(auth-source-search-collection)
(auth-source-secrets-listify-pattern)
(auth-source--decode-octal-string, auth-source-plstore-search):
* lisp/registry.el (registry-lookup)
(registry-lookup-breaks-before-lexbind)
(registry-lookup-secondary, registry-lookup-secondary-value)
(registry-search, registry-delete, registry-size, registry-full)
(registry-insert, registry-reindex, registry-prune)
(registry-collect-prune-candidates):
* lisp/subr.el (nbutlast, process-live-p):
* lisp/tab-bar.el (tab-bar-list):
* lisp/cedet/ede/linux.el (ede-linux--get-archs)
(ede-linux--include-path, ede-linux-load):
* lisp/erc/erc-log.el (erc-log-all-but-server-buffers):
* lisp/erc/erc-pcomplete.el (pcomplete-erc-commands)
(pcomplete-erc-ops, pcomplete-erc-not-ops, pcomplete-erc-nicks)
(pcomplete-erc-all-nicks, pcomplete-erc-channels)
(pcomplete-erc-command-name, pcomplete-erc-parse-arguments):
* lisp/eshell/em-term.el (eshell-visual-command-p):
* lisp/gnus/gnus-cache.el (gnus-cache-fully-p):
* lisp/gnus/nnmail.el (nnmail-get-active)
(nnmail-fancy-expiry-target):
* lisp/mail/mail-utils.el (mail-string-delete):
* lisp/mail/supercite.el (sc-hdr, sc-valid-index-p):
* lisp/net/ange-ftp.el (ange-ftp-use-smart-gateway-p):
* lisp/net/nsm.el (nsm-save-fingerprint-maybe)
(nsm-network-same-subnet, nsm-should-check):
* lisp/net/rcirc.el (rcirc-looking-at-input):
* lisp/net/tramp-cache.el (tramp-get-hash-table):
* lisp/net/tramp-compat.el (tramp-compat-process-running-p):
* lisp/net/tramp-smb.el (tramp-smb-get-share)
(tramp-smb-get-localname, tramp-smb-read-file-entry)
(tramp-smb-get-cifs-capabilities, tramp-smb-get-stat-capability):
* lisp/net/zeroconf.el (zeroconf-list-service-names)
(zeroconf-list-service-types, zeroconf-list-services)
(zeroconf-get-host, zeroconf-get-domain)
(zeroconf-get-host-domain):
* lisp/nxml/rng-xsd.el (rng-xsd-compile)
(rng-xsd-make-date-time-regexp, rng-xsd-convert-date-time):
* lisp/obsolete/erc-hecomplete.el (erc-hecomplete)
(erc-command-list, erc-complete-at-prompt):
* lisp/org/ob-scheme.el (org-babel-scheme-get-buffer-impl):
* lisp/org/ob-shell.el (org-babel--variable-assignments:sh-generic)
(org-babel--variable-assignments:bash_array)
(org-babel--variable-assignments:bash_assoc)
(org-babel--variable-assignments:bash):
* lisp/org/org-clock.el (org-day-of-week):
* lisp/progmodes/cperl-mode.el (cperl-char-ends-sub-keyword-p):
* lisp/progmodes/gud.el (gud-find-c-expr, gud-innermost-expr)
(gud-prev-expr, gud-next-expr):
* lisp/textmodes/table.el (table--at-cell-p, table--probe-cell)
(table--get-cell-justify-property)
(table--get-cell-valign-property)
(table--put-cell-justify-property)
(table--put-cell-valign-property): Fix typos.
* lisp/so-long.el (fboundp): Doc fix.
(so-long-mode-line-info, so-long-mode)
(so-long--check-header-modes): Fix typos.
* lisp/emulation/viper-mous.el (viper-surrounding-word)
(viper-mouse-click-get-word): Fix typos.
(viper-mouse-click-search-word): Doc fix.
* lisp/erc/erc-backend.el (erc-forward-word, erc-word-at-arg-p)
(erc-bounds-of-word-at-point): Fix typos.
(erc-decode-string-from-target, define-erc-response-handler):
Refill docstring.
* lisp/erc/erc-dcc.el (pcomplete/erc-mode/DCC): Fix typo.
(erc-dcc-get-host, erc-dcc-auto-mask-p, erc-dcc-get-file):
Doc fixes.
* lisp/erc/erc-networks.el (erc-network-name): Fix typo.
(erc-determine-network): Refill docstring.
* lisp/net/dbus.el (dbus-list-hash-table)
(dbus-string-to-byte-array, dbus-byte-array-to-string)
(dbus-check-event): Fix typos.
(dbus-introspect-get-property): Doc fix.
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler):
Rename ARGS to ARGUMENTS. Doc fix.
(tramp-adb-sh-fix-ls-output, tramp-adb-execute-adb-command)
(tramp-adb-find-test-command): Fix typos.
* lisp/net/tramp.el (tramp-set-completion-function)
(tramp-get-completion-function)
(tramp-completion-dissect-file-name)
(tramp-completion-dissect-file-name1)
(tramp-get-completion-methods, tramp-get-completion-user-host)
(tramp-get-inode, tramp-get-device, tramp-mode-string-to-int)
(tramp-call-process, tramp-call-process-region)
(tramp-process-lines): Fix typos.
(tramp-interrupt-process): Doc fix.
* lisp/org/ob-core.el (org-babel-named-src-block-regexp-for-name)
(org-babel-named-data-regexp-for-name): Doc fix.
(org-babel-src-block-names, org-babel-result-names): Fix typos.
* lisp/progmodes/inf-lisp.el (lisp-input-filter): Doc fix.
(lisp-fn-called-at-pt): Fix typo.
* lisp/progmodes/xref.el (xref-backend-identifier-at-point):
Doc fix.
(xref-backend-identifier-completion-table): Fix typo.
2019-10-20 10:12:27 +00:00
|
|
|
This is indicated by `erc-encoding-coding-alist', defaulting to the
|
|
|
|
value of `erc-server-coding-system'."
|
2006-01-29 13:08:58 +00:00
|
|
|
(unless (stringp str)
|
|
|
|
(setq str ""))
|
|
|
|
(let ((coding (erc-coding-system-for-target target)))
|
|
|
|
(when (consp coding)
|
|
|
|
(setq coding (cdr coding)))
|
2010-11-05 14:17:46 +00:00
|
|
|
(when (eq coding 'undecided)
|
|
|
|
(let ((codings (detect-coding-string str))
|
|
|
|
(precedence erc-coding-system-precedence))
|
|
|
|
(while (and precedence
|
|
|
|
(not (memq (car precedence) codings)))
|
|
|
|
(pop precedence))
|
|
|
|
(when precedence
|
|
|
|
(setq coding (car precedence)))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-decode-coding-string str coding)))
|
|
|
|
|
|
|
|
;; proposed name, not used by anything yet
|
|
|
|
(defun erc-send-line (text display-fn)
|
|
|
|
"Send TEXT to the current server. Wrapping and flood control apply.
|
|
|
|
Use DISPLAY-FN to show the results."
|
|
|
|
(mapc (lambda (line)
|
|
|
|
(erc-server-send line)
|
|
|
|
(funcall display-fn))
|
|
|
|
(erc-split-line text)))
|
|
|
|
|
|
|
|
;; From Circe, with modifications
|
|
|
|
(defun erc-server-send (string &optional forcep target)
|
|
|
|
"Send STRING to the current server.
|
|
|
|
If FORCEP is non-nil, no flood protection is done - the string is
|
lisp/*.el: Fix typos and other trivial doc fixes
* lisp/allout-widgets.el (allout-widgets-auto-activation)
(allout-current-decorated-p):
* lisp/auth-source.el (auth-source-protocols):
* lisp/autorevert.el (auto-revert-set-timer):
* lisp/battery.el (battery-mode-line-limit):
* lisp/calc/calcalg3.el (math-map-binop):
* lisp/calendar/cal-dst.el (calendar-dst-find-startend):
* lisp/calendar/cal-mayan.el (calendar-mayan-long-count-to-absolute):
* lisp/calendar/calendar.el (calendar-date-echo-text)
(calendar-generate-month, calendar-string-spread)
(calendar-cursor-to-date, calendar-read, calendar-read-date)
(calendar-mark-visible-date, calendar-dayname-on-or-before):
* lisp/calendar/diary-lib.el (diary-ordinal-suffix):
* lisp/cedet/ede/autoconf-edit.el (autoconf-new-program)
(autoconf-find-last-macro, autoconf-parameter-strip):
* lisp/cedet/ede/config.el (ede-target-with-config-build):
* lisp/cedet/ede/linux.el (ede-linux--detect-architecture)
(ede-linux--get-architecture):
* lisp/cedet/semantic/complete.el (semantic-collector-calculate-cache)
(semantic-displayer-abstract, semantic-displayer-point-position):
* lisp/cedet/semantic/format.el (semantic-format-face-alist)
(semantic-format-tag-short-doc):
* lisp/cedet/semantic/fw.el (semantic-find-file-noselect):
* lisp/cedet/semantic/idle.el (semantic-idle-scheduler-work-idle-time)
(semantic-idle-breadcrumbs-display-function)
(semantic-idle-breadcrumbs-format-tag-list-function):
* lisp/cedet/semantic/lex.el (semantic-lex-map-types)
(define-lex, define-lex-block-type-analyzer):
* lisp/cedet/semantic/senator.el (senator-search-default-tag-filter):
* lisp/cedet/semantic/symref.el (semantic-symref-result)
(semantic-symref-hit-to-tag-via-db):
* lisp/cedet/semantic/symref.el (semantic-symref-tool-baseclass):
* lisp/cedet/semantic/tag.el (semantic-tag-new-variable)
(semantic-tag-new-include, semantic-tag-new-package)
(semantic-tag-set-faux, semantic-create-tag-proxy)
(semantic-tag-function-parent)
(semantic-tag-components-with-overlays):
* lisp/cedet/srecode/cpp.el (srecode-cpp-namespaces)
(srecode-semantic-handle-:c, srecode-semantic-apply-tag-to-dict):
* lisp/cedet/srecode/dictionary.el (srecode-create-dictionary)
(srecode-dictionary-add-entries, srecode-dictionary-lookup-name)
(srecode-create-dictionaries-from-tags):
* lisp/cmuscheme.el (scheme-compile-region):
* lisp/color.el (color-lab-to-lch):
* lisp/doc-view.el (doc-view-image-width)
(doc-view-set-up-single-converter):
* lisp/dynamic-setting.el (font-setting-change-default-font)
(dynamic-setting-handle-config-changed-event):
* lisp/elec-pair.el (electric-pair-text-pairs)
(electric-pair-skip-whitespace-function)
(electric-pair-string-bound-function):
* lisp/emacs-lisp/avl-tree.el (avl-tree--del-balance)
(avl-tree-member, avl-tree-mapcar, avl-tree-iter):
* lisp/emacs-lisp/bytecomp.el (byte-compile-generate-call-tree):
* lisp/emacs-lisp/checkdoc.el (checkdoc-autofix-flag)
(checkdoc-spellcheck-documentation-flag, checkdoc-ispell)
(checkdoc-ispell-current-buffer, checkdoc-ispell-interactive)
(checkdoc-ispell-message-interactive)
(checkdoc-ispell-message-text, checkdoc-ispell-start)
(checkdoc-ispell-continue, checkdoc-ispell-comments)
(checkdoc-ispell-defun):
* lisp/emacs-lisp/cl-generic.el (cl--generic-search-method):
* lisp/emacs-lisp/eieio-custom.el (eieio-read-customization-group):
* lisp/emacs-lisp/lisp.el (forward-sexp, up-list):
* lisp/emacs-lisp/package-x.el (package--archive-contents-from-file):
* lisp/emacs-lisp/package.el (package-desc)
(package--make-autoloads-and-stuff, package-hidden-regexps):
* lisp/emacs-lisp/tcover-ses.el (ses-exercise-startup):
* lisp/emacs-lisp/testcover.el (testcover-nohits)
(testcover-1value):
* lisp/epg.el (epg-receive-keys, epg-start-edit-key):
* lisp/erc/erc-backend.el (erc-server-processing-p)
(erc-split-line-length, erc-server-coding-system)
(erc-server-send, erc-message):
* lisp/erc/erc-button.el (erc-button-face, erc-button-alist)
(erc-browse-emacswiki):
* lisp/erc/erc-ezbounce.el (erc-ezbounce, erc-ezb-get-login):
* lisp/erc/erc-fill.el (erc-fill-variable-maximum-indentation):
* lisp/erc/erc-log.el (erc-current-logfile):
* lisp/erc/erc-match.el (erc-log-match-format)
(erc-text-matched-hook):
* lisp/erc/erc-netsplit.el (erc-netsplit, erc-netsplit-debug):
* lisp/erc/erc-networks.el (erc-server-alist)
(erc-networks-alist, erc-current-network):
* lisp/erc/erc-ring.el (erc-input-ring-index):
* lisp/erc/erc-speedbar.el (erc-speedbar)
(erc-speedbar-update-channel):
* lisp/erc/erc-stamp.el (erc-timestamp-only-if-changed-flag):
* lisp/erc/erc-track.el (erc-track-position-in-mode-line)
(erc-track-remove-from-mode-line, erc-modified-channels-update)
(erc-track-last-non-erc-buffer, erc-track-sort-by-importance)
(erc-track-get-active-buffer):
* lisp/erc/erc.el (erc-get-channel-user-list)
(erc-echo-notice-hook, erc-echo-notice-always-hook)
(erc-wash-quit-reason, erc-format-@nick):
* lisp/ffap.el (ffap-latex-mode):
* lisp/files.el (abort-if-file-too-large)
(dir-locals--get-sort-score, buffer-stale--default-function):
* lisp/filesets.el (filesets-tree-max-level, filesets-data)
(filesets-update-pre010505):
* lisp/gnus/gnus-agent.el (gnus-agent-flush-cache):
* lisp/gnus/gnus-art.el (gnus-article-encrypt-protocol)
(gnus-button-prefer-mid-or-mail):
* lisp/gnus/gnus-cus.el (gnus-group-parameters):
* lisp/gnus/gnus-demon.el (gnus-demon-handlers)
(gnus-demon-run-callback):
* lisp/gnus/gnus-dired.el (gnus-dired-print):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event-from-buffer):
* lisp/gnus/gnus-range.el (gnus-range-normalize):
* lisp/gnus/gnus-spec.el (gnus-pad-form):
* lisp/gnus/gnus-srvr.el (gnus-server-agent, gnus-server-cloud)
(gnus-server-opened, gnus-server-closed, gnus-server-denied)
(gnus-server-offline):
* lisp/gnus/gnus-sum.el (gnus-refer-thread-use-nnir)
(gnus-refer-thread-limit-to-thread)
(gnus-summary-limit-include-thread, gnus-summary-refer-thread)
(gnus-summary-find-matching):
* lisp/gnus/gnus-util.el (gnus-rescale-image):
* lisp/gnus/gnus.el (gnus-summary-line-format, gnus-no-server):
* lisp/gnus/mail-source.el (mail-source-incoming-file-prefix):
* lisp/gnus/message.el (message-cite-reply-position)
(message-cite-style-outlook, message-cite-style-thunderbird)
(message-cite-style-gmail, message--send-mail-maybe-partially):
* lisp/gnus/mm-extern.el (mm-inline-external-body):
* lisp/gnus/mm-partial.el (mm-inline-partial):
* lisp/gnus/mml-sec.el (mml-secure-message-sign)
(mml-secure-message-sign-encrypt, mml-secure-message-encrypt):
* lisp/gnus/mml2015.el (mml2015-epg-key-image)
(mml2015-epg-key-image-to-string):
* lisp/gnus/nndiary.el (nndiary-reminders, nndiary-get-new-mail):
* lisp/gnus/nnheader.el (nnheader-directory-files-is-safe):
* lisp/gnus/nnir.el (nnir-search-history)
(nnir-imap-search-other, nnir-artlist-length)
(nnir-artlist-article, nnir-artitem-group, nnir-artitem-number)
(nnir-artitem-rsv, nnir-article-group, nnir-article-number)
(nnir-article-rsv, nnir-article-ids, nnir-categorize)
(nnir-retrieve-headers-override-function)
(nnir-imap-default-search-key, nnir-hyrex-additional-switches)
(gnus-group-make-nnir-group, nnir-run-namazu, nnir-read-parms)
(nnir-read-parm, nnir-read-server-parm, nnir-search-thread):
* lisp/gnus/nnmairix.el (nnmairix-default-group)
(nnmairix-propagate-marks):
* lisp/gnus/smime.el (smime-keys, smime-crl-check)
(smime-verify-buffer, smime-noverify-buffer):
* lisp/gnus/spam-report.el (spam-report-url-ping-mm-url):
* lisp/gnus/spam.el (spam-spamassassin-positive-spam-flag-header)
(spam-spamassassin-spam-status-header, spam-sa-learn-rebuild)
(spam-classifications, spam-check-stat, spam-spamassassin-score):
* lisp/help.el (describe-minor-mode-from-symbol):
* lisp/hippie-exp.el (hippie-expand-ignore-buffers):
* lisp/htmlfontify.el (hfy-optimizations, hfy-face-resolve-face)
(hfy-begin-span):
* lisp/ibuf-ext.el (ibuffer-update-saved-filters-format)
(ibuffer-saved-filters, ibuffer-old-saved-filters-warning)
(ibuffer-filtering-qualifiers, ibuffer-repair-saved-filters)
(eval, ibuffer-unary-operand, file-extension, directory):
* lisp/image-dired.el (image-dired-cmd-pngcrush-options):
* lisp/image-mode.el (image-toggle-display):
* lisp/international/ccl.el (ccl-compile-read-multibyte-character)
(ccl-compile-write-multibyte-character):
* lisp/international/kkc.el (kkc-save-init-file):
* lisp/international/latin1-disp.el (latin1-display):
* lisp/international/ogonek.el (ogonek-name-encoding-alist)
(ogonek-information, ogonek-lookup-encoding)
(ogonek-deprefixify-region):
* lisp/isearch.el (isearch-filter-predicate)
(isearch--momentary-message):
* lisp/jsonrpc.el (jsonrpc-connection-send)
(jsonrpc-process-connection, jsonrpc-shutdown)
(jsonrpc--async-request-1):
* lisp/language/tibet-util.el (tibetan-char-p):
* lisp/mail/feedmail.el (feedmail-queue-use-send-time-for-date)
(feedmail-last-chance-hook, feedmail-before-fcc-hook)
(feedmail-send-it-immediately-wrapper, feedmail-find-eoh):
* lisp/mail/hashcash.el (hashcash-generate-payment)
(hashcash-generate-payment-async, hashcash-insert-payment)
(hashcash-verify-payment):
* lisp/mail/rmail.el (rmail-movemail-variant-in-use)
(rmail-get-attr-value):
* lisp/mail/rmailmm.el (rmail-mime-prefer-html, rmail-mime):
* lisp/mail/rmailsum.el (rmail-summary-show-message):
* lisp/mail/supercite.el (sc-raw-mode-toggle):
* lisp/man.el (Man-start-calling):
* lisp/mh-e/mh-acros.el (mh-do-at-event-location)
(mh-iterate-on-messages-in-region, mh-iterate-on-range):
* lisp/mh-e/mh-alias.el (mh-alias-system-aliases)
(mh-alias-reload, mh-alias-ali)
(mh-alias-canonicalize-suggestion, mh-alias-add-alias-to-file)
(mh-alias-add-alias):
* lisp/mouse.el (mouse-save-then-kill):
* lisp/net/browse-url.el (browse-url-default-macosx-browser):
* lisp/net/eudc.el (eudc-set, eudc-variable-protocol-value)
(eudc-variable-server-value, eudc-update-variable)
(eudc-expand-inline):
* lisp/net/eudcb-bbdb.el (eudc-bbdb-format-record-as-result):
* lisp/net/eudcb-ldap.el (eudc-ldap-get-field-list):
* lisp/net/pop3.el (pop3-list):
* lisp/net/soap-client.el (soap-namespace-put)
(soap-xs-parse-sequence, soap-parse-envelope):
* lisp/net/soap-inspect.el (soap-inspect-xs-complex-type):
* lisp/nxml/rng-xsd.el (rng-xsd-date-to-days):
* lisp/org/ob-C.el (org-babel-prep-session:C)
(org-babel-load-session:C):
* lisp/org/ob-J.el (org-babel-execute:J):
* lisp/org/ob-asymptote.el (org-babel-prep-session:asymptote):
* lisp/org/ob-awk.el (org-babel-execute:awk):
* lisp/org/ob-core.el (org-babel-process-file-name):
* lisp/org/ob-ebnf.el (org-babel-execute:ebnf):
* lisp/org/ob-forth.el (org-babel-execute:forth):
* lisp/org/ob-fortran.el (org-babel-execute:fortran)
(org-babel-prep-session:fortran, org-babel-load-session:fortran):
* lisp/org/ob-groovy.el (org-babel-execute:groovy):
* lisp/org/ob-io.el (org-babel-execute:io):
* lisp/org/ob-js.el (org-babel-execute:js):
* lisp/org/ob-lilypond.el (org-babel-default-header-args:lilypond)
(org-babel-lilypond-compile-post-tangle)
(org-babel-lilypond-display-pdf-post-tangle)
(org-babel-lilypond-tangle)
(org-babel-lilypond-execute-tangled-ly)
(org-babel-lilypond-compile-lilyfile)
(org-babel-lilypond-check-for-compile-error)
(org-babel-lilypond-process-compile-error)
(org-babel-lilypond-mark-error-line)
(org-babel-lilypond-parse-error-line)
(org-babel-lilypond-attempt-to-open-pdf)
(org-babel-lilypond-attempt-to-play-midi)
(org-babel-lilypond-switch-extension)
(org-babel-lilypond-set-header-args):
* lisp/org/ob-lua.el (org-babel-prep-session:lua):
* lisp/org/ob-picolisp.el (org-babel-execute:picolisp):
* lisp/org/ob-processing.el (org-babel-prep-session:processing):
* lisp/org/ob-python.el (org-babel-prep-session:python):
* lisp/org/ob-scheme.el (org-babel-scheme-capture-current-message)
(org-babel-scheme-execute-with-geiser, org-babel-execute:scheme):
* lisp/org/ob-shen.el (org-babel-execute:shen):
* lisp/org/org-agenda.el (org-agenda-entry-types)
(org-agenda-move-date-from-past-immediately-to-today)
(org-agenda-time-grid, org-agenda-sorting-strategy)
(org-agenda-filter-by-category, org-agenda-forward-block):
* lisp/org/org-colview.el (org-columns--overlay-text):
* lisp/org/org-faces.el (org-verbatim, org-cycle-level-faces):
* lisp/org/org-indent.el (org-indent-set-line-properties):
* lisp/org/org-macs.el (org-get-limited-outline-regexp):
* lisp/org/org-mobile.el (org-mobile-files):
* lisp/org/org.el (org-use-fast-todo-selection)
(org-extend-today-until, org-use-property-inheritance)
(org-refresh-effort-properties, org-open-at-point-global)
(org-track-ordered-property-with-tag, org-shiftright):
* lisp/org/ox-html.el (org-html-checkbox-type):
* lisp/org/ox-man.el (org-man-source-highlight)
(org-man-verse-block):
* lisp/org/ox-publish.el (org-publish-sitemap-default):
* lisp/outline.el (outline-head-from-level):
* lisp/progmodes/dcl-mode.el (dcl-back-to-indentation-1)
(dcl-calc-command-indent, dcl-indent-to):
* lisp/progmodes/flymake.el (flymake-make-diagnostic)
(flymake--overlays, flymake-diagnostic-functions)
(flymake-diagnostic-types-alist, flymake--backend-state)
(flymake-is-running, flymake--collect, flymake-mode):
* lisp/progmodes/gdb-mi.el (gdb-threads-list, gdb, gdb-non-stop)
(gdb-buffers, gdb-gud-context-call, gdb-jsonify-buffer):
* lisp/progmodes/grep.el (grep-error-screen-columns):
* lisp/progmodes/gud.el (gud-prev-expr):
* lisp/progmodes/ps-mode.el (ps-mode, ps-mode-target-column)
(ps-run-goto-error):
* lisp/progmodes/python.el (python-eldoc-get-doc)
(python-eldoc-function-timeout-permanent, python-eldoc-function):
* lisp/shadowfile.el (shadow-make-group):
* lisp/speedbar.el (speedbar-obj-do-check):
* lisp/textmodes/flyspell.el (flyspell-auto-correct-previous-hook):
* lisp/textmodes/reftex-cite.el (reftex-bib-or-thebib):
* lisp/textmodes/reftex-index.el (reftex-index-goto-entry)
(reftex-index-kill, reftex-index-undo):
* lisp/textmodes/reftex-parse.el (reftex-context-substring):
* lisp/textmodes/reftex.el (reftex-TeX-master-file):
* lisp/textmodes/rst.el (rst-next-hdr, rst-toc)
(rst-uncomment-region, rst-font-lock-extend-region-internal):
* lisp/thumbs.el (thumbs-mode):
* lisp/vc/ediff-util.el (ediff-restore-diff):
* lisp/vc/pcvs-defs.el (cvs-cvsroot, cvs-force-dir-tag):
* lisp/vc/vc-hg.el (vc-hg--ignore-patterns-valid-p):
* lisp/wid-edit.el (widget-field-value-set, string):
* lisp/x-dnd.el (x-dnd-version-from-flags)
(x-dnd-more-than-3-from-flags): Assorted docfixes.
2019-09-20 22:27:53 +00:00
|
|
|
sent directly. This might cause the messages to arrive in a wrong
|
2006-01-29 13:08:58 +00:00
|
|
|
order.
|
|
|
|
|
|
|
|
If TARGET is specified, look up encoding information for that
|
|
|
|
channel in `erc-encoding-coding-alist' or
|
|
|
|
`erc-server-coding-system'.
|
|
|
|
|
|
|
|
See `erc-server-flood-margin' for an explanation of the flood
|
|
|
|
protection algorithm."
|
|
|
|
(erc-log (concat "erc-server-send: " string "(" (buffer-name) ")"))
|
|
|
|
(setq erc-server-last-sent-time (erc-current-time))
|
2007-04-01 13:36:38 +00:00
|
|
|
(let ((encoding (erc-coding-system-for-target target)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(when (consp encoding)
|
|
|
|
(setq encoding (car encoding)))
|
2007-04-01 13:36:38 +00:00
|
|
|
(if (erc-server-process-alive)
|
|
|
|
(erc-with-server-buffer
|
2006-01-29 13:08:58 +00:00
|
|
|
(let ((str (concat string "\r\n")))
|
|
|
|
(if forcep
|
|
|
|
(progn
|
|
|
|
(setq erc-server-flood-last-message
|
|
|
|
(+ erc-server-flood-penalty
|
|
|
|
erc-server-flood-last-message))
|
|
|
|
(erc-log-irc-protocol str 'outbound)
|
2016-04-02 19:38:54 +00:00
|
|
|
(condition-case nil
|
2006-01-29 13:08:58 +00:00
|
|
|
(progn
|
|
|
|
;; Set encoding just before sending the string
|
|
|
|
(when (fboundp 'set-process-coding-system)
|
|
|
|
(set-process-coding-system erc-server-process
|
|
|
|
'raw-text encoding))
|
|
|
|
(process-send-string erc-server-process str))
|
|
|
|
;; See `erc-server-send-queue' for full
|
|
|
|
;; explanation of why we need this condition-case
|
|
|
|
(error nil)))
|
|
|
|
(setq erc-server-flood-queue
|
|
|
|
(append erc-server-flood-queue
|
|
|
|
(list (cons str encoding))))
|
|
|
|
(erc-server-send-queue (current-buffer))))
|
|
|
|
t)
|
|
|
|
(message "ERC: No process running")
|
|
|
|
nil)))
|
|
|
|
|
2007-12-01 03:34:03 +00:00
|
|
|
(defun erc-server-send-ping (buf)
|
|
|
|
"Send a ping to the IRC server buffer in BUF.
|
|
|
|
Additionally, detect whether the IRC process has hung."
|
2015-12-27 21:18:32 +00:00
|
|
|
(if (and (buffer-live-p buf)
|
|
|
|
(with-current-buffer buf
|
|
|
|
erc-server-last-received-time))
|
2007-12-01 03:34:03 +00:00
|
|
|
(with-current-buffer buf
|
|
|
|
(if (and erc-server-send-ping-timeout
|
Avoid some double-rounding of Lisp timestamps
Also, simplify some time-related Lisp timestamp code
while we’re in the neighborhood.
* lisp/battery.el (battery-linux-proc-acpi)
(battery-linux-sysfs, battery-upower, battery-bsd-apm):
* lisp/calendar/timeclock.el (timeclock-seconds-to-string)
(timeclock-log, timeclock-last-period)
(timeclock-entry-length, timeclock-entry-list-span)
(timeclock-find-discrep, timeclock-generate-report):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/completion.el (cmpl-hours-since-origin):
* lisp/ecomplete.el (ecomplete-decay-1):
* lisp/emacs-lisp/ert.el (ert--results-update-stats-display)
(ert--results-update-stats-display-maybe):
* lisp/emacs-lisp/timer-list.el (list-timers):
* lisp/emacs-lisp/timer.el (timer-until)
(timer-event-handler):
* lisp/erc/erc-backend.el (erc-server-send-ping)
(erc-server-send-queue, erc-handle-parsed-server-response)
(erc-handle-unknown-server-response):
* lisp/erc/erc-track.el (erc-buffer-visible):
* lisp/erc/erc.el (erc-lurker-cleanup, erc-lurker-p)
(erc-cmd-PING, erc-send-current-line):
* lisp/eshell/em-pred.el (eshell-pred-file-time):
* lisp/eshell/em-unix.el (eshell-show-elapsed-time):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event:org-timestamp):
* lisp/gnus/gnus-int.el (gnus-backend-trace):
* lisp/gnus/gnus-sum.el (gnus-user-date):
* lisp/gnus/mail-source.el (mail-source-delete-crash-box):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/ibuf-ext.el (ibuffer-mark-old-buffers):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/mouse.el (mouse--down-1-maybe-follows-link)
(mouse--click-1-maybe-follows-link):
* lisp/mpc.el (mpc--faster-toggle):
* lisp/net/rcirc.el (rcirc-handler-ctcp-KEEPALIVE)
(rcirc-sentinel):
* lisp/net/tramp-cache.el (tramp-get-file-property):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-newer-than-file-p)
(tramp-maybe-open-connection):
* lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection):
* lisp/org/org-clock.el (org-clock-resolve):
(org-resolve-clocks, org-clock-in, org-clock-out, org-clock-sum):
* lisp/org/org-timer.el (org-timer-start)
(org-timer-pause-or-continue, org-timer-seconds):
* lisp/org/org.el (org-evaluate-time-range):
* lisp/org/ox-publish.el (org-publish-cache-ctime-of-src):
* lisp/pixel-scroll.el (pixel-scroll-in-rush-p):
* lisp/play/hanoi.el (hanoi-move-ring):
* lisp/proced.el (proced-format-time):
* lisp/progmodes/cpp.el (cpp-progress-message):
* lisp/progmodes/flymake.el (flymake--handle-report):
* lisp/progmodes/js.el (js--wait-for-matching-output):
* lisp/subr.el (progress-reporter-do-update):
* lisp/term/xterm.el (xterm--read-event-for-query):
* lisp/time.el (display-time-update, emacs-uptime):
* lisp/tooltip.el (tooltip-delay):
* lisp/url/url-cookie.el (url-cookie-parse-file-netscape):
* lisp/url/url-queue.el (url-queue-prune-old-entries):
* lisp/url/url.el (url-retrieve-synchronously):
* lisp/xt-mouse.el (xterm-mouse-event):
Avoid double-rounding of time-related values. Simplify.
* lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
When hoping for the best (unlikely), use a better decoded time.
(icalendar--convert-sexp-to-ical): Avoid unnecessary encode-time.
* lisp/calendar/timeclock.el (timeclock-when-to-leave):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/desktop.el (desktop-create-buffer):
* lisp/emacs-lisp/benchmark.el (benchmark-elapse):
* lisp/gnus/gnus-art.el (article-lapsed-string):
* lisp/gnus/gnus-group.el (gnus-group-timestamp-delta):
* lisp/gnus/nnmail.el (nnmail-expired-article-p):
* lisp/gnus/nnmaildir.el (nnmaildir-request-expire-articles):
* lisp/nxml/rng-maint.el (rng-time-function):
* lisp/org/org-clock.el (org-clock-get-clocked-time)
(org-clock-resolve, org-resolve-clocks, org-resolve-clocks-if-idle):
* lisp/org/org-habit.el (org-habit-insert-consistency-graphs):
* lisp/progmodes/vhdl-mode.el (vhdl-update-progress-info)
(vhdl-fix-case-region-1):
Use time-since instead of open-coding most of it.
* lisp/erc/erc-dcc.el (erc-dcc-get-sentinel):
* lisp/erc/erc.el (erc-string-to-emacs-time, erc-time-gt):
Now obsolete. All uses changed.
(erc-time-diff): Accept all Lisp time values.
All uses changed.
* lisp/gnus/gnus-demon.el (gnus-demon-idle-since):
* lisp/gnus/gnus-score.el (gnus-score-headers):
* lisp/gnus/nneething.el (nneething-make-head):
* lisp/gnus/nnheader.el (nnheader-message-maybe):
* lisp/gnus/nnimap.el (nnimap-keepalive):
* lisp/image.el (image-animate-timeout):
* lisp/mail/feedmail.el (feedmail-rfc822-date):
* lisp/net/imap.el (imap-wait-for-tag):
* lisp/net/newst-backend.el (newsticker--image-get):
* lisp/net/rcirc.el (rcirc-handler-317, rcirc-handler-333):
* lisp/obsolete/xesam.el (xesam-refresh-entry):
* lisp/org/org-agenda.el (org-agenda-show-clocking-issues)
(org-agenda-check-clock-gap, org-agenda-to-appt):
* lisp/org/org-capture.el (org-capture-set-target-location):
* lisp/org/org-clock.el (org-clock-resolve-clock)
(org-clocktable-steps):
* lisp/org/org-colview.el (org-columns-edit-value)
(org-columns, org-agenda-columns):
* lisp/org/org-duration.el (org-duration-from-minutes):
* lisp/org/org-element.el (org-element-cache-sync-duration)
(org-element-cache-sync-break)
(org-element--cache-interrupt-p, org-element--cache-sync):
* lisp/org/org-habit.el (org-habit-get-faces)
* lisp/org/org-indent.el (org-indent-add-properties):
* lisp/org/org-table.el (org-table-sum):
* lisp/org/org-timer.el (org-timer-show-remaining-time)
(org-timer-set-timer):
* lisp/org/org.el (org-babel-load-file, org-today)
(org-auto-repeat-maybe, org-2ft, org-time-stamp)
(org-read-date-analyze, org-time-stamp-to-now)
(org-small-year-to-year, org-goto-calendar):
* lisp/org/ox.el (org-export-insert-default-template):
* lisp/ses.el (ses--time-check):
* lisp/type-break.el (type-break-time-warning)
(type-break-statistics, type-break-demo-boring):
* lisp/url/url-cache.el (url-cache-expired)
(url-cache-prune-cache):
* lisp/vc/vc-git.el (vc-git-stash-snapshot):
* lisp/erc/erc-match.el (erc-log-matches-come-back):
Simplify.
2019-02-23 02:32:31 +00:00
|
|
|
(time-less-p
|
|
|
|
erc-server-send-ping-timeout
|
|
|
|
(time-since erc-server-last-received-time)))
|
2007-12-01 03:34:03 +00:00
|
|
|
(progn
|
|
|
|
;; if the process is hung, kill it
|
|
|
|
(setq erc-server-timed-out t)
|
|
|
|
(delete-process erc-server-process))
|
|
|
|
(erc-server-send (format "PING %.0f" (erc-current-time)))))
|
|
|
|
;; remove timer if the server buffer has been killed
|
|
|
|
(let ((timer (assq buf erc-server-ping-timer-alist)))
|
|
|
|
(when timer
|
|
|
|
(erc-cancel-timer (cdr timer))
|
|
|
|
(setcdr timer nil)))))
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
;; From Circe
|
|
|
|
(defun erc-server-send-queue (buffer)
|
|
|
|
"Send messages in `erc-server-flood-queue'.
|
|
|
|
See `erc-server-flood-margin' for an explanation of the flood
|
|
|
|
protection algorithm."
|
|
|
|
(with-current-buffer buffer
|
Avoid some double-rounding of Lisp timestamps
Also, simplify some time-related Lisp timestamp code
while we’re in the neighborhood.
* lisp/battery.el (battery-linux-proc-acpi)
(battery-linux-sysfs, battery-upower, battery-bsd-apm):
* lisp/calendar/timeclock.el (timeclock-seconds-to-string)
(timeclock-log, timeclock-last-period)
(timeclock-entry-length, timeclock-entry-list-span)
(timeclock-find-discrep, timeclock-generate-report):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/completion.el (cmpl-hours-since-origin):
* lisp/ecomplete.el (ecomplete-decay-1):
* lisp/emacs-lisp/ert.el (ert--results-update-stats-display)
(ert--results-update-stats-display-maybe):
* lisp/emacs-lisp/timer-list.el (list-timers):
* lisp/emacs-lisp/timer.el (timer-until)
(timer-event-handler):
* lisp/erc/erc-backend.el (erc-server-send-ping)
(erc-server-send-queue, erc-handle-parsed-server-response)
(erc-handle-unknown-server-response):
* lisp/erc/erc-track.el (erc-buffer-visible):
* lisp/erc/erc.el (erc-lurker-cleanup, erc-lurker-p)
(erc-cmd-PING, erc-send-current-line):
* lisp/eshell/em-pred.el (eshell-pred-file-time):
* lisp/eshell/em-unix.el (eshell-show-elapsed-time):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event:org-timestamp):
* lisp/gnus/gnus-int.el (gnus-backend-trace):
* lisp/gnus/gnus-sum.el (gnus-user-date):
* lisp/gnus/mail-source.el (mail-source-delete-crash-box):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/ibuf-ext.el (ibuffer-mark-old-buffers):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/mouse.el (mouse--down-1-maybe-follows-link)
(mouse--click-1-maybe-follows-link):
* lisp/mpc.el (mpc--faster-toggle):
* lisp/net/rcirc.el (rcirc-handler-ctcp-KEEPALIVE)
(rcirc-sentinel):
* lisp/net/tramp-cache.el (tramp-get-file-property):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-newer-than-file-p)
(tramp-maybe-open-connection):
* lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection):
* lisp/org/org-clock.el (org-clock-resolve):
(org-resolve-clocks, org-clock-in, org-clock-out, org-clock-sum):
* lisp/org/org-timer.el (org-timer-start)
(org-timer-pause-or-continue, org-timer-seconds):
* lisp/org/org.el (org-evaluate-time-range):
* lisp/org/ox-publish.el (org-publish-cache-ctime-of-src):
* lisp/pixel-scroll.el (pixel-scroll-in-rush-p):
* lisp/play/hanoi.el (hanoi-move-ring):
* lisp/proced.el (proced-format-time):
* lisp/progmodes/cpp.el (cpp-progress-message):
* lisp/progmodes/flymake.el (flymake--handle-report):
* lisp/progmodes/js.el (js--wait-for-matching-output):
* lisp/subr.el (progress-reporter-do-update):
* lisp/term/xterm.el (xterm--read-event-for-query):
* lisp/time.el (display-time-update, emacs-uptime):
* lisp/tooltip.el (tooltip-delay):
* lisp/url/url-cookie.el (url-cookie-parse-file-netscape):
* lisp/url/url-queue.el (url-queue-prune-old-entries):
* lisp/url/url.el (url-retrieve-synchronously):
* lisp/xt-mouse.el (xterm-mouse-event):
Avoid double-rounding of time-related values. Simplify.
* lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
When hoping for the best (unlikely), use a better decoded time.
(icalendar--convert-sexp-to-ical): Avoid unnecessary encode-time.
* lisp/calendar/timeclock.el (timeclock-when-to-leave):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/desktop.el (desktop-create-buffer):
* lisp/emacs-lisp/benchmark.el (benchmark-elapse):
* lisp/gnus/gnus-art.el (article-lapsed-string):
* lisp/gnus/gnus-group.el (gnus-group-timestamp-delta):
* lisp/gnus/nnmail.el (nnmail-expired-article-p):
* lisp/gnus/nnmaildir.el (nnmaildir-request-expire-articles):
* lisp/nxml/rng-maint.el (rng-time-function):
* lisp/org/org-clock.el (org-clock-get-clocked-time)
(org-clock-resolve, org-resolve-clocks, org-resolve-clocks-if-idle):
* lisp/org/org-habit.el (org-habit-insert-consistency-graphs):
* lisp/progmodes/vhdl-mode.el (vhdl-update-progress-info)
(vhdl-fix-case-region-1):
Use time-since instead of open-coding most of it.
* lisp/erc/erc-dcc.el (erc-dcc-get-sentinel):
* lisp/erc/erc.el (erc-string-to-emacs-time, erc-time-gt):
Now obsolete. All uses changed.
(erc-time-diff): Accept all Lisp time values.
All uses changed.
* lisp/gnus/gnus-demon.el (gnus-demon-idle-since):
* lisp/gnus/gnus-score.el (gnus-score-headers):
* lisp/gnus/nneething.el (nneething-make-head):
* lisp/gnus/nnheader.el (nnheader-message-maybe):
* lisp/gnus/nnimap.el (nnimap-keepalive):
* lisp/image.el (image-animate-timeout):
* lisp/mail/feedmail.el (feedmail-rfc822-date):
* lisp/net/imap.el (imap-wait-for-tag):
* lisp/net/newst-backend.el (newsticker--image-get):
* lisp/net/rcirc.el (rcirc-handler-317, rcirc-handler-333):
* lisp/obsolete/xesam.el (xesam-refresh-entry):
* lisp/org/org-agenda.el (org-agenda-show-clocking-issues)
(org-agenda-check-clock-gap, org-agenda-to-appt):
* lisp/org/org-capture.el (org-capture-set-target-location):
* lisp/org/org-clock.el (org-clock-resolve-clock)
(org-clocktable-steps):
* lisp/org/org-colview.el (org-columns-edit-value)
(org-columns, org-agenda-columns):
* lisp/org/org-duration.el (org-duration-from-minutes):
* lisp/org/org-element.el (org-element-cache-sync-duration)
(org-element-cache-sync-break)
(org-element--cache-interrupt-p, org-element--cache-sync):
* lisp/org/org-habit.el (org-habit-get-faces)
* lisp/org/org-indent.el (org-indent-add-properties):
* lisp/org/org-table.el (org-table-sum):
* lisp/org/org-timer.el (org-timer-show-remaining-time)
(org-timer-set-timer):
* lisp/org/org.el (org-babel-load-file, org-today)
(org-auto-repeat-maybe, org-2ft, org-time-stamp)
(org-read-date-analyze, org-time-stamp-to-now)
(org-small-year-to-year, org-goto-calendar):
* lisp/org/ox.el (org-export-insert-default-template):
* lisp/ses.el (ses--time-check):
* lisp/type-break.el (type-break-time-warning)
(type-break-statistics, type-break-demo-boring):
* lisp/url/url-cache.el (url-cache-expired)
(url-cache-prune-cache):
* lisp/vc/vc-git.el (vc-git-stash-snapshot):
* lisp/erc/erc-match.el (erc-log-matches-come-back):
Simplify.
2019-02-23 02:32:31 +00:00
|
|
|
(let ((now (current-time)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(when erc-server-flood-timer
|
|
|
|
(erc-cancel-timer erc-server-flood-timer)
|
|
|
|
(setq erc-server-flood-timer nil))
|
Avoid some double-rounding of Lisp timestamps
Also, simplify some time-related Lisp timestamp code
while we’re in the neighborhood.
* lisp/battery.el (battery-linux-proc-acpi)
(battery-linux-sysfs, battery-upower, battery-bsd-apm):
* lisp/calendar/timeclock.el (timeclock-seconds-to-string)
(timeclock-log, timeclock-last-period)
(timeclock-entry-length, timeclock-entry-list-span)
(timeclock-find-discrep, timeclock-generate-report):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/completion.el (cmpl-hours-since-origin):
* lisp/ecomplete.el (ecomplete-decay-1):
* lisp/emacs-lisp/ert.el (ert--results-update-stats-display)
(ert--results-update-stats-display-maybe):
* lisp/emacs-lisp/timer-list.el (list-timers):
* lisp/emacs-lisp/timer.el (timer-until)
(timer-event-handler):
* lisp/erc/erc-backend.el (erc-server-send-ping)
(erc-server-send-queue, erc-handle-parsed-server-response)
(erc-handle-unknown-server-response):
* lisp/erc/erc-track.el (erc-buffer-visible):
* lisp/erc/erc.el (erc-lurker-cleanup, erc-lurker-p)
(erc-cmd-PING, erc-send-current-line):
* lisp/eshell/em-pred.el (eshell-pred-file-time):
* lisp/eshell/em-unix.el (eshell-show-elapsed-time):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event:org-timestamp):
* lisp/gnus/gnus-int.el (gnus-backend-trace):
* lisp/gnus/gnus-sum.el (gnus-user-date):
* lisp/gnus/mail-source.el (mail-source-delete-crash-box):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/ibuf-ext.el (ibuffer-mark-old-buffers):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/mouse.el (mouse--down-1-maybe-follows-link)
(mouse--click-1-maybe-follows-link):
* lisp/mpc.el (mpc--faster-toggle):
* lisp/net/rcirc.el (rcirc-handler-ctcp-KEEPALIVE)
(rcirc-sentinel):
* lisp/net/tramp-cache.el (tramp-get-file-property):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-newer-than-file-p)
(tramp-maybe-open-connection):
* lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection):
* lisp/org/org-clock.el (org-clock-resolve):
(org-resolve-clocks, org-clock-in, org-clock-out, org-clock-sum):
* lisp/org/org-timer.el (org-timer-start)
(org-timer-pause-or-continue, org-timer-seconds):
* lisp/org/org.el (org-evaluate-time-range):
* lisp/org/ox-publish.el (org-publish-cache-ctime-of-src):
* lisp/pixel-scroll.el (pixel-scroll-in-rush-p):
* lisp/play/hanoi.el (hanoi-move-ring):
* lisp/proced.el (proced-format-time):
* lisp/progmodes/cpp.el (cpp-progress-message):
* lisp/progmodes/flymake.el (flymake--handle-report):
* lisp/progmodes/js.el (js--wait-for-matching-output):
* lisp/subr.el (progress-reporter-do-update):
* lisp/term/xterm.el (xterm--read-event-for-query):
* lisp/time.el (display-time-update, emacs-uptime):
* lisp/tooltip.el (tooltip-delay):
* lisp/url/url-cookie.el (url-cookie-parse-file-netscape):
* lisp/url/url-queue.el (url-queue-prune-old-entries):
* lisp/url/url.el (url-retrieve-synchronously):
* lisp/xt-mouse.el (xterm-mouse-event):
Avoid double-rounding of time-related values. Simplify.
* lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
When hoping for the best (unlikely), use a better decoded time.
(icalendar--convert-sexp-to-ical): Avoid unnecessary encode-time.
* lisp/calendar/timeclock.el (timeclock-when-to-leave):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/desktop.el (desktop-create-buffer):
* lisp/emacs-lisp/benchmark.el (benchmark-elapse):
* lisp/gnus/gnus-art.el (article-lapsed-string):
* lisp/gnus/gnus-group.el (gnus-group-timestamp-delta):
* lisp/gnus/nnmail.el (nnmail-expired-article-p):
* lisp/gnus/nnmaildir.el (nnmaildir-request-expire-articles):
* lisp/nxml/rng-maint.el (rng-time-function):
* lisp/org/org-clock.el (org-clock-get-clocked-time)
(org-clock-resolve, org-resolve-clocks, org-resolve-clocks-if-idle):
* lisp/org/org-habit.el (org-habit-insert-consistency-graphs):
* lisp/progmodes/vhdl-mode.el (vhdl-update-progress-info)
(vhdl-fix-case-region-1):
Use time-since instead of open-coding most of it.
* lisp/erc/erc-dcc.el (erc-dcc-get-sentinel):
* lisp/erc/erc.el (erc-string-to-emacs-time, erc-time-gt):
Now obsolete. All uses changed.
(erc-time-diff): Accept all Lisp time values.
All uses changed.
* lisp/gnus/gnus-demon.el (gnus-demon-idle-since):
* lisp/gnus/gnus-score.el (gnus-score-headers):
* lisp/gnus/nneething.el (nneething-make-head):
* lisp/gnus/nnheader.el (nnheader-message-maybe):
* lisp/gnus/nnimap.el (nnimap-keepalive):
* lisp/image.el (image-animate-timeout):
* lisp/mail/feedmail.el (feedmail-rfc822-date):
* lisp/net/imap.el (imap-wait-for-tag):
* lisp/net/newst-backend.el (newsticker--image-get):
* lisp/net/rcirc.el (rcirc-handler-317, rcirc-handler-333):
* lisp/obsolete/xesam.el (xesam-refresh-entry):
* lisp/org/org-agenda.el (org-agenda-show-clocking-issues)
(org-agenda-check-clock-gap, org-agenda-to-appt):
* lisp/org/org-capture.el (org-capture-set-target-location):
* lisp/org/org-clock.el (org-clock-resolve-clock)
(org-clocktable-steps):
* lisp/org/org-colview.el (org-columns-edit-value)
(org-columns, org-agenda-columns):
* lisp/org/org-duration.el (org-duration-from-minutes):
* lisp/org/org-element.el (org-element-cache-sync-duration)
(org-element-cache-sync-break)
(org-element--cache-interrupt-p, org-element--cache-sync):
* lisp/org/org-habit.el (org-habit-get-faces)
* lisp/org/org-indent.el (org-indent-add-properties):
* lisp/org/org-table.el (org-table-sum):
* lisp/org/org-timer.el (org-timer-show-remaining-time)
(org-timer-set-timer):
* lisp/org/org.el (org-babel-load-file, org-today)
(org-auto-repeat-maybe, org-2ft, org-time-stamp)
(org-read-date-analyze, org-time-stamp-to-now)
(org-small-year-to-year, org-goto-calendar):
* lisp/org/ox.el (org-export-insert-default-template):
* lisp/ses.el (ses--time-check):
* lisp/type-break.el (type-break-time-warning)
(type-break-statistics, type-break-demo-boring):
* lisp/url/url-cache.el (url-cache-expired)
(url-cache-prune-cache):
* lisp/vc/vc-git.el (vc-git-stash-snapshot):
* lisp/erc/erc-match.el (erc-log-matches-come-back):
Simplify.
2019-02-23 02:32:31 +00:00
|
|
|
(when (time-less-p erc-server-flood-last-message now)
|
|
|
|
(setq erc-server-flood-last-message (erc-emacs-time-to-erc-time now)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(while (and erc-server-flood-queue
|
Avoid some double-rounding of Lisp timestamps
Also, simplify some time-related Lisp timestamp code
while we’re in the neighborhood.
* lisp/battery.el (battery-linux-proc-acpi)
(battery-linux-sysfs, battery-upower, battery-bsd-apm):
* lisp/calendar/timeclock.el (timeclock-seconds-to-string)
(timeclock-log, timeclock-last-period)
(timeclock-entry-length, timeclock-entry-list-span)
(timeclock-find-discrep, timeclock-generate-report):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/completion.el (cmpl-hours-since-origin):
* lisp/ecomplete.el (ecomplete-decay-1):
* lisp/emacs-lisp/ert.el (ert--results-update-stats-display)
(ert--results-update-stats-display-maybe):
* lisp/emacs-lisp/timer-list.el (list-timers):
* lisp/emacs-lisp/timer.el (timer-until)
(timer-event-handler):
* lisp/erc/erc-backend.el (erc-server-send-ping)
(erc-server-send-queue, erc-handle-parsed-server-response)
(erc-handle-unknown-server-response):
* lisp/erc/erc-track.el (erc-buffer-visible):
* lisp/erc/erc.el (erc-lurker-cleanup, erc-lurker-p)
(erc-cmd-PING, erc-send-current-line):
* lisp/eshell/em-pred.el (eshell-pred-file-time):
* lisp/eshell/em-unix.el (eshell-show-elapsed-time):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event:org-timestamp):
* lisp/gnus/gnus-int.el (gnus-backend-trace):
* lisp/gnus/gnus-sum.el (gnus-user-date):
* lisp/gnus/mail-source.el (mail-source-delete-crash-box):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/ibuf-ext.el (ibuffer-mark-old-buffers):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/mouse.el (mouse--down-1-maybe-follows-link)
(mouse--click-1-maybe-follows-link):
* lisp/mpc.el (mpc--faster-toggle):
* lisp/net/rcirc.el (rcirc-handler-ctcp-KEEPALIVE)
(rcirc-sentinel):
* lisp/net/tramp-cache.el (tramp-get-file-property):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-newer-than-file-p)
(tramp-maybe-open-connection):
* lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection):
* lisp/org/org-clock.el (org-clock-resolve):
(org-resolve-clocks, org-clock-in, org-clock-out, org-clock-sum):
* lisp/org/org-timer.el (org-timer-start)
(org-timer-pause-or-continue, org-timer-seconds):
* lisp/org/org.el (org-evaluate-time-range):
* lisp/org/ox-publish.el (org-publish-cache-ctime-of-src):
* lisp/pixel-scroll.el (pixel-scroll-in-rush-p):
* lisp/play/hanoi.el (hanoi-move-ring):
* lisp/proced.el (proced-format-time):
* lisp/progmodes/cpp.el (cpp-progress-message):
* lisp/progmodes/flymake.el (flymake--handle-report):
* lisp/progmodes/js.el (js--wait-for-matching-output):
* lisp/subr.el (progress-reporter-do-update):
* lisp/term/xterm.el (xterm--read-event-for-query):
* lisp/time.el (display-time-update, emacs-uptime):
* lisp/tooltip.el (tooltip-delay):
* lisp/url/url-cookie.el (url-cookie-parse-file-netscape):
* lisp/url/url-queue.el (url-queue-prune-old-entries):
* lisp/url/url.el (url-retrieve-synchronously):
* lisp/xt-mouse.el (xterm-mouse-event):
Avoid double-rounding of time-related values. Simplify.
* lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
When hoping for the best (unlikely), use a better decoded time.
(icalendar--convert-sexp-to-ical): Avoid unnecessary encode-time.
* lisp/calendar/timeclock.el (timeclock-when-to-leave):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/desktop.el (desktop-create-buffer):
* lisp/emacs-lisp/benchmark.el (benchmark-elapse):
* lisp/gnus/gnus-art.el (article-lapsed-string):
* lisp/gnus/gnus-group.el (gnus-group-timestamp-delta):
* lisp/gnus/nnmail.el (nnmail-expired-article-p):
* lisp/gnus/nnmaildir.el (nnmaildir-request-expire-articles):
* lisp/nxml/rng-maint.el (rng-time-function):
* lisp/org/org-clock.el (org-clock-get-clocked-time)
(org-clock-resolve, org-resolve-clocks, org-resolve-clocks-if-idle):
* lisp/org/org-habit.el (org-habit-insert-consistency-graphs):
* lisp/progmodes/vhdl-mode.el (vhdl-update-progress-info)
(vhdl-fix-case-region-1):
Use time-since instead of open-coding most of it.
* lisp/erc/erc-dcc.el (erc-dcc-get-sentinel):
* lisp/erc/erc.el (erc-string-to-emacs-time, erc-time-gt):
Now obsolete. All uses changed.
(erc-time-diff): Accept all Lisp time values.
All uses changed.
* lisp/gnus/gnus-demon.el (gnus-demon-idle-since):
* lisp/gnus/gnus-score.el (gnus-score-headers):
* lisp/gnus/nneething.el (nneething-make-head):
* lisp/gnus/nnheader.el (nnheader-message-maybe):
* lisp/gnus/nnimap.el (nnimap-keepalive):
* lisp/image.el (image-animate-timeout):
* lisp/mail/feedmail.el (feedmail-rfc822-date):
* lisp/net/imap.el (imap-wait-for-tag):
* lisp/net/newst-backend.el (newsticker--image-get):
* lisp/net/rcirc.el (rcirc-handler-317, rcirc-handler-333):
* lisp/obsolete/xesam.el (xesam-refresh-entry):
* lisp/org/org-agenda.el (org-agenda-show-clocking-issues)
(org-agenda-check-clock-gap, org-agenda-to-appt):
* lisp/org/org-capture.el (org-capture-set-target-location):
* lisp/org/org-clock.el (org-clock-resolve-clock)
(org-clocktable-steps):
* lisp/org/org-colview.el (org-columns-edit-value)
(org-columns, org-agenda-columns):
* lisp/org/org-duration.el (org-duration-from-minutes):
* lisp/org/org-element.el (org-element-cache-sync-duration)
(org-element-cache-sync-break)
(org-element--cache-interrupt-p, org-element--cache-sync):
* lisp/org/org-habit.el (org-habit-get-faces)
* lisp/org/org-indent.el (org-indent-add-properties):
* lisp/org/org-table.el (org-table-sum):
* lisp/org/org-timer.el (org-timer-show-remaining-time)
(org-timer-set-timer):
* lisp/org/org.el (org-babel-load-file, org-today)
(org-auto-repeat-maybe, org-2ft, org-time-stamp)
(org-read-date-analyze, org-time-stamp-to-now)
(org-small-year-to-year, org-goto-calendar):
* lisp/org/ox.el (org-export-insert-default-template):
* lisp/ses.el (ses--time-check):
* lisp/type-break.el (type-break-time-warning)
(type-break-statistics, type-break-demo-boring):
* lisp/url/url-cache.el (url-cache-expired)
(url-cache-prune-cache):
* lisp/vc/vc-git.el (vc-git-stash-snapshot):
* lisp/erc/erc-match.el (erc-log-matches-come-back):
Simplify.
2019-02-23 02:32:31 +00:00
|
|
|
(time-less-p erc-server-flood-last-message
|
|
|
|
(time-add now erc-server-flood-margin)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(let ((msg (caar erc-server-flood-queue))
|
|
|
|
(encoding (cdar erc-server-flood-queue)))
|
|
|
|
(setq erc-server-flood-queue (cdr erc-server-flood-queue)
|
|
|
|
erc-server-flood-last-message
|
|
|
|
(+ erc-server-flood-last-message
|
|
|
|
erc-server-flood-penalty))
|
|
|
|
(erc-log-irc-protocol msg 'outbound)
|
|
|
|
(erc-log (concat "erc-server-send-queue: "
|
|
|
|
msg "(" (buffer-name buffer) ")"))
|
|
|
|
(when (erc-server-process-alive)
|
2016-04-02 19:38:54 +00:00
|
|
|
(condition-case nil
|
2006-01-29 13:08:58 +00:00
|
|
|
;; Set encoding just before sending the string
|
|
|
|
(progn
|
|
|
|
(when (fboundp 'set-process-coding-system)
|
|
|
|
(set-process-coding-system erc-server-process
|
|
|
|
'raw-text encoding))
|
|
|
|
(process-send-string erc-server-process msg))
|
|
|
|
;; Sometimes the send can occur while the process is
|
|
|
|
;; being killed, which results in a weird SIGPIPE error.
|
|
|
|
;; Catch this and ignore it.
|
|
|
|
(error nil)))))
|
|
|
|
(when erc-server-flood-queue
|
|
|
|
(setq erc-server-flood-timer
|
2006-11-20 06:50:29 +00:00
|
|
|
(run-at-time (+ 0.2 erc-server-flood-penalty)
|
|
|
|
nil #'erc-server-send-queue buffer))))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(defun erc-message (message-command line &optional force)
|
|
|
|
"Send LINE to the server as a privmsg or a notice.
|
|
|
|
MESSAGE-COMMAND should be either \"PRIVMSG\" or \"NOTICE\".
|
|
|
|
If the target is \",\", the last person you've got a message from will
|
lisp/*.el: Fix typos and other trivial doc fixes
* lisp/allout-widgets.el (allout-widgets-auto-activation)
(allout-current-decorated-p):
* lisp/auth-source.el (auth-source-protocols):
* lisp/autorevert.el (auto-revert-set-timer):
* lisp/battery.el (battery-mode-line-limit):
* lisp/calc/calcalg3.el (math-map-binop):
* lisp/calendar/cal-dst.el (calendar-dst-find-startend):
* lisp/calendar/cal-mayan.el (calendar-mayan-long-count-to-absolute):
* lisp/calendar/calendar.el (calendar-date-echo-text)
(calendar-generate-month, calendar-string-spread)
(calendar-cursor-to-date, calendar-read, calendar-read-date)
(calendar-mark-visible-date, calendar-dayname-on-or-before):
* lisp/calendar/diary-lib.el (diary-ordinal-suffix):
* lisp/cedet/ede/autoconf-edit.el (autoconf-new-program)
(autoconf-find-last-macro, autoconf-parameter-strip):
* lisp/cedet/ede/config.el (ede-target-with-config-build):
* lisp/cedet/ede/linux.el (ede-linux--detect-architecture)
(ede-linux--get-architecture):
* lisp/cedet/semantic/complete.el (semantic-collector-calculate-cache)
(semantic-displayer-abstract, semantic-displayer-point-position):
* lisp/cedet/semantic/format.el (semantic-format-face-alist)
(semantic-format-tag-short-doc):
* lisp/cedet/semantic/fw.el (semantic-find-file-noselect):
* lisp/cedet/semantic/idle.el (semantic-idle-scheduler-work-idle-time)
(semantic-idle-breadcrumbs-display-function)
(semantic-idle-breadcrumbs-format-tag-list-function):
* lisp/cedet/semantic/lex.el (semantic-lex-map-types)
(define-lex, define-lex-block-type-analyzer):
* lisp/cedet/semantic/senator.el (senator-search-default-tag-filter):
* lisp/cedet/semantic/symref.el (semantic-symref-result)
(semantic-symref-hit-to-tag-via-db):
* lisp/cedet/semantic/symref.el (semantic-symref-tool-baseclass):
* lisp/cedet/semantic/tag.el (semantic-tag-new-variable)
(semantic-tag-new-include, semantic-tag-new-package)
(semantic-tag-set-faux, semantic-create-tag-proxy)
(semantic-tag-function-parent)
(semantic-tag-components-with-overlays):
* lisp/cedet/srecode/cpp.el (srecode-cpp-namespaces)
(srecode-semantic-handle-:c, srecode-semantic-apply-tag-to-dict):
* lisp/cedet/srecode/dictionary.el (srecode-create-dictionary)
(srecode-dictionary-add-entries, srecode-dictionary-lookup-name)
(srecode-create-dictionaries-from-tags):
* lisp/cmuscheme.el (scheme-compile-region):
* lisp/color.el (color-lab-to-lch):
* lisp/doc-view.el (doc-view-image-width)
(doc-view-set-up-single-converter):
* lisp/dynamic-setting.el (font-setting-change-default-font)
(dynamic-setting-handle-config-changed-event):
* lisp/elec-pair.el (electric-pair-text-pairs)
(electric-pair-skip-whitespace-function)
(electric-pair-string-bound-function):
* lisp/emacs-lisp/avl-tree.el (avl-tree--del-balance)
(avl-tree-member, avl-tree-mapcar, avl-tree-iter):
* lisp/emacs-lisp/bytecomp.el (byte-compile-generate-call-tree):
* lisp/emacs-lisp/checkdoc.el (checkdoc-autofix-flag)
(checkdoc-spellcheck-documentation-flag, checkdoc-ispell)
(checkdoc-ispell-current-buffer, checkdoc-ispell-interactive)
(checkdoc-ispell-message-interactive)
(checkdoc-ispell-message-text, checkdoc-ispell-start)
(checkdoc-ispell-continue, checkdoc-ispell-comments)
(checkdoc-ispell-defun):
* lisp/emacs-lisp/cl-generic.el (cl--generic-search-method):
* lisp/emacs-lisp/eieio-custom.el (eieio-read-customization-group):
* lisp/emacs-lisp/lisp.el (forward-sexp, up-list):
* lisp/emacs-lisp/package-x.el (package--archive-contents-from-file):
* lisp/emacs-lisp/package.el (package-desc)
(package--make-autoloads-and-stuff, package-hidden-regexps):
* lisp/emacs-lisp/tcover-ses.el (ses-exercise-startup):
* lisp/emacs-lisp/testcover.el (testcover-nohits)
(testcover-1value):
* lisp/epg.el (epg-receive-keys, epg-start-edit-key):
* lisp/erc/erc-backend.el (erc-server-processing-p)
(erc-split-line-length, erc-server-coding-system)
(erc-server-send, erc-message):
* lisp/erc/erc-button.el (erc-button-face, erc-button-alist)
(erc-browse-emacswiki):
* lisp/erc/erc-ezbounce.el (erc-ezbounce, erc-ezb-get-login):
* lisp/erc/erc-fill.el (erc-fill-variable-maximum-indentation):
* lisp/erc/erc-log.el (erc-current-logfile):
* lisp/erc/erc-match.el (erc-log-match-format)
(erc-text-matched-hook):
* lisp/erc/erc-netsplit.el (erc-netsplit, erc-netsplit-debug):
* lisp/erc/erc-networks.el (erc-server-alist)
(erc-networks-alist, erc-current-network):
* lisp/erc/erc-ring.el (erc-input-ring-index):
* lisp/erc/erc-speedbar.el (erc-speedbar)
(erc-speedbar-update-channel):
* lisp/erc/erc-stamp.el (erc-timestamp-only-if-changed-flag):
* lisp/erc/erc-track.el (erc-track-position-in-mode-line)
(erc-track-remove-from-mode-line, erc-modified-channels-update)
(erc-track-last-non-erc-buffer, erc-track-sort-by-importance)
(erc-track-get-active-buffer):
* lisp/erc/erc.el (erc-get-channel-user-list)
(erc-echo-notice-hook, erc-echo-notice-always-hook)
(erc-wash-quit-reason, erc-format-@nick):
* lisp/ffap.el (ffap-latex-mode):
* lisp/files.el (abort-if-file-too-large)
(dir-locals--get-sort-score, buffer-stale--default-function):
* lisp/filesets.el (filesets-tree-max-level, filesets-data)
(filesets-update-pre010505):
* lisp/gnus/gnus-agent.el (gnus-agent-flush-cache):
* lisp/gnus/gnus-art.el (gnus-article-encrypt-protocol)
(gnus-button-prefer-mid-or-mail):
* lisp/gnus/gnus-cus.el (gnus-group-parameters):
* lisp/gnus/gnus-demon.el (gnus-demon-handlers)
(gnus-demon-run-callback):
* lisp/gnus/gnus-dired.el (gnus-dired-print):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event-from-buffer):
* lisp/gnus/gnus-range.el (gnus-range-normalize):
* lisp/gnus/gnus-spec.el (gnus-pad-form):
* lisp/gnus/gnus-srvr.el (gnus-server-agent, gnus-server-cloud)
(gnus-server-opened, gnus-server-closed, gnus-server-denied)
(gnus-server-offline):
* lisp/gnus/gnus-sum.el (gnus-refer-thread-use-nnir)
(gnus-refer-thread-limit-to-thread)
(gnus-summary-limit-include-thread, gnus-summary-refer-thread)
(gnus-summary-find-matching):
* lisp/gnus/gnus-util.el (gnus-rescale-image):
* lisp/gnus/gnus.el (gnus-summary-line-format, gnus-no-server):
* lisp/gnus/mail-source.el (mail-source-incoming-file-prefix):
* lisp/gnus/message.el (message-cite-reply-position)
(message-cite-style-outlook, message-cite-style-thunderbird)
(message-cite-style-gmail, message--send-mail-maybe-partially):
* lisp/gnus/mm-extern.el (mm-inline-external-body):
* lisp/gnus/mm-partial.el (mm-inline-partial):
* lisp/gnus/mml-sec.el (mml-secure-message-sign)
(mml-secure-message-sign-encrypt, mml-secure-message-encrypt):
* lisp/gnus/mml2015.el (mml2015-epg-key-image)
(mml2015-epg-key-image-to-string):
* lisp/gnus/nndiary.el (nndiary-reminders, nndiary-get-new-mail):
* lisp/gnus/nnheader.el (nnheader-directory-files-is-safe):
* lisp/gnus/nnir.el (nnir-search-history)
(nnir-imap-search-other, nnir-artlist-length)
(nnir-artlist-article, nnir-artitem-group, nnir-artitem-number)
(nnir-artitem-rsv, nnir-article-group, nnir-article-number)
(nnir-article-rsv, nnir-article-ids, nnir-categorize)
(nnir-retrieve-headers-override-function)
(nnir-imap-default-search-key, nnir-hyrex-additional-switches)
(gnus-group-make-nnir-group, nnir-run-namazu, nnir-read-parms)
(nnir-read-parm, nnir-read-server-parm, nnir-search-thread):
* lisp/gnus/nnmairix.el (nnmairix-default-group)
(nnmairix-propagate-marks):
* lisp/gnus/smime.el (smime-keys, smime-crl-check)
(smime-verify-buffer, smime-noverify-buffer):
* lisp/gnus/spam-report.el (spam-report-url-ping-mm-url):
* lisp/gnus/spam.el (spam-spamassassin-positive-spam-flag-header)
(spam-spamassassin-spam-status-header, spam-sa-learn-rebuild)
(spam-classifications, spam-check-stat, spam-spamassassin-score):
* lisp/help.el (describe-minor-mode-from-symbol):
* lisp/hippie-exp.el (hippie-expand-ignore-buffers):
* lisp/htmlfontify.el (hfy-optimizations, hfy-face-resolve-face)
(hfy-begin-span):
* lisp/ibuf-ext.el (ibuffer-update-saved-filters-format)
(ibuffer-saved-filters, ibuffer-old-saved-filters-warning)
(ibuffer-filtering-qualifiers, ibuffer-repair-saved-filters)
(eval, ibuffer-unary-operand, file-extension, directory):
* lisp/image-dired.el (image-dired-cmd-pngcrush-options):
* lisp/image-mode.el (image-toggle-display):
* lisp/international/ccl.el (ccl-compile-read-multibyte-character)
(ccl-compile-write-multibyte-character):
* lisp/international/kkc.el (kkc-save-init-file):
* lisp/international/latin1-disp.el (latin1-display):
* lisp/international/ogonek.el (ogonek-name-encoding-alist)
(ogonek-information, ogonek-lookup-encoding)
(ogonek-deprefixify-region):
* lisp/isearch.el (isearch-filter-predicate)
(isearch--momentary-message):
* lisp/jsonrpc.el (jsonrpc-connection-send)
(jsonrpc-process-connection, jsonrpc-shutdown)
(jsonrpc--async-request-1):
* lisp/language/tibet-util.el (tibetan-char-p):
* lisp/mail/feedmail.el (feedmail-queue-use-send-time-for-date)
(feedmail-last-chance-hook, feedmail-before-fcc-hook)
(feedmail-send-it-immediately-wrapper, feedmail-find-eoh):
* lisp/mail/hashcash.el (hashcash-generate-payment)
(hashcash-generate-payment-async, hashcash-insert-payment)
(hashcash-verify-payment):
* lisp/mail/rmail.el (rmail-movemail-variant-in-use)
(rmail-get-attr-value):
* lisp/mail/rmailmm.el (rmail-mime-prefer-html, rmail-mime):
* lisp/mail/rmailsum.el (rmail-summary-show-message):
* lisp/mail/supercite.el (sc-raw-mode-toggle):
* lisp/man.el (Man-start-calling):
* lisp/mh-e/mh-acros.el (mh-do-at-event-location)
(mh-iterate-on-messages-in-region, mh-iterate-on-range):
* lisp/mh-e/mh-alias.el (mh-alias-system-aliases)
(mh-alias-reload, mh-alias-ali)
(mh-alias-canonicalize-suggestion, mh-alias-add-alias-to-file)
(mh-alias-add-alias):
* lisp/mouse.el (mouse-save-then-kill):
* lisp/net/browse-url.el (browse-url-default-macosx-browser):
* lisp/net/eudc.el (eudc-set, eudc-variable-protocol-value)
(eudc-variable-server-value, eudc-update-variable)
(eudc-expand-inline):
* lisp/net/eudcb-bbdb.el (eudc-bbdb-format-record-as-result):
* lisp/net/eudcb-ldap.el (eudc-ldap-get-field-list):
* lisp/net/pop3.el (pop3-list):
* lisp/net/soap-client.el (soap-namespace-put)
(soap-xs-parse-sequence, soap-parse-envelope):
* lisp/net/soap-inspect.el (soap-inspect-xs-complex-type):
* lisp/nxml/rng-xsd.el (rng-xsd-date-to-days):
* lisp/org/ob-C.el (org-babel-prep-session:C)
(org-babel-load-session:C):
* lisp/org/ob-J.el (org-babel-execute:J):
* lisp/org/ob-asymptote.el (org-babel-prep-session:asymptote):
* lisp/org/ob-awk.el (org-babel-execute:awk):
* lisp/org/ob-core.el (org-babel-process-file-name):
* lisp/org/ob-ebnf.el (org-babel-execute:ebnf):
* lisp/org/ob-forth.el (org-babel-execute:forth):
* lisp/org/ob-fortran.el (org-babel-execute:fortran)
(org-babel-prep-session:fortran, org-babel-load-session:fortran):
* lisp/org/ob-groovy.el (org-babel-execute:groovy):
* lisp/org/ob-io.el (org-babel-execute:io):
* lisp/org/ob-js.el (org-babel-execute:js):
* lisp/org/ob-lilypond.el (org-babel-default-header-args:lilypond)
(org-babel-lilypond-compile-post-tangle)
(org-babel-lilypond-display-pdf-post-tangle)
(org-babel-lilypond-tangle)
(org-babel-lilypond-execute-tangled-ly)
(org-babel-lilypond-compile-lilyfile)
(org-babel-lilypond-check-for-compile-error)
(org-babel-lilypond-process-compile-error)
(org-babel-lilypond-mark-error-line)
(org-babel-lilypond-parse-error-line)
(org-babel-lilypond-attempt-to-open-pdf)
(org-babel-lilypond-attempt-to-play-midi)
(org-babel-lilypond-switch-extension)
(org-babel-lilypond-set-header-args):
* lisp/org/ob-lua.el (org-babel-prep-session:lua):
* lisp/org/ob-picolisp.el (org-babel-execute:picolisp):
* lisp/org/ob-processing.el (org-babel-prep-session:processing):
* lisp/org/ob-python.el (org-babel-prep-session:python):
* lisp/org/ob-scheme.el (org-babel-scheme-capture-current-message)
(org-babel-scheme-execute-with-geiser, org-babel-execute:scheme):
* lisp/org/ob-shen.el (org-babel-execute:shen):
* lisp/org/org-agenda.el (org-agenda-entry-types)
(org-agenda-move-date-from-past-immediately-to-today)
(org-agenda-time-grid, org-agenda-sorting-strategy)
(org-agenda-filter-by-category, org-agenda-forward-block):
* lisp/org/org-colview.el (org-columns--overlay-text):
* lisp/org/org-faces.el (org-verbatim, org-cycle-level-faces):
* lisp/org/org-indent.el (org-indent-set-line-properties):
* lisp/org/org-macs.el (org-get-limited-outline-regexp):
* lisp/org/org-mobile.el (org-mobile-files):
* lisp/org/org.el (org-use-fast-todo-selection)
(org-extend-today-until, org-use-property-inheritance)
(org-refresh-effort-properties, org-open-at-point-global)
(org-track-ordered-property-with-tag, org-shiftright):
* lisp/org/ox-html.el (org-html-checkbox-type):
* lisp/org/ox-man.el (org-man-source-highlight)
(org-man-verse-block):
* lisp/org/ox-publish.el (org-publish-sitemap-default):
* lisp/outline.el (outline-head-from-level):
* lisp/progmodes/dcl-mode.el (dcl-back-to-indentation-1)
(dcl-calc-command-indent, dcl-indent-to):
* lisp/progmodes/flymake.el (flymake-make-diagnostic)
(flymake--overlays, flymake-diagnostic-functions)
(flymake-diagnostic-types-alist, flymake--backend-state)
(flymake-is-running, flymake--collect, flymake-mode):
* lisp/progmodes/gdb-mi.el (gdb-threads-list, gdb, gdb-non-stop)
(gdb-buffers, gdb-gud-context-call, gdb-jsonify-buffer):
* lisp/progmodes/grep.el (grep-error-screen-columns):
* lisp/progmodes/gud.el (gud-prev-expr):
* lisp/progmodes/ps-mode.el (ps-mode, ps-mode-target-column)
(ps-run-goto-error):
* lisp/progmodes/python.el (python-eldoc-get-doc)
(python-eldoc-function-timeout-permanent, python-eldoc-function):
* lisp/shadowfile.el (shadow-make-group):
* lisp/speedbar.el (speedbar-obj-do-check):
* lisp/textmodes/flyspell.el (flyspell-auto-correct-previous-hook):
* lisp/textmodes/reftex-cite.el (reftex-bib-or-thebib):
* lisp/textmodes/reftex-index.el (reftex-index-goto-entry)
(reftex-index-kill, reftex-index-undo):
* lisp/textmodes/reftex-parse.el (reftex-context-substring):
* lisp/textmodes/reftex.el (reftex-TeX-master-file):
* lisp/textmodes/rst.el (rst-next-hdr, rst-toc)
(rst-uncomment-region, rst-font-lock-extend-region-internal):
* lisp/thumbs.el (thumbs-mode):
* lisp/vc/ediff-util.el (ediff-restore-diff):
* lisp/vc/pcvs-defs.el (cvs-cvsroot, cvs-force-dir-tag):
* lisp/vc/vc-hg.el (vc-hg--ignore-patterns-valid-p):
* lisp/wid-edit.el (widget-field-value-set, string):
* lisp/x-dnd.el (x-dnd-version-from-flags)
(x-dnd-more-than-3-from-flags): Assorted docfixes.
2019-09-20 22:27:53 +00:00
|
|
|
be used. If the target is \".\", the last person you've sent a message
|
2006-01-29 13:08:58 +00:00
|
|
|
to will be used."
|
|
|
|
(cond
|
|
|
|
((string-match "^\\s-*\\(\\S-+\\) ?\\(.*\\)" line)
|
|
|
|
(let ((tgt (match-string 1 line))
|
|
|
|
(s (match-string 2 line)))
|
|
|
|
(erc-log (format "cmd: MSG(%s): [%s] %s" message-command tgt s))
|
|
|
|
(cond
|
|
|
|
((string= tgt ",")
|
|
|
|
(if (car erc-server-last-peers)
|
|
|
|
(setq tgt (car erc-server-last-peers))
|
|
|
|
(setq tgt nil)))
|
|
|
|
((string= tgt ".")
|
|
|
|
(if (cdr erc-server-last-peers)
|
|
|
|
(setq tgt (cdr erc-server-last-peers))
|
|
|
|
(setq tgt nil))))
|
|
|
|
(cond
|
|
|
|
(tgt
|
|
|
|
(setcdr erc-server-last-peers tgt)
|
|
|
|
(erc-server-send (format "%s %s :%s" message-command tgt s)
|
|
|
|
force))
|
|
|
|
(t
|
|
|
|
(erc-display-message nil 'error (current-buffer) 'no-target))))
|
|
|
|
t)
|
|
|
|
(t nil)))
|
|
|
|
|
|
|
|
;;; CTCP
|
|
|
|
|
|
|
|
(defun erc-send-ctcp-message (tgt l &optional force)
|
|
|
|
"Send CTCP message L to TGT.
|
|
|
|
|
|
|
|
If TGT is nil the message is not sent.
|
|
|
|
The command must contain neither a prefix nor a trailing `\\n'.
|
|
|
|
|
|
|
|
See also `erc-server-send'."
|
|
|
|
(let ((l (erc-upcase-first-word l)))
|
|
|
|
(cond
|
|
|
|
(tgt
|
|
|
|
(erc-log (format "erc-send-CTCP-message: [%s] %s" tgt l))
|
|
|
|
(erc-server-send (format "PRIVMSG %s :\C-a%s\C-a" tgt l)
|
|
|
|
force)))))
|
|
|
|
|
|
|
|
(defun erc-send-ctcp-notice (tgt l &optional force)
|
|
|
|
"Send CTCP notice L to TGT.
|
|
|
|
|
|
|
|
If TGT is nil the message is not sent.
|
|
|
|
The command must contain neither a prefix nor a trailing `\\n'.
|
|
|
|
|
|
|
|
See also `erc-server-send'."
|
|
|
|
(let ((l (erc-upcase-first-word l)))
|
|
|
|
(cond
|
|
|
|
(tgt
|
|
|
|
(erc-log (format "erc-send-CTCP-notice: [%s] %s" tgt l))
|
|
|
|
(erc-server-send (format "NOTICE %s :\C-a%s\C-a" tgt l)
|
|
|
|
force)))))
|
|
|
|
|
|
|
|
;;;; Handling responses
|
|
|
|
|
2017-04-24 06:27:46 +00:00
|
|
|
(defun erc-parse-tags (string)
|
|
|
|
"Parse IRCv3 tags list in STRING to a (tag . value) alist."
|
|
|
|
(let ((tags)
|
|
|
|
(tag-strings (split-string string ";")))
|
|
|
|
(dolist (tag-string tag-strings tags)
|
|
|
|
(let ((pair (split-string tag-string "=")))
|
|
|
|
(push (if (consp pair)
|
|
|
|
pair
|
|
|
|
`(,pair))
|
|
|
|
tags)))))
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
(defun erc-parse-server-response (proc string)
|
|
|
|
"Parse and act upon a complete line from an IRC server.
|
|
|
|
PROC is the process (connection) from which STRING was received.
|
|
|
|
PROCs `process-buffer' is `current-buffer' when this function is called."
|
|
|
|
(unless (string= string "") ;; Ignore empty strings
|
|
|
|
(save-match-data
|
2017-04-24 06:27:46 +00:00
|
|
|
(let* ((tag-list (when (eq (aref string 0) ?@)
|
|
|
|
(substring string 1 (string-match " " string))))
|
|
|
|
(msg (make-erc-response :unparsed string :tags (when tag-list
|
|
|
|
(erc-parse-tags
|
|
|
|
tag-list))))
|
|
|
|
(string (if tag-list
|
|
|
|
(substring string (+ 1 (string-match " " string)))
|
|
|
|
string))
|
|
|
|
(posn (if (eq (aref string 0) ?:)
|
|
|
|
(string-match " " string)
|
|
|
|
0)))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(setf (erc-response.sender msg)
|
|
|
|
(if (eq posn 0)
|
|
|
|
erc-session-server
|
|
|
|
(substring string 1 posn)))
|
|
|
|
|
|
|
|
(setf (erc-response.command msg)
|
2006-04-11 22:09:49 +00:00
|
|
|
(let* ((bposn (string-match "[^ \n]" string posn))
|
2006-01-29 13:08:58 +00:00
|
|
|
(eposn (string-match " " string bposn)))
|
|
|
|
(setq posn (and eposn
|
2006-04-11 22:09:49 +00:00
|
|
|
(string-match "[^ \n]" string eposn)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(substring string bposn eposn)))
|
|
|
|
|
|
|
|
(while (and posn
|
|
|
|
(not (eq (aref string posn) ?:)))
|
|
|
|
(push (let* ((bposn posn)
|
|
|
|
(eposn (string-match " " string bposn)))
|
|
|
|
(setq posn (and eposn
|
2006-04-11 22:09:49 +00:00
|
|
|
(string-match "[^ \n]" string eposn)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(substring string bposn eposn))
|
|
|
|
(erc-response.command-args msg)))
|
|
|
|
(when posn
|
|
|
|
(let ((str (substring string (1+ posn))))
|
|
|
|
(push str (erc-response.command-args msg))))
|
|
|
|
|
|
|
|
(setf (erc-response.contents msg)
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(car (erc-response.command-args msg)))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(setf (erc-response.command-args msg)
|
|
|
|
(nreverse (erc-response.command-args msg)))
|
|
|
|
|
|
|
|
(erc-decode-parsed-server-response msg)
|
|
|
|
|
|
|
|
(erc-handle-parsed-server-response proc msg)))))
|
|
|
|
|
|
|
|
(defun erc-decode-parsed-server-response (parsed-response)
|
|
|
|
"Decode a pre-parsed PARSED-RESPONSE before it can be handled.
|
|
|
|
|
|
|
|
If there is a channel name in `erc-response.command-args', decode
|
|
|
|
`erc-response' according to this channel name and
|
|
|
|
`erc-encoding-coding-alist', or use `erc-server-coding-system'
|
|
|
|
for decoding."
|
|
|
|
(let ((args (erc-response.command-args parsed-response))
|
|
|
|
(decode-target nil)
|
|
|
|
(decoded-args ()))
|
|
|
|
(dolist (arg args nil)
|
|
|
|
(when (string-match "^[#&].*" arg)
|
|
|
|
(setq decode-target arg)))
|
|
|
|
(when (stringp decode-target)
|
|
|
|
(setq decode-target (erc-decode-string-from-target decode-target nil)))
|
|
|
|
(setf (erc-response.unparsed parsed-response)
|
|
|
|
(erc-decode-string-from-target
|
|
|
|
(erc-response.unparsed parsed-response)
|
|
|
|
decode-target))
|
|
|
|
(setf (erc-response.sender parsed-response)
|
|
|
|
(erc-decode-string-from-target
|
|
|
|
(erc-response.sender parsed-response)
|
|
|
|
decode-target))
|
|
|
|
(setf (erc-response.command parsed-response)
|
|
|
|
(erc-decode-string-from-target
|
|
|
|
(erc-response.command parsed-response)
|
|
|
|
decode-target))
|
|
|
|
(dolist (arg (nreverse args) nil)
|
|
|
|
(push (erc-decode-string-from-target arg decode-target)
|
|
|
|
decoded-args))
|
|
|
|
(setf (erc-response.command-args parsed-response) decoded-args)
|
|
|
|
(setf (erc-response.contents parsed-response)
|
|
|
|
(erc-decode-string-from-target
|
|
|
|
(erc-response.contents parsed-response)
|
|
|
|
decode-target))))
|
|
|
|
|
|
|
|
(defun erc-handle-parsed-server-response (process parsed-response)
|
|
|
|
"Handle a pre-parsed PARSED-RESPONSE from PROCESS.
|
|
|
|
|
|
|
|
Hands off to helper functions via `erc-call-hooks'."
|
|
|
|
(if (member (erc-response.command parsed-response)
|
|
|
|
erc-server-prevent-duplicates)
|
|
|
|
(let ((m (erc-response.unparsed parsed-response)))
|
2011-12-14 21:05:20 +00:00
|
|
|
;; duplicate suppression
|
Avoid some double-rounding of Lisp timestamps
Also, simplify some time-related Lisp timestamp code
while we’re in the neighborhood.
* lisp/battery.el (battery-linux-proc-acpi)
(battery-linux-sysfs, battery-upower, battery-bsd-apm):
* lisp/calendar/timeclock.el (timeclock-seconds-to-string)
(timeclock-log, timeclock-last-period)
(timeclock-entry-length, timeclock-entry-list-span)
(timeclock-find-discrep, timeclock-generate-report):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/completion.el (cmpl-hours-since-origin):
* lisp/ecomplete.el (ecomplete-decay-1):
* lisp/emacs-lisp/ert.el (ert--results-update-stats-display)
(ert--results-update-stats-display-maybe):
* lisp/emacs-lisp/timer-list.el (list-timers):
* lisp/emacs-lisp/timer.el (timer-until)
(timer-event-handler):
* lisp/erc/erc-backend.el (erc-server-send-ping)
(erc-server-send-queue, erc-handle-parsed-server-response)
(erc-handle-unknown-server-response):
* lisp/erc/erc-track.el (erc-buffer-visible):
* lisp/erc/erc.el (erc-lurker-cleanup, erc-lurker-p)
(erc-cmd-PING, erc-send-current-line):
* lisp/eshell/em-pred.el (eshell-pred-file-time):
* lisp/eshell/em-unix.el (eshell-show-elapsed-time):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event:org-timestamp):
* lisp/gnus/gnus-int.el (gnus-backend-trace):
* lisp/gnus/gnus-sum.el (gnus-user-date):
* lisp/gnus/mail-source.el (mail-source-delete-crash-box):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/ibuf-ext.el (ibuffer-mark-old-buffers):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/mouse.el (mouse--down-1-maybe-follows-link)
(mouse--click-1-maybe-follows-link):
* lisp/mpc.el (mpc--faster-toggle):
* lisp/net/rcirc.el (rcirc-handler-ctcp-KEEPALIVE)
(rcirc-sentinel):
* lisp/net/tramp-cache.el (tramp-get-file-property):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-newer-than-file-p)
(tramp-maybe-open-connection):
* lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection):
* lisp/org/org-clock.el (org-clock-resolve):
(org-resolve-clocks, org-clock-in, org-clock-out, org-clock-sum):
* lisp/org/org-timer.el (org-timer-start)
(org-timer-pause-or-continue, org-timer-seconds):
* lisp/org/org.el (org-evaluate-time-range):
* lisp/org/ox-publish.el (org-publish-cache-ctime-of-src):
* lisp/pixel-scroll.el (pixel-scroll-in-rush-p):
* lisp/play/hanoi.el (hanoi-move-ring):
* lisp/proced.el (proced-format-time):
* lisp/progmodes/cpp.el (cpp-progress-message):
* lisp/progmodes/flymake.el (flymake--handle-report):
* lisp/progmodes/js.el (js--wait-for-matching-output):
* lisp/subr.el (progress-reporter-do-update):
* lisp/term/xterm.el (xterm--read-event-for-query):
* lisp/time.el (display-time-update, emacs-uptime):
* lisp/tooltip.el (tooltip-delay):
* lisp/url/url-cookie.el (url-cookie-parse-file-netscape):
* lisp/url/url-queue.el (url-queue-prune-old-entries):
* lisp/url/url.el (url-retrieve-synchronously):
* lisp/xt-mouse.el (xterm-mouse-event):
Avoid double-rounding of time-related values. Simplify.
* lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
When hoping for the best (unlikely), use a better decoded time.
(icalendar--convert-sexp-to-ical): Avoid unnecessary encode-time.
* lisp/calendar/timeclock.el (timeclock-when-to-leave):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/desktop.el (desktop-create-buffer):
* lisp/emacs-lisp/benchmark.el (benchmark-elapse):
* lisp/gnus/gnus-art.el (article-lapsed-string):
* lisp/gnus/gnus-group.el (gnus-group-timestamp-delta):
* lisp/gnus/nnmail.el (nnmail-expired-article-p):
* lisp/gnus/nnmaildir.el (nnmaildir-request-expire-articles):
* lisp/nxml/rng-maint.el (rng-time-function):
* lisp/org/org-clock.el (org-clock-get-clocked-time)
(org-clock-resolve, org-resolve-clocks, org-resolve-clocks-if-idle):
* lisp/org/org-habit.el (org-habit-insert-consistency-graphs):
* lisp/progmodes/vhdl-mode.el (vhdl-update-progress-info)
(vhdl-fix-case-region-1):
Use time-since instead of open-coding most of it.
* lisp/erc/erc-dcc.el (erc-dcc-get-sentinel):
* lisp/erc/erc.el (erc-string-to-emacs-time, erc-time-gt):
Now obsolete. All uses changed.
(erc-time-diff): Accept all Lisp time values.
All uses changed.
* lisp/gnus/gnus-demon.el (gnus-demon-idle-since):
* lisp/gnus/gnus-score.el (gnus-score-headers):
* lisp/gnus/nneething.el (nneething-make-head):
* lisp/gnus/nnheader.el (nnheader-message-maybe):
* lisp/gnus/nnimap.el (nnimap-keepalive):
* lisp/image.el (image-animate-timeout):
* lisp/mail/feedmail.el (feedmail-rfc822-date):
* lisp/net/imap.el (imap-wait-for-tag):
* lisp/net/newst-backend.el (newsticker--image-get):
* lisp/net/rcirc.el (rcirc-handler-317, rcirc-handler-333):
* lisp/obsolete/xesam.el (xesam-refresh-entry):
* lisp/org/org-agenda.el (org-agenda-show-clocking-issues)
(org-agenda-check-clock-gap, org-agenda-to-appt):
* lisp/org/org-capture.el (org-capture-set-target-location):
* lisp/org/org-clock.el (org-clock-resolve-clock)
(org-clocktable-steps):
* lisp/org/org-colview.el (org-columns-edit-value)
(org-columns, org-agenda-columns):
* lisp/org/org-duration.el (org-duration-from-minutes):
* lisp/org/org-element.el (org-element-cache-sync-duration)
(org-element-cache-sync-break)
(org-element--cache-interrupt-p, org-element--cache-sync):
* lisp/org/org-habit.el (org-habit-get-faces)
* lisp/org/org-indent.el (org-indent-add-properties):
* lisp/org/org-table.el (org-table-sum):
* lisp/org/org-timer.el (org-timer-show-remaining-time)
(org-timer-set-timer):
* lisp/org/org.el (org-babel-load-file, org-today)
(org-auto-repeat-maybe, org-2ft, org-time-stamp)
(org-read-date-analyze, org-time-stamp-to-now)
(org-small-year-to-year, org-goto-calendar):
* lisp/org/ox.el (org-export-insert-default-template):
* lisp/ses.el (ses--time-check):
* lisp/type-break.el (type-break-time-warning)
(type-break-statistics, type-break-demo-boring):
* lisp/url/url-cache.el (url-cache-expired)
(url-cache-prune-cache):
* lisp/vc/vc-git.el (vc-git-stash-snapshot):
* lisp/erc/erc-match.el (erc-log-matches-come-back):
Simplify.
2019-02-23 02:32:31 +00:00
|
|
|
(if (time-less-p (or (gethash m erc-server-duplicates) 0)
|
|
|
|
(time-since erc-server-duplicate-timeout))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-call-hooks process parsed-response))
|
|
|
|
(puthash m (erc-current-time) erc-server-duplicates))
|
|
|
|
;; Hand off to the relevant handler.
|
|
|
|
(erc-call-hooks process parsed-response)))
|
|
|
|
|
|
|
|
(defun erc-get-hook (command)
|
|
|
|
"Return the hook variable associated with COMMAND.
|
|
|
|
|
|
|
|
See also `erc-server-responses'."
|
|
|
|
(gethash (format (if (numberp command) "%03i" "%s") command)
|
|
|
|
erc-server-responses))
|
|
|
|
|
|
|
|
(defun erc-call-hooks (process message)
|
|
|
|
"Call hooks associated with MESSAGE in PROCESS.
|
|
|
|
|
2016-11-04 21:50:09 +00:00
|
|
|
Finds hooks by looking in the `erc-server-responses' hash table."
|
2006-01-29 13:08:58 +00:00
|
|
|
(let ((hook (or (erc-get-hook (erc-response.command message))
|
|
|
|
'erc-default-server-functions)))
|
|
|
|
(run-hook-with-args-until-success hook process message)
|
2007-04-01 13:36:38 +00:00
|
|
|
(erc-with-server-buffer
|
|
|
|
(run-hook-with-args 'erc-timer-hook (erc-current-time)))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
2016-04-02 19:38:54 +00:00
|
|
|
(add-hook 'erc-default-server-functions #'erc-handle-unknown-server-response)
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(defun erc-handle-unknown-server-response (proc parsed)
|
|
|
|
"Display unknown server response's message."
|
|
|
|
(let ((line (concat (erc-response.sender parsed)
|
|
|
|
" "
|
|
|
|
(erc-response.command parsed)
|
|
|
|
" "
|
2016-04-02 19:38:54 +00:00
|
|
|
(mapconcat #'identity (erc-response.command-args parsed)
|
2006-01-29 13:08:58 +00:00
|
|
|
" "))))
|
|
|
|
(erc-display-message parsed 'notice proc line)))
|
|
|
|
|
|
|
|
|
|
|
|
(put 'define-erc-response-handler 'edebug-form-spec
|
|
|
|
'(&define :name erc-response-handler
|
|
|
|
(name &rest name)
|
|
|
|
&optional sexp sexp def-body))
|
|
|
|
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(cl-defmacro define-erc-response-handler ((name &rest aliases)
|
2006-01-29 13:08:58 +00:00
|
|
|
&optional extra-fn-doc extra-var-doc
|
|
|
|
&rest fn-body)
|
|
|
|
"Define an ERC handler hook/function pair.
|
|
|
|
NAME is the response name as sent by the server (see the IRC RFC for
|
|
|
|
meanings).
|
|
|
|
|
|
|
|
This creates:
|
lisp/*.el: Fix typos and improve some docstrings
* lisp/auth-source.el (auth-source-backend-parse-parameters)
(auth-source-search-collection)
(auth-source-secrets-listify-pattern)
(auth-source--decode-octal-string, auth-source-plstore-search):
* lisp/registry.el (registry-lookup)
(registry-lookup-breaks-before-lexbind)
(registry-lookup-secondary, registry-lookup-secondary-value)
(registry-search, registry-delete, registry-size, registry-full)
(registry-insert, registry-reindex, registry-prune)
(registry-collect-prune-candidates):
* lisp/subr.el (nbutlast, process-live-p):
* lisp/tab-bar.el (tab-bar-list):
* lisp/cedet/ede/linux.el (ede-linux--get-archs)
(ede-linux--include-path, ede-linux-load):
* lisp/erc/erc-log.el (erc-log-all-but-server-buffers):
* lisp/erc/erc-pcomplete.el (pcomplete-erc-commands)
(pcomplete-erc-ops, pcomplete-erc-not-ops, pcomplete-erc-nicks)
(pcomplete-erc-all-nicks, pcomplete-erc-channels)
(pcomplete-erc-command-name, pcomplete-erc-parse-arguments):
* lisp/eshell/em-term.el (eshell-visual-command-p):
* lisp/gnus/gnus-cache.el (gnus-cache-fully-p):
* lisp/gnus/nnmail.el (nnmail-get-active)
(nnmail-fancy-expiry-target):
* lisp/mail/mail-utils.el (mail-string-delete):
* lisp/mail/supercite.el (sc-hdr, sc-valid-index-p):
* lisp/net/ange-ftp.el (ange-ftp-use-smart-gateway-p):
* lisp/net/nsm.el (nsm-save-fingerprint-maybe)
(nsm-network-same-subnet, nsm-should-check):
* lisp/net/rcirc.el (rcirc-looking-at-input):
* lisp/net/tramp-cache.el (tramp-get-hash-table):
* lisp/net/tramp-compat.el (tramp-compat-process-running-p):
* lisp/net/tramp-smb.el (tramp-smb-get-share)
(tramp-smb-get-localname, tramp-smb-read-file-entry)
(tramp-smb-get-cifs-capabilities, tramp-smb-get-stat-capability):
* lisp/net/zeroconf.el (zeroconf-list-service-names)
(zeroconf-list-service-types, zeroconf-list-services)
(zeroconf-get-host, zeroconf-get-domain)
(zeroconf-get-host-domain):
* lisp/nxml/rng-xsd.el (rng-xsd-compile)
(rng-xsd-make-date-time-regexp, rng-xsd-convert-date-time):
* lisp/obsolete/erc-hecomplete.el (erc-hecomplete)
(erc-command-list, erc-complete-at-prompt):
* lisp/org/ob-scheme.el (org-babel-scheme-get-buffer-impl):
* lisp/org/ob-shell.el (org-babel--variable-assignments:sh-generic)
(org-babel--variable-assignments:bash_array)
(org-babel--variable-assignments:bash_assoc)
(org-babel--variable-assignments:bash):
* lisp/org/org-clock.el (org-day-of-week):
* lisp/progmodes/cperl-mode.el (cperl-char-ends-sub-keyword-p):
* lisp/progmodes/gud.el (gud-find-c-expr, gud-innermost-expr)
(gud-prev-expr, gud-next-expr):
* lisp/textmodes/table.el (table--at-cell-p, table--probe-cell)
(table--get-cell-justify-property)
(table--get-cell-valign-property)
(table--put-cell-justify-property)
(table--put-cell-valign-property): Fix typos.
* lisp/so-long.el (fboundp): Doc fix.
(so-long-mode-line-info, so-long-mode)
(so-long--check-header-modes): Fix typos.
* lisp/emulation/viper-mous.el (viper-surrounding-word)
(viper-mouse-click-get-word): Fix typos.
(viper-mouse-click-search-word): Doc fix.
* lisp/erc/erc-backend.el (erc-forward-word, erc-word-at-arg-p)
(erc-bounds-of-word-at-point): Fix typos.
(erc-decode-string-from-target, define-erc-response-handler):
Refill docstring.
* lisp/erc/erc-dcc.el (pcomplete/erc-mode/DCC): Fix typo.
(erc-dcc-get-host, erc-dcc-auto-mask-p, erc-dcc-get-file):
Doc fixes.
* lisp/erc/erc-networks.el (erc-network-name): Fix typo.
(erc-determine-network): Refill docstring.
* lisp/net/dbus.el (dbus-list-hash-table)
(dbus-string-to-byte-array, dbus-byte-array-to-string)
(dbus-check-event): Fix typos.
(dbus-introspect-get-property): Doc fix.
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler):
Rename ARGS to ARGUMENTS. Doc fix.
(tramp-adb-sh-fix-ls-output, tramp-adb-execute-adb-command)
(tramp-adb-find-test-command): Fix typos.
* lisp/net/tramp.el (tramp-set-completion-function)
(tramp-get-completion-function)
(tramp-completion-dissect-file-name)
(tramp-completion-dissect-file-name1)
(tramp-get-completion-methods, tramp-get-completion-user-host)
(tramp-get-inode, tramp-get-device, tramp-mode-string-to-int)
(tramp-call-process, tramp-call-process-region)
(tramp-process-lines): Fix typos.
(tramp-interrupt-process): Doc fix.
* lisp/org/ob-core.el (org-babel-named-src-block-regexp-for-name)
(org-babel-named-data-regexp-for-name): Doc fix.
(org-babel-src-block-names, org-babel-result-names): Fix typos.
* lisp/progmodes/inf-lisp.el (lisp-input-filter): Doc fix.
(lisp-fn-called-at-pt): Fix typo.
* lisp/progmodes/xref.el (xref-backend-identifier-at-point):
Doc fix.
(xref-backend-identifier-completion-table): Fix typo.
2019-10-20 10:12:27 +00:00
|
|
|
- a hook variable `erc-server-NAME-functions' initialized to
|
|
|
|
`erc-server-NAME'.
|
2006-01-29 13:08:58 +00:00
|
|
|
- a function `erc-server-NAME' with body FN-BODY.
|
|
|
|
|
|
|
|
If ALIASES is non-nil, each alias in ALIASES is `defalias'ed to
|
|
|
|
`erc-server-NAME'.
|
|
|
|
Alias hook variables are created as `erc-server-ALIAS-functions' and
|
2007-11-15 16:46:01 +00:00
|
|
|
initialized to the same default value as `erc-server-NAME-functions'.
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
FN-BODY is the body of `erc-server-NAME' it may refer to the two
|
|
|
|
function arguments PROC and PARSED.
|
|
|
|
|
|
|
|
If EXTRA-FN-DOC is non-nil, it is inserted at the beginning of the
|
|
|
|
defined function's docstring.
|
|
|
|
|
|
|
|
If EXTRA-VAR-DOC is non-nil, it is inserted at the beginning of the
|
|
|
|
defined variable's docstring.
|
|
|
|
|
|
|
|
As an example:
|
|
|
|
|
|
|
|
(define-erc-response-handler (311 WHOIS WI)
|
|
|
|
\"Some non-generic function documentation.\"
|
|
|
|
\"Some non-generic variable documentation.\"
|
|
|
|
(do-stuff-with-whois proc parsed))
|
|
|
|
|
|
|
|
Would expand to:
|
|
|
|
|
|
|
|
(prog2
|
2015-09-02 01:21:42 +00:00
|
|
|
(defvar erc-server-311-functions \\='erc-server-311
|
2006-01-29 13:08:58 +00:00
|
|
|
\"Some non-generic variable documentation.
|
|
|
|
|
|
|
|
Hook called upon receiving a 311 server response.
|
|
|
|
Each function is called with two arguments, the process associated
|
|
|
|
with the response and the parsed response.
|
|
|
|
See also `erc-server-311'.\")
|
|
|
|
|
|
|
|
(defun erc-server-311 (proc parsed)
|
|
|
|
\"Some non-generic function documentation.
|
|
|
|
|
|
|
|
Handler for a 311 server response.
|
|
|
|
PROC is the server process which returned the response.
|
|
|
|
PARSED is the actual response as an `erc-response' struct.
|
|
|
|
If you want to add responses don't modify this function, but rather
|
|
|
|
add things to `erc-server-311-functions' instead.\"
|
|
|
|
(do-stuff-with-whois proc parsed))
|
|
|
|
|
2015-09-03 22:31:12 +00:00
|
|
|
(puthash \"311\" \\='erc-server-311-functions erc-server-responses)
|
|
|
|
(puthash \"WHOIS\" \\='erc-server-WHOIS-functions erc-server-responses)
|
|
|
|
(puthash \"WI\" \\='erc-server-WI-functions erc-server-responses)
|
2006-01-29 13:08:58 +00:00
|
|
|
|
2015-09-03 22:31:12 +00:00
|
|
|
(defalias \\='erc-server-WHOIS \\='erc-server-311)
|
|
|
|
(defvar erc-server-WHOIS-functions \\='erc-server-311
|
2006-01-29 13:08:58 +00:00
|
|
|
\"Some non-generic variable documentation.
|
|
|
|
|
|
|
|
Hook called upon receiving a WHOIS server response.
|
2007-09-08 03:07:09 +00:00
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
Each function is called with two arguments, the process associated
|
2007-09-08 03:07:09 +00:00
|
|
|
with the response and the parsed response. If the function returns
|
|
|
|
non-nil, stop processing the hook. Otherwise, continue.
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
See also `erc-server-311'.\")
|
|
|
|
|
2015-09-03 22:31:12 +00:00
|
|
|
(defalias \\='erc-server-WI \\='erc-server-311)
|
|
|
|
(defvar erc-server-WI-functions \\='erc-server-311
|
2006-01-29 13:08:58 +00:00
|
|
|
\"Some non-generic variable documentation.
|
|
|
|
|
|
|
|
Hook called upon receiving a WI server response.
|
|
|
|
Each function is called with two arguments, the process associated
|
2007-09-08 03:07:09 +00:00
|
|
|
with the response and the parsed response. If the function returns
|
|
|
|
non-nil, stop processing the hook. Otherwise, continue.
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
See also `erc-server-311'.\"))
|
|
|
|
|
|
|
|
\(fn (NAME &rest ALIASES) &optional EXTRA-FN-DOC EXTRA-VAR-DOC &rest FN-BODY)"
|
|
|
|
(if (numberp name) (setq name (intern (format "%03i" name))))
|
|
|
|
(setq aliases (mapcar (lambda (a)
|
|
|
|
(if (numberp a)
|
|
|
|
(format "%03i" a)
|
|
|
|
a))
|
|
|
|
aliases))
|
|
|
|
(let* ((hook-name (intern (format "erc-server-%s-functions" name)))
|
|
|
|
(fn-name (intern (format "erc-server-%s" name)))
|
2015-08-31 22:10:07 +00:00
|
|
|
(hook-doc (format-message "\
|
|
|
|
%sHook called upon receiving a %%s server response.
|
2006-01-29 13:08:58 +00:00
|
|
|
Each function is called with two arguments, the process associated
|
2007-09-08 03:07:09 +00:00
|
|
|
with the response and the parsed response. If the function returns
|
|
|
|
non-nil, stop processing the hook. Otherwise, continue.
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
See also `%s'."
|
|
|
|
(if extra-var-doc
|
|
|
|
(concat extra-var-doc "\n\n")
|
|
|
|
"")
|
|
|
|
fn-name))
|
2015-08-31 22:10:07 +00:00
|
|
|
(fn-doc (format-message "\
|
|
|
|
%sHandler for a %s server response.
|
2006-01-29 13:08:58 +00:00
|
|
|
PROC is the server process which returned the response.
|
|
|
|
PARSED is the actual response as an `erc-response' struct.
|
|
|
|
If you want to add responses don't modify this function, but rather
|
|
|
|
add things to `%s' instead."
|
|
|
|
(if extra-fn-doc
|
|
|
|
(concat extra-fn-doc "\n\n")
|
|
|
|
"")
|
|
|
|
name hook-name))
|
|
|
|
(fn-alternates
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(cl-loop for alias in aliases
|
|
|
|
collect (intern (format "erc-server-%s" alias))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(var-alternates
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(cl-loop for alias in aliases
|
|
|
|
collect (intern (format "erc-server-%s-functions" alias)))))
|
2006-01-29 13:08:58 +00:00
|
|
|
`(prog2
|
2015-01-14 21:47:01 +00:00
|
|
|
;; Normal hook variable. The variable may already have a
|
|
|
|
;; value at this point, so I default to nil, and (add-hook)
|
|
|
|
;; unconditionally
|
|
|
|
(defvar ,hook-name nil ,(format hook-doc name))
|
2016-04-02 19:38:54 +00:00
|
|
|
(add-hook ',hook-name #',fn-name)
|
2006-01-29 13:08:58 +00:00
|
|
|
;; Handler function
|
|
|
|
(defun ,fn-name (proc parsed)
|
|
|
|
,fn-doc
|
2016-04-02 19:38:54 +00:00
|
|
|
(ignore proc parsed)
|
2006-01-29 13:08:58 +00:00
|
|
|
,@fn-body)
|
|
|
|
|
|
|
|
;; Make find-function and find-variable find them
|
|
|
|
(put ',fn-name 'definition-name ',name)
|
|
|
|
(put ',hook-name 'definition-name ',name)
|
|
|
|
|
2016-11-04 21:50:09 +00:00
|
|
|
;; Hash table map of responses to hook variables
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
,@(cl-loop for response in (cons name aliases)
|
|
|
|
for var in (cons hook-name var-alternates)
|
|
|
|
collect `(puthash ,(format "%s" response) ',var
|
|
|
|
erc-server-responses))
|
2006-01-29 13:08:58 +00:00
|
|
|
;; Alternates.
|
|
|
|
;; Functions are defaliased, hook variables are defvared so we
|
|
|
|
;; can add hooks to one alias, but not another.
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
,@(cl-loop for fn in fn-alternates
|
|
|
|
for var in var-alternates
|
|
|
|
for a in aliases
|
|
|
|
nconc (list `(defalias ',fn ',fn-name)
|
|
|
|
`(defvar ,var ',fn-name ,(format hook-doc a))
|
|
|
|
`(put ',var 'definition-name ',hook-name))))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (ERROR)
|
|
|
|
"Handle an ERROR command from the server." nil
|
2007-04-01 13:36:38 +00:00
|
|
|
(setq erc-server-error-occurred t)
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message
|
|
|
|
parsed 'error nil 'ERROR
|
|
|
|
?s (erc-response.sender parsed) ?c (erc-response.contents parsed)))
|
|
|
|
|
|
|
|
(define-erc-response-handler (INVITE)
|
|
|
|
"Handle invitation messages."
|
|
|
|
nil
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(let ((target (car (erc-response.command-args parsed)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(chnl (erc-response.contents parsed)))
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(pcase-let ((`(,nick ,login ,host)
|
|
|
|
(erc-parse-user (erc-response.sender parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(setq erc-invitation chnl)
|
|
|
|
(when (string= target (erc-current-nick))
|
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice 'active
|
|
|
|
'INVITE ?n nick ?u login ?h host ?c chnl)))))
|
|
|
|
|
|
|
|
(define-erc-response-handler (JOIN)
|
|
|
|
"Handle join messages."
|
|
|
|
nil
|
|
|
|
(let ((chnl (erc-response.contents parsed))
|
|
|
|
(buffer nil))
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(pcase-let ((`(,nick ,login ,host)
|
|
|
|
(erc-parse-user (erc-response.sender parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
;; strip the stupid combined JOIN facility (IRC 2.9)
|
2019-04-13 02:43:16 +00:00
|
|
|
(if (string-match "^\\(.*\\)\^g.*$" chnl)
|
2006-01-29 13:08:58 +00:00
|
|
|
(setq chnl (match-string 1 chnl)))
|
|
|
|
(save-excursion
|
|
|
|
(let* ((str (cond
|
|
|
|
;; If I have joined a channel
|
|
|
|
((erc-current-nick-p nick)
|
2006-11-20 06:50:29 +00:00
|
|
|
(setq buffer (erc-open erc-session-server erc-session-port
|
|
|
|
nick erc-session-user-full-name
|
|
|
|
nil nil
|
2010-10-23 20:04:47 +00:00
|
|
|
(list chnl) chnl
|
2006-11-20 06:50:29 +00:00
|
|
|
erc-server-process))
|
2006-01-29 13:08:58 +00:00
|
|
|
(when buffer
|
|
|
|
(set-buffer buffer)
|
|
|
|
(erc-add-default-channel chnl)
|
|
|
|
(erc-server-send (format "MODE %s" chnl)))
|
|
|
|
(erc-with-buffer (chnl proc)
|
|
|
|
(erc-channel-begin-receiving-names))
|
|
|
|
(erc-update-mode-line)
|
|
|
|
(run-hooks 'erc-join-hook)
|
|
|
|
(erc-make-notice
|
|
|
|
(erc-format-message 'JOIN-you ?c chnl)))
|
|
|
|
(t
|
|
|
|
(setq buffer (erc-get-buffer chnl proc))
|
|
|
|
(erc-make-notice
|
|
|
|
(erc-format-message
|
|
|
|
'JOIN ?n nick ?u login ?h host ?c chnl))))))
|
|
|
|
(when buffer (set-buffer buffer))
|
2014-11-09 01:51:43 +00:00
|
|
|
(erc-update-channel-member chnl nick nick t nil nil nil nil nil host login)
|
2006-01-29 13:08:58 +00:00
|
|
|
;; on join, we want to stay in the new channel buffer
|
|
|
|
;;(set-buffer ob)
|
|
|
|
(erc-display-message parsed nil buffer str))))))
|
|
|
|
|
|
|
|
(define-erc-response-handler (KICK)
|
|
|
|
"Handle kick messages received from the server." nil
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(let* ((ch (nth 0 (erc-response.command-args parsed)))
|
|
|
|
(tgt (nth 1 (erc-response.command-args parsed)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(reason (erc-trim-string (erc-response.contents parsed)))
|
|
|
|
(buffer (erc-get-buffer ch proc)))
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(pcase-let ((`(,nick ,login ,host)
|
|
|
|
(erc-parse-user (erc-response.sender parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-remove-channel-member buffer tgt)
|
|
|
|
(cond
|
|
|
|
((string= tgt (erc-current-nick))
|
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice buffer
|
|
|
|
'KICK-you ?n nick ?u login ?h host ?c ch ?r reason)
|
|
|
|
(run-hook-with-args 'erc-kick-hook buffer)
|
|
|
|
(erc-with-buffer
|
|
|
|
(buffer)
|
|
|
|
(erc-remove-channel-users))
|
|
|
|
(erc-delete-default-channel ch buffer)
|
|
|
|
(erc-update-mode-line buffer))
|
|
|
|
((string= nick (erc-current-nick))
|
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice buffer
|
|
|
|
'KICK-by-you ?k tgt ?c ch ?r reason))
|
|
|
|
(t (erc-display-message
|
|
|
|
parsed 'notice buffer
|
|
|
|
'KICK ?k tgt ?n nick ?u login ?h host ?c ch ?r reason))))))
|
|
|
|
|
|
|
|
(define-erc-response-handler (MODE)
|
|
|
|
"Handle server mode changes." nil
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(let ((tgt (car (erc-response.command-args parsed)))
|
2016-04-02 19:38:54 +00:00
|
|
|
(mode (mapconcat #'identity (cdr (erc-response.command-args parsed))
|
2006-01-29 13:08:58 +00:00
|
|
|
" ")))
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(pcase-let ((`(,nick ,login ,host)
|
|
|
|
(erc-parse-user (erc-response.sender parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-log (format "MODE: %s -> %s: %s" nick tgt mode))
|
|
|
|
;; dirty hack
|
|
|
|
(let ((buf (cond ((erc-channel-p tgt)
|
|
|
|
(erc-get-buffer tgt proc))
|
|
|
|
((string= tgt (erc-current-nick)) nil)
|
|
|
|
((erc-active-buffer) (erc-active-buffer))
|
|
|
|
(t (erc-get-buffer tgt)))))
|
|
|
|
(with-current-buffer (or buf
|
|
|
|
(current-buffer))
|
|
|
|
(erc-update-modes tgt mode nick host login))
|
|
|
|
(if (or (string= login "") (string= host ""))
|
|
|
|
(erc-display-message parsed 'notice buf
|
|
|
|
'MODE-nick ?n nick
|
|
|
|
?t tgt ?m mode)
|
|
|
|
(erc-display-message parsed 'notice buf
|
|
|
|
'MODE ?n nick ?u login
|
|
|
|
?h host ?t tgt ?m mode)))
|
|
|
|
(erc-banlist-update proc parsed))))
|
|
|
|
|
|
|
|
(define-erc-response-handler (NICK)
|
|
|
|
"Handle nick change messages." nil
|
|
|
|
(let ((nn (erc-response.contents parsed))
|
|
|
|
bufs)
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(pcase-let ((`(,nick ,login ,host)
|
|
|
|
(erc-parse-user (erc-response.sender parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(setq bufs (erc-buffer-list-with-nick nick proc))
|
|
|
|
(erc-log (format "NICK: %s -> %s" nick nn))
|
|
|
|
;; if we had a query with this user, make sure future messages will be
|
|
|
|
;; sent to the correct nick. also add to bufs, since the user will want
|
|
|
|
;; to see the nick change in the query, and if it's a newly begun query,
|
|
|
|
;; erc-channel-users won't contain it
|
|
|
|
(erc-buffer-filter
|
|
|
|
(lambda ()
|
|
|
|
(when (equal (erc-default-target) nick)
|
|
|
|
(setq erc-default-recipients
|
|
|
|
(cons nn (cdr erc-default-recipients)))
|
2012-10-07 01:28:04 +00:00
|
|
|
(rename-buffer nn t) ; bug#12002
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-update-mode-line)
|
2016-04-02 19:38:54 +00:00
|
|
|
(cl-pushnew (current-buffer) bufs))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-update-user-nick nick nn host nil nil login)
|
|
|
|
(cond
|
|
|
|
((string= nick (erc-current-nick))
|
2016-04-02 19:38:54 +00:00
|
|
|
(cl-pushnew (erc-server-buffer) bufs)
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-set-current-nick nn)
|
|
|
|
(erc-update-mode-line)
|
|
|
|
(setq erc-nick-change-attempt-count 0)
|
|
|
|
(setq erc-default-nicks (if (consp erc-nick) erc-nick (list erc-nick)))
|
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice bufs
|
|
|
|
'NICK-you ?n nick ?N nn)
|
|
|
|
(run-hook-with-args 'erc-nick-changed-functions nn nick))
|
|
|
|
(t
|
|
|
|
(erc-handle-user-status-change 'nick (list nick login host) (list nn))
|
|
|
|
(erc-display-message parsed 'notice bufs 'NICK ?n nick
|
|
|
|
?u login ?h host ?N nn))))))
|
|
|
|
|
|
|
|
(define-erc-response-handler (PART)
|
|
|
|
"Handle part messages." nil
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(let* ((chnl (car (erc-response.command-args parsed)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(reason (erc-trim-string (erc-response.contents parsed)))
|
|
|
|
(buffer (erc-get-buffer chnl proc)))
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(pcase-let ((`(,nick ,login ,host)
|
|
|
|
(erc-parse-user (erc-response.sender parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-remove-channel-member buffer nick)
|
|
|
|
(erc-display-message parsed 'notice buffer
|
|
|
|
'PART ?n nick ?u login
|
|
|
|
?h host ?c chnl ?r (or reason ""))
|
|
|
|
(when (string= nick (erc-current-nick))
|
|
|
|
(run-hook-with-args 'erc-part-hook buffer)
|
|
|
|
(erc-with-buffer
|
|
|
|
(buffer)
|
|
|
|
(erc-remove-channel-users))
|
|
|
|
(erc-delete-default-channel chnl buffer)
|
|
|
|
(erc-update-mode-line buffer)
|
|
|
|
(when erc-kill-buffer-on-part
|
|
|
|
(kill-buffer buffer))))))
|
|
|
|
|
|
|
|
(define-erc-response-handler (PING)
|
|
|
|
"Handle ping messages." nil
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(let ((pinger (car (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-log (format "PING: %s" pinger))
|
|
|
|
;; ping response to the server MUST be forced, or you can lose big
|
|
|
|
(erc-server-send (format "PONG :%s" pinger) t)
|
|
|
|
(when erc-verbose-server-ping
|
|
|
|
(erc-display-message
|
|
|
|
parsed 'error proc
|
|
|
|
'PING ?s (erc-time-diff erc-server-last-ping-time (erc-current-time))))
|
|
|
|
(setq erc-server-last-ping-time (erc-current-time))))
|
|
|
|
|
|
|
|
(define-erc-response-handler (PONG)
|
|
|
|
"Handle pong messages." nil
|
|
|
|
(let ((time (string-to-number (erc-response.contents parsed))))
|
|
|
|
(when (> time 0)
|
Avoid some double-rounding of Lisp timestamps
Also, simplify some time-related Lisp timestamp code
while we’re in the neighborhood.
* lisp/battery.el (battery-linux-proc-acpi)
(battery-linux-sysfs, battery-upower, battery-bsd-apm):
* lisp/calendar/timeclock.el (timeclock-seconds-to-string)
(timeclock-log, timeclock-last-period)
(timeclock-entry-length, timeclock-entry-list-span)
(timeclock-find-discrep, timeclock-generate-report):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/completion.el (cmpl-hours-since-origin):
* lisp/ecomplete.el (ecomplete-decay-1):
* lisp/emacs-lisp/ert.el (ert--results-update-stats-display)
(ert--results-update-stats-display-maybe):
* lisp/emacs-lisp/timer-list.el (list-timers):
* lisp/emacs-lisp/timer.el (timer-until)
(timer-event-handler):
* lisp/erc/erc-backend.el (erc-server-send-ping)
(erc-server-send-queue, erc-handle-parsed-server-response)
(erc-handle-unknown-server-response):
* lisp/erc/erc-track.el (erc-buffer-visible):
* lisp/erc/erc.el (erc-lurker-cleanup, erc-lurker-p)
(erc-cmd-PING, erc-send-current-line):
* lisp/eshell/em-pred.el (eshell-pred-file-time):
* lisp/eshell/em-unix.el (eshell-show-elapsed-time):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event:org-timestamp):
* lisp/gnus/gnus-int.el (gnus-backend-trace):
* lisp/gnus/gnus-sum.el (gnus-user-date):
* lisp/gnus/mail-source.el (mail-source-delete-crash-box):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/ibuf-ext.el (ibuffer-mark-old-buffers):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/mouse.el (mouse--down-1-maybe-follows-link)
(mouse--click-1-maybe-follows-link):
* lisp/mpc.el (mpc--faster-toggle):
* lisp/net/rcirc.el (rcirc-handler-ctcp-KEEPALIVE)
(rcirc-sentinel):
* lisp/net/tramp-cache.el (tramp-get-file-property):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-newer-than-file-p)
(tramp-maybe-open-connection):
* lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection):
* lisp/org/org-clock.el (org-clock-resolve):
(org-resolve-clocks, org-clock-in, org-clock-out, org-clock-sum):
* lisp/org/org-timer.el (org-timer-start)
(org-timer-pause-or-continue, org-timer-seconds):
* lisp/org/org.el (org-evaluate-time-range):
* lisp/org/ox-publish.el (org-publish-cache-ctime-of-src):
* lisp/pixel-scroll.el (pixel-scroll-in-rush-p):
* lisp/play/hanoi.el (hanoi-move-ring):
* lisp/proced.el (proced-format-time):
* lisp/progmodes/cpp.el (cpp-progress-message):
* lisp/progmodes/flymake.el (flymake--handle-report):
* lisp/progmodes/js.el (js--wait-for-matching-output):
* lisp/subr.el (progress-reporter-do-update):
* lisp/term/xterm.el (xterm--read-event-for-query):
* lisp/time.el (display-time-update, emacs-uptime):
* lisp/tooltip.el (tooltip-delay):
* lisp/url/url-cookie.el (url-cookie-parse-file-netscape):
* lisp/url/url-queue.el (url-queue-prune-old-entries):
* lisp/url/url.el (url-retrieve-synchronously):
* lisp/xt-mouse.el (xterm-mouse-event):
Avoid double-rounding of time-related values. Simplify.
* lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
When hoping for the best (unlikely), use a better decoded time.
(icalendar--convert-sexp-to-ical): Avoid unnecessary encode-time.
* lisp/calendar/timeclock.el (timeclock-when-to-leave):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/desktop.el (desktop-create-buffer):
* lisp/emacs-lisp/benchmark.el (benchmark-elapse):
* lisp/gnus/gnus-art.el (article-lapsed-string):
* lisp/gnus/gnus-group.el (gnus-group-timestamp-delta):
* lisp/gnus/nnmail.el (nnmail-expired-article-p):
* lisp/gnus/nnmaildir.el (nnmaildir-request-expire-articles):
* lisp/nxml/rng-maint.el (rng-time-function):
* lisp/org/org-clock.el (org-clock-get-clocked-time)
(org-clock-resolve, org-resolve-clocks, org-resolve-clocks-if-idle):
* lisp/org/org-habit.el (org-habit-insert-consistency-graphs):
* lisp/progmodes/vhdl-mode.el (vhdl-update-progress-info)
(vhdl-fix-case-region-1):
Use time-since instead of open-coding most of it.
* lisp/erc/erc-dcc.el (erc-dcc-get-sentinel):
* lisp/erc/erc.el (erc-string-to-emacs-time, erc-time-gt):
Now obsolete. All uses changed.
(erc-time-diff): Accept all Lisp time values.
All uses changed.
* lisp/gnus/gnus-demon.el (gnus-demon-idle-since):
* lisp/gnus/gnus-score.el (gnus-score-headers):
* lisp/gnus/nneething.el (nneething-make-head):
* lisp/gnus/nnheader.el (nnheader-message-maybe):
* lisp/gnus/nnimap.el (nnimap-keepalive):
* lisp/image.el (image-animate-timeout):
* lisp/mail/feedmail.el (feedmail-rfc822-date):
* lisp/net/imap.el (imap-wait-for-tag):
* lisp/net/newst-backend.el (newsticker--image-get):
* lisp/net/rcirc.el (rcirc-handler-317, rcirc-handler-333):
* lisp/obsolete/xesam.el (xesam-refresh-entry):
* lisp/org/org-agenda.el (org-agenda-show-clocking-issues)
(org-agenda-check-clock-gap, org-agenda-to-appt):
* lisp/org/org-capture.el (org-capture-set-target-location):
* lisp/org/org-clock.el (org-clock-resolve-clock)
(org-clocktable-steps):
* lisp/org/org-colview.el (org-columns-edit-value)
(org-columns, org-agenda-columns):
* lisp/org/org-duration.el (org-duration-from-minutes):
* lisp/org/org-element.el (org-element-cache-sync-duration)
(org-element-cache-sync-break)
(org-element--cache-interrupt-p, org-element--cache-sync):
* lisp/org/org-habit.el (org-habit-get-faces)
* lisp/org/org-indent.el (org-indent-add-properties):
* lisp/org/org-table.el (org-table-sum):
* lisp/org/org-timer.el (org-timer-show-remaining-time)
(org-timer-set-timer):
* lisp/org/org.el (org-babel-load-file, org-today)
(org-auto-repeat-maybe, org-2ft, org-time-stamp)
(org-read-date-analyze, org-time-stamp-to-now)
(org-small-year-to-year, org-goto-calendar):
* lisp/org/ox.el (org-export-insert-default-template):
* lisp/ses.el (ses--time-check):
* lisp/type-break.el (type-break-time-warning)
(type-break-statistics, type-break-demo-boring):
* lisp/url/url-cache.el (url-cache-expired)
(url-cache-prune-cache):
* lisp/vc/vc-git.el (vc-git-stash-snapshot):
* lisp/erc/erc-match.el (erc-log-matches-come-back):
Simplify.
2019-02-23 02:32:31 +00:00
|
|
|
(setq erc-server-lag (erc-time-diff time nil))
|
2006-01-29 13:08:58 +00:00
|
|
|
(when erc-verbose-server-ping
|
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice proc 'PONG
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
?h (car (erc-response.command-args parsed)) ?i erc-server-lag
|
2006-01-29 13:08:58 +00:00
|
|
|
?s (if (/= erc-server-lag 1) "s" "")))
|
|
|
|
(erc-update-mode-line))))
|
|
|
|
|
|
|
|
(define-erc-response-handler (PRIVMSG NOTICE)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Handle private messages, including messages in channels." nil
|
2006-01-29 13:08:58 +00:00
|
|
|
(let ((sender-spec (erc-response.sender parsed))
|
|
|
|
(cmd (erc-response.command parsed))
|
|
|
|
(tgt (car (erc-response.command-args parsed)))
|
|
|
|
(msg (erc-response.contents parsed)))
|
|
|
|
(if (or (erc-ignored-user-p sender-spec)
|
|
|
|
(erc-ignored-reply-p msg tgt proc))
|
|
|
|
(when erc-minibuffer-ignored
|
|
|
|
(message "Ignored %s from %s to %s" cmd sender-spec tgt))
|
|
|
|
(let* ((sndr (erc-parse-user sender-spec))
|
|
|
|
(nick (nth 0 sndr))
|
|
|
|
(login (nth 1 sndr))
|
|
|
|
(host (nth 2 sndr))
|
|
|
|
(msgp (string= cmd "PRIVMSG"))
|
|
|
|
(noticep (string= cmd "NOTICE"))
|
|
|
|
;; S.B. downcase *both* tgt and current nick
|
|
|
|
(privp (erc-current-nick-p tgt))
|
|
|
|
s buffer
|
|
|
|
fnick)
|
|
|
|
(setf (erc-response.contents parsed) msg)
|
|
|
|
(setq buffer (erc-get-buffer (if privp nick tgt) proc))
|
|
|
|
(when buffer
|
|
|
|
(with-current-buffer buffer
|
|
|
|
;; update the chat partner info. Add to the list if private
|
2006-11-24 10:53:03 +00:00
|
|
|
;; message. We will accumulate private identities indefinitely
|
2006-01-29 13:08:58 +00:00
|
|
|
;; at this point.
|
|
|
|
(erc-update-channel-member (if privp nick tgt) nick nick
|
2014-11-09 01:51:43 +00:00
|
|
|
privp nil nil nil nil nil host login nil nil t)
|
2006-01-29 13:08:58 +00:00
|
|
|
(let ((cdata (erc-get-channel-user nick)))
|
|
|
|
(setq fnick (funcall erc-format-nick-function
|
|
|
|
(car cdata) (cdr cdata))))))
|
|
|
|
(cond
|
|
|
|
((erc-is-message-ctcp-p msg)
|
|
|
|
(setq s (if msgp
|
|
|
|
(erc-process-ctcp-query proc parsed nick login host)
|
|
|
|
(erc-process-ctcp-reply proc parsed nick login host
|
|
|
|
(match-string 1 msg)))))
|
|
|
|
(t
|
|
|
|
(setcar erc-server-last-peers nick)
|
|
|
|
(setq s (erc-format-privmessage
|
|
|
|
(or fnick nick) msg
|
|
|
|
;; If buffer is a query buffer,
|
|
|
|
;; format the nick as for a channel.
|
|
|
|
(and (not (and buffer
|
|
|
|
(erc-query-buffer-p buffer)
|
|
|
|
erc-format-query-as-channel-p))
|
|
|
|
privp)
|
|
|
|
msgp))))
|
|
|
|
(when s
|
|
|
|
(if (and noticep privp)
|
|
|
|
(progn
|
|
|
|
(run-hook-with-args 'erc-echo-notice-always-hook
|
|
|
|
s parsed buffer nick)
|
|
|
|
(run-hook-with-args-until-success
|
|
|
|
'erc-echo-notice-hook s parsed buffer nick))
|
|
|
|
(erc-display-message parsed nil buffer s)))
|
|
|
|
(when (string= cmd "PRIVMSG")
|
|
|
|
(erc-auto-query proc parsed))))))
|
|
|
|
|
2011-11-20 03:48:53 +00:00
|
|
|
;; FIXME: need clean way of specifying extra hooks in
|
2006-01-29 13:08:58 +00:00
|
|
|
;; define-erc-response-handler.
|
2016-04-02 19:38:54 +00:00
|
|
|
(add-hook 'erc-server-PRIVMSG-functions #'erc-auto-query)
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (QUIT)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Another user has quit IRC." nil
|
2006-01-29 13:08:58 +00:00
|
|
|
(let ((reason (erc-response.contents parsed))
|
|
|
|
bufs)
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(pcase-let ((`(,nick ,login ,host)
|
|
|
|
(erc-parse-user (erc-response.sender parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(setq bufs (erc-buffer-list-with-nick nick proc))
|
|
|
|
(erc-remove-user nick)
|
|
|
|
(setq reason (erc-wash-quit-reason reason nick login host))
|
|
|
|
(erc-display-message parsed 'notice bufs
|
|
|
|
'QUIT ?n nick ?u login
|
|
|
|
?h host ?r reason))))
|
|
|
|
|
|
|
|
(define-erc-response-handler (TOPIC)
|
2008-01-10 03:51:14 +00:00
|
|
|
"The channel topic has changed." nil
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(let* ((ch (car (erc-response.command-args parsed)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(topic (erc-trim-string (erc-response.contents parsed)))
|
2014-11-09 01:51:43 +00:00
|
|
|
(time (format-time-string erc-server-timestamp-format)))
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(pcase-let ((`(,nick ,login ,host)
|
|
|
|
(erc-parse-user (erc-response.sender parsed))))
|
2014-11-09 01:51:43 +00:00
|
|
|
(erc-update-channel-member ch nick nick nil nil nil nil nil nil host login)
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-update-channel-topic ch (format "%s\C-o (%s, %s)" topic nick time))
|
|
|
|
(erc-display-message parsed 'notice (erc-get-buffer ch proc)
|
|
|
|
'TOPIC ?n nick ?u login ?h host
|
|
|
|
?c ch ?T topic))))
|
|
|
|
|
|
|
|
(define-erc-response-handler (WALLOPS)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Display a WALLOPS message." nil
|
2006-01-29 13:08:58 +00:00
|
|
|
(let ((message (erc-response.contents parsed)))
|
2016-04-02 19:38:54 +00:00
|
|
|
(pcase-let ((`(,nick ,_login ,_host)
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(erc-parse-user (erc-response.sender parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice nil
|
|
|
|
'WALLOPS ?n nick ?m message))))
|
|
|
|
|
|
|
|
(define-erc-response-handler (001)
|
|
|
|
"Set `erc-server-current-nick' to reflect server settings and display the welcome message."
|
|
|
|
nil
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(erc-set-current-nick (car (erc-response.command-args parsed)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-update-mode-line) ; needed here?
|
|
|
|
(setq erc-nick-change-attempt-count 0)
|
|
|
|
(setq erc-default-nicks (if (consp erc-nick) erc-nick (list erc-nick)))
|
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice 'active (erc-response.contents parsed)))
|
|
|
|
|
|
|
|
(define-erc-response-handler (MOTD 002 003 371 372 374 375)
|
|
|
|
"Display the server's message of the day." nil
|
|
|
|
(erc-handle-login)
|
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice (if erc-server-connected 'active proc)
|
|
|
|
(erc-response.contents parsed)))
|
|
|
|
|
|
|
|
(define-erc-response-handler (376 422)
|
2008-01-10 03:51:14 +00:00
|
|
|
"End of MOTD/MOTD is missing." nil
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-server-MOTD proc parsed)
|
|
|
|
(erc-connection-established proc parsed))
|
|
|
|
|
|
|
|
(define-erc-response-handler (004)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Display the server's identification." nil
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(pcase-let ((`(,server-name ,server-version)
|
|
|
|
(cdr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(setq erc-server-version server-version)
|
|
|
|
(setq erc-server-announced-name server-name)
|
|
|
|
(erc-update-mode-line-buffer (process-buffer proc))
|
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice proc
|
|
|
|
's004 ?s server-name ?v server-version
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
?U (nth 3 (erc-response.command-args parsed))
|
|
|
|
?C (nth 4 (erc-response.command-args parsed)))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (005)
|
|
|
|
"Set the variable `erc-server-parameters' and display the received message.
|
|
|
|
|
|
|
|
According to RFC 2812, suggests alternate servers on the network.
|
|
|
|
Many servers, however, use this code to show which parameters they have set,
|
|
|
|
for example, the network identifier, maximum allowed topic length, whether
|
2006-11-24 10:53:03 +00:00
|
|
|
certain commands are accepted and more. See documentation for
|
2006-01-29 13:08:58 +00:00
|
|
|
`erc-server-parameters' for more information on the parameters sent.
|
|
|
|
|
|
|
|
A server may send more than one 005 message."
|
|
|
|
nil
|
2016-04-02 19:38:54 +00:00
|
|
|
(let ((line (mapconcat #'identity
|
2006-01-29 13:08:58 +00:00
|
|
|
(setf (erc-response.command-args parsed)
|
|
|
|
(cdr (erc-response.command-args parsed)))
|
|
|
|
" ")))
|
|
|
|
(while (erc-response.command-args parsed)
|
|
|
|
(let ((section (pop (erc-response.command-args parsed))))
|
|
|
|
;; fill erc-server-parameters
|
2015-09-17 23:08:20 +00:00
|
|
|
(when (string-match "^\\([A-Z]+\\)=\\(.*\\)$\\|^\\([A-Z]+\\)$"
|
2006-01-29 13:08:58 +00:00
|
|
|
section)
|
|
|
|
(add-to-list 'erc-server-parameters
|
|
|
|
`(,(or (match-string 1 section)
|
|
|
|
(match-string 3 section))
|
|
|
|
.
|
|
|
|
,(match-string 2 section))))))
|
|
|
|
(erc-display-message parsed 'notice proc line)))
|
|
|
|
|
|
|
|
(define-erc-response-handler (221)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Display the current user modes." nil
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(let* ((nick (car (erc-response.command-args parsed)))
|
2016-04-02 19:38:54 +00:00
|
|
|
(modes (mapconcat #'identity
|
2006-01-29 13:08:58 +00:00
|
|
|
(cdr (erc-response.command-args parsed)) " ")))
|
|
|
|
(erc-set-modes nick modes)
|
|
|
|
(erc-display-message parsed 'notice 'active 's221 ?n nick ?m modes)))
|
|
|
|
|
|
|
|
(define-erc-response-handler (252)
|
|
|
|
"Display the number of IRC operators online." nil
|
|
|
|
(erc-display-message parsed 'notice 'active 's252
|
2012-11-23 16:00:57 +00:00
|
|
|
?i (cadr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (253)
|
|
|
|
"Display the number of unknown connections." nil
|
|
|
|
(erc-display-message parsed 'notice 'active 's253
|
2012-11-23 16:00:57 +00:00
|
|
|
?i (cadr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (254)
|
|
|
|
"Display the number of channels formed." nil
|
|
|
|
(erc-display-message parsed 'notice 'active 's254
|
2012-11-23 16:00:57 +00:00
|
|
|
?i (cadr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (250 251 255 256 257 258 259 265 266 377 378)
|
|
|
|
"Generic display of server messages as notices.
|
|
|
|
|
|
|
|
See `erc-display-server-message'." nil
|
|
|
|
(erc-display-server-message proc parsed))
|
|
|
|
|
2007-12-09 06:40:47 +00:00
|
|
|
(define-erc-response-handler (275)
|
|
|
|
"Display secure connection message." nil
|
2016-04-02 19:38:54 +00:00
|
|
|
(pcase-let ((`(,nick ,_user ,_message)
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(cdr (erc-response.command-args parsed))))
|
2007-12-09 06:40:47 +00:00
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice 'active 's275
|
|
|
|
?n nick
|
2016-04-02 19:38:54 +00:00
|
|
|
?m (mapconcat #'identity (cddr (erc-response.command-args parsed))
|
2007-12-09 06:40:47 +00:00
|
|
|
" "))))
|
|
|
|
|
2007-04-01 13:36:38 +00:00
|
|
|
(define-erc-response-handler (290)
|
|
|
|
"Handle dancer-ircd CAPAB messages." nil nil)
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
(define-erc-response-handler (301)
|
|
|
|
"AWAY notice." nil
|
|
|
|
(erc-display-message parsed 'notice 'active 's301
|
2012-11-23 16:00:57 +00:00
|
|
|
?n (cadr (erc-response.command-args parsed))
|
2006-01-29 13:08:58 +00:00
|
|
|
?r (erc-response.contents parsed)))
|
|
|
|
|
|
|
|
(define-erc-response-handler (303)
|
|
|
|
"ISON reply" nil
|
|
|
|
(erc-display-message parsed 'notice 'active 's303
|
2012-11-23 16:00:57 +00:00
|
|
|
?n (cadr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (305)
|
|
|
|
"Return from AWAYness." nil
|
|
|
|
(erc-process-away proc nil)
|
|
|
|
(erc-display-message parsed 'notice 'active
|
|
|
|
's305 ?m (erc-response.contents parsed)))
|
|
|
|
|
|
|
|
(define-erc-response-handler (306)
|
|
|
|
"Set AWAYness." nil
|
|
|
|
(erc-process-away proc t)
|
|
|
|
(erc-display-message parsed 'notice 'active
|
|
|
|
's306 ?m (erc-response.contents parsed)))
|
|
|
|
|
2007-11-29 22:36:38 +00:00
|
|
|
(define-erc-response-handler (307)
|
|
|
|
"Display nick-identified message." nil
|
2016-04-02 19:38:54 +00:00
|
|
|
(pcase-let ((`(,nick ,_user ,_message)
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(cdr (erc-response.command-args parsed))))
|
2007-11-29 22:36:38 +00:00
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice 'active 's307
|
|
|
|
?n nick
|
2016-04-02 19:38:54 +00:00
|
|
|
?m (mapconcat #'identity (cddr (erc-response.command-args parsed))
|
2007-11-29 22:36:38 +00:00
|
|
|
" "))))
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
(define-erc-response-handler (311 314)
|
|
|
|
"WHOIS/WHOWAS notices." nil
|
|
|
|
(let ((fname (erc-response.contents parsed))
|
|
|
|
(catalog-entry (intern (format "s%s" (erc-response.command parsed)))))
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(pcase-let ((`(,nick ,user ,host)
|
|
|
|
(cdr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-update-user-nick nick nick host nil fname user)
|
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice 'active catalog-entry
|
|
|
|
?n nick ?f fname ?u user ?h host))))
|
|
|
|
|
|
|
|
(define-erc-response-handler (312)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Server name response in WHOIS." nil
|
2013-01-04 01:31:52 +00:00
|
|
|
(pcase-let ((`(,nick ,server-host)
|
|
|
|
(cdr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice 'active 's312
|
|
|
|
?n nick ?s server-host ?c (erc-response.contents parsed))))
|
|
|
|
|
|
|
|
(define-erc-response-handler (313)
|
|
|
|
"IRC Operator response in WHOIS." nil
|
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice 'active 's313
|
2012-11-23 16:00:57 +00:00
|
|
|
?n (cadr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (315 318 323 369)
|
|
|
|
;; 315 - End of WHO
|
|
|
|
;; 318 - End of WHOIS list
|
|
|
|
;; 323 - End of channel LIST
|
|
|
|
;; 369 - End of WHOWAS
|
2008-01-10 03:51:14 +00:00
|
|
|
"End of WHO/WHOIS/LIST/WHOWAS notices." nil
|
2006-01-29 13:08:58 +00:00
|
|
|
(ignore proc parsed))
|
|
|
|
|
|
|
|
(define-erc-response-handler (317)
|
|
|
|
"IDLE notice." nil
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(pcase-let ((`(,nick ,seconds-idle ,on-since ,time)
|
|
|
|
(cdr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(setq time (when on-since
|
2012-05-13 18:51:14 +00:00
|
|
|
(format-time-string erc-server-timestamp-format
|
Avoid some double-rounding of Lisp timestamps
Also, simplify some time-related Lisp timestamp code
while we’re in the neighborhood.
* lisp/battery.el (battery-linux-proc-acpi)
(battery-linux-sysfs, battery-upower, battery-bsd-apm):
* lisp/calendar/timeclock.el (timeclock-seconds-to-string)
(timeclock-log, timeclock-last-period)
(timeclock-entry-length, timeclock-entry-list-span)
(timeclock-find-discrep, timeclock-generate-report):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/completion.el (cmpl-hours-since-origin):
* lisp/ecomplete.el (ecomplete-decay-1):
* lisp/emacs-lisp/ert.el (ert--results-update-stats-display)
(ert--results-update-stats-display-maybe):
* lisp/emacs-lisp/timer-list.el (list-timers):
* lisp/emacs-lisp/timer.el (timer-until)
(timer-event-handler):
* lisp/erc/erc-backend.el (erc-server-send-ping)
(erc-server-send-queue, erc-handle-parsed-server-response)
(erc-handle-unknown-server-response):
* lisp/erc/erc-track.el (erc-buffer-visible):
* lisp/erc/erc.el (erc-lurker-cleanup, erc-lurker-p)
(erc-cmd-PING, erc-send-current-line):
* lisp/eshell/em-pred.el (eshell-pred-file-time):
* lisp/eshell/em-unix.el (eshell-show-elapsed-time):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event:org-timestamp):
* lisp/gnus/gnus-int.el (gnus-backend-trace):
* lisp/gnus/gnus-sum.el (gnus-user-date):
* lisp/gnus/mail-source.el (mail-source-delete-crash-box):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/ibuf-ext.el (ibuffer-mark-old-buffers):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/mouse.el (mouse--down-1-maybe-follows-link)
(mouse--click-1-maybe-follows-link):
* lisp/mpc.el (mpc--faster-toggle):
* lisp/net/rcirc.el (rcirc-handler-ctcp-KEEPALIVE)
(rcirc-sentinel):
* lisp/net/tramp-cache.el (tramp-get-file-property):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-newer-than-file-p)
(tramp-maybe-open-connection):
* lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection):
* lisp/org/org-clock.el (org-clock-resolve):
(org-resolve-clocks, org-clock-in, org-clock-out, org-clock-sum):
* lisp/org/org-timer.el (org-timer-start)
(org-timer-pause-or-continue, org-timer-seconds):
* lisp/org/org.el (org-evaluate-time-range):
* lisp/org/ox-publish.el (org-publish-cache-ctime-of-src):
* lisp/pixel-scroll.el (pixel-scroll-in-rush-p):
* lisp/play/hanoi.el (hanoi-move-ring):
* lisp/proced.el (proced-format-time):
* lisp/progmodes/cpp.el (cpp-progress-message):
* lisp/progmodes/flymake.el (flymake--handle-report):
* lisp/progmodes/js.el (js--wait-for-matching-output):
* lisp/subr.el (progress-reporter-do-update):
* lisp/term/xterm.el (xterm--read-event-for-query):
* lisp/time.el (display-time-update, emacs-uptime):
* lisp/tooltip.el (tooltip-delay):
* lisp/url/url-cookie.el (url-cookie-parse-file-netscape):
* lisp/url/url-queue.el (url-queue-prune-old-entries):
* lisp/url/url.el (url-retrieve-synchronously):
* lisp/xt-mouse.el (xterm-mouse-event):
Avoid double-rounding of time-related values. Simplify.
* lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
When hoping for the best (unlikely), use a better decoded time.
(icalendar--convert-sexp-to-ical): Avoid unnecessary encode-time.
* lisp/calendar/timeclock.el (timeclock-when-to-leave):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/desktop.el (desktop-create-buffer):
* lisp/emacs-lisp/benchmark.el (benchmark-elapse):
* lisp/gnus/gnus-art.el (article-lapsed-string):
* lisp/gnus/gnus-group.el (gnus-group-timestamp-delta):
* lisp/gnus/nnmail.el (nnmail-expired-article-p):
* lisp/gnus/nnmaildir.el (nnmaildir-request-expire-articles):
* lisp/nxml/rng-maint.el (rng-time-function):
* lisp/org/org-clock.el (org-clock-get-clocked-time)
(org-clock-resolve, org-resolve-clocks, org-resolve-clocks-if-idle):
* lisp/org/org-habit.el (org-habit-insert-consistency-graphs):
* lisp/progmodes/vhdl-mode.el (vhdl-update-progress-info)
(vhdl-fix-case-region-1):
Use time-since instead of open-coding most of it.
* lisp/erc/erc-dcc.el (erc-dcc-get-sentinel):
* lisp/erc/erc.el (erc-string-to-emacs-time, erc-time-gt):
Now obsolete. All uses changed.
(erc-time-diff): Accept all Lisp time values.
All uses changed.
* lisp/gnus/gnus-demon.el (gnus-demon-idle-since):
* lisp/gnus/gnus-score.el (gnus-score-headers):
* lisp/gnus/nneething.el (nneething-make-head):
* lisp/gnus/nnheader.el (nnheader-message-maybe):
* lisp/gnus/nnimap.el (nnimap-keepalive):
* lisp/image.el (image-animate-timeout):
* lisp/mail/feedmail.el (feedmail-rfc822-date):
* lisp/net/imap.el (imap-wait-for-tag):
* lisp/net/newst-backend.el (newsticker--image-get):
* lisp/net/rcirc.el (rcirc-handler-317, rcirc-handler-333):
* lisp/obsolete/xesam.el (xesam-refresh-entry):
* lisp/org/org-agenda.el (org-agenda-show-clocking-issues)
(org-agenda-check-clock-gap, org-agenda-to-appt):
* lisp/org/org-capture.el (org-capture-set-target-location):
* lisp/org/org-clock.el (org-clock-resolve-clock)
(org-clocktable-steps):
* lisp/org/org-colview.el (org-columns-edit-value)
(org-columns, org-agenda-columns):
* lisp/org/org-duration.el (org-duration-from-minutes):
* lisp/org/org-element.el (org-element-cache-sync-duration)
(org-element-cache-sync-break)
(org-element--cache-interrupt-p, org-element--cache-sync):
* lisp/org/org-habit.el (org-habit-get-faces)
* lisp/org/org-indent.el (org-indent-add-properties):
* lisp/org/org-table.el (org-table-sum):
* lisp/org/org-timer.el (org-timer-show-remaining-time)
(org-timer-set-timer):
* lisp/org/org.el (org-babel-load-file, org-today)
(org-auto-repeat-maybe, org-2ft, org-time-stamp)
(org-read-date-analyze, org-time-stamp-to-now)
(org-small-year-to-year, org-goto-calendar):
* lisp/org/ox.el (org-export-insert-default-template):
* lisp/ses.el (ses--time-check):
* lisp/type-break.el (type-break-time-warning)
(type-break-statistics, type-break-demo-boring):
* lisp/url/url-cache.el (url-cache-expired)
(url-cache-prune-cache):
* lisp/vc/vc-git.el (vc-git-stash-snapshot):
* lisp/erc/erc-match.el (erc-log-matches-come-back):
Simplify.
2019-02-23 02:32:31 +00:00
|
|
|
(string-to-number on-since))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-update-user-nick nick nick nil nil nil
|
|
|
|
(and time (format "on since %s" time)))
|
|
|
|
(if time
|
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice 'active 's317-on-since
|
|
|
|
?n nick ?i (erc-sec-to-time (string-to-number seconds-idle)) ?t time)
|
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice 'active 's317
|
|
|
|
?n nick ?i (erc-sec-to-time (string-to-number seconds-idle))))))
|
|
|
|
|
|
|
|
(define-erc-response-handler (319)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Channel names in WHOIS response." nil
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice 'active 's319
|
2012-11-23 16:00:57 +00:00
|
|
|
?n (cadr (erc-response.command-args parsed))
|
2006-01-29 13:08:58 +00:00
|
|
|
?c (erc-response.contents parsed)))
|
|
|
|
|
|
|
|
(define-erc-response-handler (320)
|
|
|
|
"Identified user in WHOIS." nil
|
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice 'active 's320
|
2012-11-23 16:00:57 +00:00
|
|
|
?n (cadr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (321)
|
|
|
|
"LIST header." nil
|
2008-01-25 03:28:10 +00:00
|
|
|
(setq erc-channel-list nil))
|
|
|
|
|
|
|
|
(defun erc-server-321-message (proc parsed)
|
|
|
|
"Display a message for the 321 event."
|
|
|
|
(erc-display-message parsed 'notice proc 's321)
|
|
|
|
nil)
|
2016-04-02 19:38:54 +00:00
|
|
|
(add-hook 'erc-server-321-functions #'erc-server-321-message t)
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (322)
|
|
|
|
"LIST notice." nil
|
|
|
|
(let ((topic (erc-response.contents parsed)))
|
2016-04-02 19:38:54 +00:00
|
|
|
(pcase-let ((`(,channel ,_num-users)
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(cdr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(add-to-list 'erc-channel-list (list channel))
|
2008-01-25 03:28:10 +00:00
|
|
|
(erc-update-channel-topic channel topic))))
|
|
|
|
|
|
|
|
(defun erc-server-322-message (proc parsed)
|
|
|
|
"Display a message for the 322 event."
|
|
|
|
(let ((topic (erc-response.contents parsed)))
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(pcase-let ((`(,channel ,num-users)
|
|
|
|
(cdr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message
|
2007-01-17 18:17:25 +00:00
|
|
|
parsed 'notice proc 's322
|
2006-01-29 13:08:58 +00:00
|
|
|
?c channel ?u num-users ?t (or topic "")))))
|
2016-04-02 19:38:54 +00:00
|
|
|
(add-hook 'erc-server-322-functions #'erc-server-322-message t)
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (324)
|
|
|
|
"Channel or nick modes." nil
|
2012-11-23 16:00:57 +00:00
|
|
|
(let ((channel (cadr (erc-response.command-args parsed)))
|
2016-04-02 19:38:54 +00:00
|
|
|
(modes (mapconcat #'identity (cddr (erc-response.command-args parsed))
|
2006-01-29 13:08:58 +00:00
|
|
|
" ")))
|
|
|
|
(erc-set-modes channel modes)
|
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice (erc-get-buffer channel proc)
|
|
|
|
's324 ?c channel ?m modes)))
|
|
|
|
|
2008-06-19 04:59:11 +00:00
|
|
|
(define-erc-response-handler (328)
|
|
|
|
"Channel URL (on freenode network)." nil
|
2012-11-23 16:00:57 +00:00
|
|
|
(let ((channel (cadr (erc-response.command-args parsed)))
|
2008-06-19 04:59:11 +00:00
|
|
|
(url (erc-response.contents parsed)))
|
|
|
|
(erc-display-message parsed 'notice (erc-get-buffer channel proc)
|
|
|
|
's328 ?c channel ?u url)))
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
(define-erc-response-handler (329)
|
|
|
|
"Channel creation date." nil
|
2012-11-23 16:00:57 +00:00
|
|
|
(let ((channel (cadr (erc-response.command-args parsed)))
|
Avoid some double-rounding of Lisp timestamps
Also, simplify some time-related Lisp timestamp code
while we’re in the neighborhood.
* lisp/battery.el (battery-linux-proc-acpi)
(battery-linux-sysfs, battery-upower, battery-bsd-apm):
* lisp/calendar/timeclock.el (timeclock-seconds-to-string)
(timeclock-log, timeclock-last-period)
(timeclock-entry-length, timeclock-entry-list-span)
(timeclock-find-discrep, timeclock-generate-report):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/completion.el (cmpl-hours-since-origin):
* lisp/ecomplete.el (ecomplete-decay-1):
* lisp/emacs-lisp/ert.el (ert--results-update-stats-display)
(ert--results-update-stats-display-maybe):
* lisp/emacs-lisp/timer-list.el (list-timers):
* lisp/emacs-lisp/timer.el (timer-until)
(timer-event-handler):
* lisp/erc/erc-backend.el (erc-server-send-ping)
(erc-server-send-queue, erc-handle-parsed-server-response)
(erc-handle-unknown-server-response):
* lisp/erc/erc-track.el (erc-buffer-visible):
* lisp/erc/erc.el (erc-lurker-cleanup, erc-lurker-p)
(erc-cmd-PING, erc-send-current-line):
* lisp/eshell/em-pred.el (eshell-pred-file-time):
* lisp/eshell/em-unix.el (eshell-show-elapsed-time):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event:org-timestamp):
* lisp/gnus/gnus-int.el (gnus-backend-trace):
* lisp/gnus/gnus-sum.el (gnus-user-date):
* lisp/gnus/mail-source.el (mail-source-delete-crash-box):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/ibuf-ext.el (ibuffer-mark-old-buffers):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/mouse.el (mouse--down-1-maybe-follows-link)
(mouse--click-1-maybe-follows-link):
* lisp/mpc.el (mpc--faster-toggle):
* lisp/net/rcirc.el (rcirc-handler-ctcp-KEEPALIVE)
(rcirc-sentinel):
* lisp/net/tramp-cache.el (tramp-get-file-property):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-newer-than-file-p)
(tramp-maybe-open-connection):
* lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection):
* lisp/org/org-clock.el (org-clock-resolve):
(org-resolve-clocks, org-clock-in, org-clock-out, org-clock-sum):
* lisp/org/org-timer.el (org-timer-start)
(org-timer-pause-or-continue, org-timer-seconds):
* lisp/org/org.el (org-evaluate-time-range):
* lisp/org/ox-publish.el (org-publish-cache-ctime-of-src):
* lisp/pixel-scroll.el (pixel-scroll-in-rush-p):
* lisp/play/hanoi.el (hanoi-move-ring):
* lisp/proced.el (proced-format-time):
* lisp/progmodes/cpp.el (cpp-progress-message):
* lisp/progmodes/flymake.el (flymake--handle-report):
* lisp/progmodes/js.el (js--wait-for-matching-output):
* lisp/subr.el (progress-reporter-do-update):
* lisp/term/xterm.el (xterm--read-event-for-query):
* lisp/time.el (display-time-update, emacs-uptime):
* lisp/tooltip.el (tooltip-delay):
* lisp/url/url-cookie.el (url-cookie-parse-file-netscape):
* lisp/url/url-queue.el (url-queue-prune-old-entries):
* lisp/url/url.el (url-retrieve-synchronously):
* lisp/xt-mouse.el (xterm-mouse-event):
Avoid double-rounding of time-related values. Simplify.
* lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
When hoping for the best (unlikely), use a better decoded time.
(icalendar--convert-sexp-to-ical): Avoid unnecessary encode-time.
* lisp/calendar/timeclock.el (timeclock-when-to-leave):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/desktop.el (desktop-create-buffer):
* lisp/emacs-lisp/benchmark.el (benchmark-elapse):
* lisp/gnus/gnus-art.el (article-lapsed-string):
* lisp/gnus/gnus-group.el (gnus-group-timestamp-delta):
* lisp/gnus/nnmail.el (nnmail-expired-article-p):
* lisp/gnus/nnmaildir.el (nnmaildir-request-expire-articles):
* lisp/nxml/rng-maint.el (rng-time-function):
* lisp/org/org-clock.el (org-clock-get-clocked-time)
(org-clock-resolve, org-resolve-clocks, org-resolve-clocks-if-idle):
* lisp/org/org-habit.el (org-habit-insert-consistency-graphs):
* lisp/progmodes/vhdl-mode.el (vhdl-update-progress-info)
(vhdl-fix-case-region-1):
Use time-since instead of open-coding most of it.
* lisp/erc/erc-dcc.el (erc-dcc-get-sentinel):
* lisp/erc/erc.el (erc-string-to-emacs-time, erc-time-gt):
Now obsolete. All uses changed.
(erc-time-diff): Accept all Lisp time values.
All uses changed.
* lisp/gnus/gnus-demon.el (gnus-demon-idle-since):
* lisp/gnus/gnus-score.el (gnus-score-headers):
* lisp/gnus/nneething.el (nneething-make-head):
* lisp/gnus/nnheader.el (nnheader-message-maybe):
* lisp/gnus/nnimap.el (nnimap-keepalive):
* lisp/image.el (image-animate-timeout):
* lisp/mail/feedmail.el (feedmail-rfc822-date):
* lisp/net/imap.el (imap-wait-for-tag):
* lisp/net/newst-backend.el (newsticker--image-get):
* lisp/net/rcirc.el (rcirc-handler-317, rcirc-handler-333):
* lisp/obsolete/xesam.el (xesam-refresh-entry):
* lisp/org/org-agenda.el (org-agenda-show-clocking-issues)
(org-agenda-check-clock-gap, org-agenda-to-appt):
* lisp/org/org-capture.el (org-capture-set-target-location):
* lisp/org/org-clock.el (org-clock-resolve-clock)
(org-clocktable-steps):
* lisp/org/org-colview.el (org-columns-edit-value)
(org-columns, org-agenda-columns):
* lisp/org/org-duration.el (org-duration-from-minutes):
* lisp/org/org-element.el (org-element-cache-sync-duration)
(org-element-cache-sync-break)
(org-element--cache-interrupt-p, org-element--cache-sync):
* lisp/org/org-habit.el (org-habit-get-faces)
* lisp/org/org-indent.el (org-indent-add-properties):
* lisp/org/org-table.el (org-table-sum):
* lisp/org/org-timer.el (org-timer-show-remaining-time)
(org-timer-set-timer):
* lisp/org/org.el (org-babel-load-file, org-today)
(org-auto-repeat-maybe, org-2ft, org-time-stamp)
(org-read-date-analyze, org-time-stamp-to-now)
(org-small-year-to-year, org-goto-calendar):
* lisp/org/ox.el (org-export-insert-default-template):
* lisp/ses.el (ses--time-check):
* lisp/type-break.el (type-break-time-warning)
(type-break-statistics, type-break-demo-boring):
* lisp/url/url-cache.el (url-cache-expired)
(url-cache-prune-cache):
* lisp/vc/vc-git.el (vc-git-stash-snapshot):
* lisp/erc/erc-match.el (erc-log-matches-come-back):
Simplify.
2019-02-23 02:32:31 +00:00
|
|
|
(time (string-to-number
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(nth 2 (erc-response.command-args parsed)))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice (erc-get-buffer channel proc)
|
2012-05-13 18:51:14 +00:00
|
|
|
's329 ?c channel ?t (format-time-string erc-server-timestamp-format
|
|
|
|
time))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (330)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Nick is authed as (on Quakenet network)." nil
|
2006-01-29 13:08:58 +00:00
|
|
|
;; FIXME: I don't know what the magic numbers mean. Mummy, make
|
|
|
|
;; the magic numbers go away.
|
|
|
|
;; No seriously, I have no clue about the format of this command,
|
|
|
|
;; and don't sit on Quakenet, so can't test. Originally we had:
|
|
|
|
;; nick == (aref parsed 3)
|
|
|
|
;; authaccount == (aref parsed 4)
|
|
|
|
;; authmsg == (aref parsed 5)
|
|
|
|
;; The guesses below are, well, just that. -- Lawrence 2004/05/10
|
2012-11-23 16:00:57 +00:00
|
|
|
(let ((nick (cadr (erc-response.command-args parsed)))
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(authaccount (nth 2 (erc-response.command-args parsed)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(authmsg (erc-response.contents parsed)))
|
|
|
|
(erc-display-message parsed 'notice 'active 's330
|
|
|
|
?n nick ?a authmsg ?i authaccount)))
|
|
|
|
|
|
|
|
(define-erc-response-handler (331)
|
2008-01-10 03:51:14 +00:00
|
|
|
"No topic set for channel." nil
|
2016-04-02 19:38:54 +00:00
|
|
|
(let ((channel (cadr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message parsed 'notice (erc-get-buffer channel proc)
|
|
|
|
's331 ?c channel)))
|
|
|
|
|
|
|
|
(define-erc-response-handler (332)
|
|
|
|
"TOPIC notice." nil
|
2012-11-23 16:00:57 +00:00
|
|
|
(let ((channel (cadr (erc-response.command-args parsed)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(topic (erc-response.contents parsed)))
|
|
|
|
(erc-update-channel-topic channel topic)
|
|
|
|
(erc-display-message parsed 'notice (erc-get-buffer channel proc)
|
|
|
|
's332 ?c channel ?T topic)))
|
|
|
|
|
|
|
|
(define-erc-response-handler (333)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Who set the topic, and when." nil
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(pcase-let ((`(,channel ,nick ,time)
|
|
|
|
(cdr (erc-response.command-args parsed))))
|
2012-05-13 18:51:14 +00:00
|
|
|
(setq time (format-time-string erc-server-timestamp-format
|
Avoid some double-rounding of Lisp timestamps
Also, simplify some time-related Lisp timestamp code
while we’re in the neighborhood.
* lisp/battery.el (battery-linux-proc-acpi)
(battery-linux-sysfs, battery-upower, battery-bsd-apm):
* lisp/calendar/timeclock.el (timeclock-seconds-to-string)
(timeclock-log, timeclock-last-period)
(timeclock-entry-length, timeclock-entry-list-span)
(timeclock-find-discrep, timeclock-generate-report):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/completion.el (cmpl-hours-since-origin):
* lisp/ecomplete.el (ecomplete-decay-1):
* lisp/emacs-lisp/ert.el (ert--results-update-stats-display)
(ert--results-update-stats-display-maybe):
* lisp/emacs-lisp/timer-list.el (list-timers):
* lisp/emacs-lisp/timer.el (timer-until)
(timer-event-handler):
* lisp/erc/erc-backend.el (erc-server-send-ping)
(erc-server-send-queue, erc-handle-parsed-server-response)
(erc-handle-unknown-server-response):
* lisp/erc/erc-track.el (erc-buffer-visible):
* lisp/erc/erc.el (erc-lurker-cleanup, erc-lurker-p)
(erc-cmd-PING, erc-send-current-line):
* lisp/eshell/em-pred.el (eshell-pred-file-time):
* lisp/eshell/em-unix.el (eshell-show-elapsed-time):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event:org-timestamp):
* lisp/gnus/gnus-int.el (gnus-backend-trace):
* lisp/gnus/gnus-sum.el (gnus-user-date):
* lisp/gnus/mail-source.el (mail-source-delete-crash-box):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/ibuf-ext.el (ibuffer-mark-old-buffers):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/mouse.el (mouse--down-1-maybe-follows-link)
(mouse--click-1-maybe-follows-link):
* lisp/mpc.el (mpc--faster-toggle):
* lisp/net/rcirc.el (rcirc-handler-ctcp-KEEPALIVE)
(rcirc-sentinel):
* lisp/net/tramp-cache.el (tramp-get-file-property):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-newer-than-file-p)
(tramp-maybe-open-connection):
* lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection):
* lisp/org/org-clock.el (org-clock-resolve):
(org-resolve-clocks, org-clock-in, org-clock-out, org-clock-sum):
* lisp/org/org-timer.el (org-timer-start)
(org-timer-pause-or-continue, org-timer-seconds):
* lisp/org/org.el (org-evaluate-time-range):
* lisp/org/ox-publish.el (org-publish-cache-ctime-of-src):
* lisp/pixel-scroll.el (pixel-scroll-in-rush-p):
* lisp/play/hanoi.el (hanoi-move-ring):
* lisp/proced.el (proced-format-time):
* lisp/progmodes/cpp.el (cpp-progress-message):
* lisp/progmodes/flymake.el (flymake--handle-report):
* lisp/progmodes/js.el (js--wait-for-matching-output):
* lisp/subr.el (progress-reporter-do-update):
* lisp/term/xterm.el (xterm--read-event-for-query):
* lisp/time.el (display-time-update, emacs-uptime):
* lisp/tooltip.el (tooltip-delay):
* lisp/url/url-cookie.el (url-cookie-parse-file-netscape):
* lisp/url/url-queue.el (url-queue-prune-old-entries):
* lisp/url/url.el (url-retrieve-synchronously):
* lisp/xt-mouse.el (xterm-mouse-event):
Avoid double-rounding of time-related values. Simplify.
* lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
When hoping for the best (unlikely), use a better decoded time.
(icalendar--convert-sexp-to-ical): Avoid unnecessary encode-time.
* lisp/calendar/timeclock.el (timeclock-when-to-leave):
* lisp/cedet/ede/detect.el (ede-detect-qtest):
* lisp/desktop.el (desktop-create-buffer):
* lisp/emacs-lisp/benchmark.el (benchmark-elapse):
* lisp/gnus/gnus-art.el (article-lapsed-string):
* lisp/gnus/gnus-group.el (gnus-group-timestamp-delta):
* lisp/gnus/nnmail.el (nnmail-expired-article-p):
* lisp/gnus/nnmaildir.el (nnmaildir-request-expire-articles):
* lisp/nxml/rng-maint.el (rng-time-function):
* lisp/org/org-clock.el (org-clock-get-clocked-time)
(org-clock-resolve, org-resolve-clocks, org-resolve-clocks-if-idle):
* lisp/org/org-habit.el (org-habit-insert-consistency-graphs):
* lisp/progmodes/vhdl-mode.el (vhdl-update-progress-info)
(vhdl-fix-case-region-1):
Use time-since instead of open-coding most of it.
* lisp/erc/erc-dcc.el (erc-dcc-get-sentinel):
* lisp/erc/erc.el (erc-string-to-emacs-time, erc-time-gt):
Now obsolete. All uses changed.
(erc-time-diff): Accept all Lisp time values.
All uses changed.
* lisp/gnus/gnus-demon.el (gnus-demon-idle-since):
* lisp/gnus/gnus-score.el (gnus-score-headers):
* lisp/gnus/nneething.el (nneething-make-head):
* lisp/gnus/nnheader.el (nnheader-message-maybe):
* lisp/gnus/nnimap.el (nnimap-keepalive):
* lisp/image.el (image-animate-timeout):
* lisp/mail/feedmail.el (feedmail-rfc822-date):
* lisp/net/imap.el (imap-wait-for-tag):
* lisp/net/newst-backend.el (newsticker--image-get):
* lisp/net/rcirc.el (rcirc-handler-317, rcirc-handler-333):
* lisp/obsolete/xesam.el (xesam-refresh-entry):
* lisp/org/org-agenda.el (org-agenda-show-clocking-issues)
(org-agenda-check-clock-gap, org-agenda-to-appt):
* lisp/org/org-capture.el (org-capture-set-target-location):
* lisp/org/org-clock.el (org-clock-resolve-clock)
(org-clocktable-steps):
* lisp/org/org-colview.el (org-columns-edit-value)
(org-columns, org-agenda-columns):
* lisp/org/org-duration.el (org-duration-from-minutes):
* lisp/org/org-element.el (org-element-cache-sync-duration)
(org-element-cache-sync-break)
(org-element--cache-interrupt-p, org-element--cache-sync):
* lisp/org/org-habit.el (org-habit-get-faces)
* lisp/org/org-indent.el (org-indent-add-properties):
* lisp/org/org-table.el (org-table-sum):
* lisp/org/org-timer.el (org-timer-show-remaining-time)
(org-timer-set-timer):
* lisp/org/org.el (org-babel-load-file, org-today)
(org-auto-repeat-maybe, org-2ft, org-time-stamp)
(org-read-date-analyze, org-time-stamp-to-now)
(org-small-year-to-year, org-goto-calendar):
* lisp/org/ox.el (org-export-insert-default-template):
* lisp/ses.el (ses--time-check):
* lisp/type-break.el (type-break-time-warning)
(type-break-statistics, type-break-demo-boring):
* lisp/url/url-cache.el (url-cache-expired)
(url-cache-prune-cache):
* lisp/vc/vc-git.el (vc-git-stash-snapshot):
* lisp/erc/erc-match.el (erc-log-matches-come-back):
Simplify.
2019-02-23 02:32:31 +00:00
|
|
|
(string-to-number time)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-update-channel-topic channel
|
|
|
|
(format "\C-o (%s, %s)" nick time)
|
|
|
|
'append)
|
|
|
|
(erc-display-message parsed 'notice (erc-get-buffer channel proc)
|
|
|
|
's333 ?c channel ?n nick ?t time)))
|
|
|
|
|
|
|
|
(define-erc-response-handler (341)
|
|
|
|
"Let user know when an INVITE attempt has been sent successfully."
|
|
|
|
nil
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(pcase-let ((`(,nick ,channel)
|
|
|
|
(cdr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message parsed 'notice (erc-get-buffer channel proc)
|
|
|
|
's341 ?n nick ?c channel)))
|
|
|
|
|
|
|
|
(define-erc-response-handler (352)
|
|
|
|
"WHO notice." nil
|
2016-04-02 19:38:54 +00:00
|
|
|
(pcase-let ((`(,channel ,user ,host ,_server ,nick ,away-flag)
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(cdr (erc-response.command-args parsed))))
|
2016-04-02 19:38:54 +00:00
|
|
|
(let ((full-name (erc-response.contents parsed)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(when (string-match "\\(^[0-9]+ \\)\\(.*\\)$" full-name)
|
|
|
|
(setq full-name (match-string 2 full-name)))
|
2014-11-09 01:51:43 +00:00
|
|
|
(erc-update-channel-member channel nick nick nil nil nil nil nil nil host user full-name)
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message parsed 'notice 'active 's352
|
|
|
|
?c channel ?n nick ?a away-flag
|
|
|
|
?u user ?h host ?f full-name))))
|
|
|
|
|
|
|
|
(define-erc-response-handler (353)
|
|
|
|
"NAMES notice." nil
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(let ((channel (nth 2 (erc-response.command-args parsed)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(users (erc-response.contents parsed)))
|
|
|
|
(erc-display-message parsed 'notice (or (erc-get-buffer channel proc)
|
|
|
|
'active)
|
2006-11-20 06:50:29 +00:00
|
|
|
's353 ?c channel ?u users)
|
|
|
|
(erc-with-buffer (channel proc)
|
|
|
|
(erc-channel-receive-names users))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (366)
|
|
|
|
"End of NAMES." nil
|
2012-11-23 16:00:57 +00:00
|
|
|
(erc-with-buffer ((cadr (erc-response.command-args parsed)) proc)
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-channel-end-receiving-names)))
|
|
|
|
|
|
|
|
(define-erc-response-handler (367)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Channel ban list entries." nil
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(pcase-let ((`(,channel ,banmask ,setter ,time)
|
|
|
|
(cdr (erc-response.command-args parsed))))
|
2006-11-20 06:50:29 +00:00
|
|
|
;; setter and time are not standard
|
|
|
|
(if setter
|
|
|
|
(erc-display-message parsed 'notice 'active 's367-set-by
|
|
|
|
?c channel
|
|
|
|
?b banmask
|
|
|
|
?s setter
|
|
|
|
?t (or time ""))
|
|
|
|
(erc-display-message parsed 'notice 'active 's367
|
|
|
|
?c channel
|
|
|
|
?b banmask))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (368)
|
2008-01-10 03:51:14 +00:00
|
|
|
"End of channel ban list." nil
|
2012-11-23 16:00:57 +00:00
|
|
|
(let ((channel (cadr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message parsed 'notice 'active 's368
|
|
|
|
?c channel)))
|
|
|
|
|
|
|
|
(define-erc-response-handler (379)
|
|
|
|
"Forwarding to another channel." nil
|
|
|
|
;; FIXME: Yet more magic numbers in original code, I'm guessing this
|
|
|
|
;; command takes two arguments, and doesn't have any "contents". --
|
|
|
|
;; Lawrence 2004/05/10
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
(pcase-let ((`(,from ,to)
|
|
|
|
(cdr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message parsed 'notice 'active
|
|
|
|
's379 ?c from ?f to)))
|
|
|
|
|
|
|
|
(define-erc-response-handler (391)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Server's time string." nil
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message
|
|
|
|
parsed 'notice 'active
|
2012-11-23 16:00:57 +00:00
|
|
|
's391 ?s (cadr (erc-response.command-args parsed))
|
Use cl-lib instead of cl, and interactive-p => called-interactively-p.
* lisp/erc/erc-track.el, lisp/erc/erc-networks.el, lisp/erc/erc-netsplit.el:
* lisp/erc/erc-dcc.el, lisp/erc/erc-backend.el: Use cl-lib, nth, pcase, and
called-interactively-p instead of cl.
* lisp/erc/erc-speedbar.el, lisp/erc/erc-services.el:
* lisp/erc/erc-pcomplete.el, lisp/erc/erc-notify.el, lisp/erc/erc-match.el:
* lisp/erc/erc-log.el, lisp/erc/erc-join.el, lisp/erc/erc-ezbounce.el:
* lisp/erc/erc-capab.el: Don't require cl since we don't use it.
* lisp/erc/erc.el: Use cl-lib, nth, pcase, and called-interactively-p i.s.o cl.
(erc-lurker-ignore-chars, erc-common-server-suffixes): Move before first use.
* lisp/json.el: Don't require cl since we don't use it.
* lisp/color.el: Don't require cl.
(color-complement): `caddr' -> `nth 2'.
* test/automated/ert-x-tests.el: Use cl-lib.
* test/automated/ert-tests.el: Use lexical-binding and cl-lib.
2012-11-19 17:24:12 +00:00
|
|
|
?t (nth 2 (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (401)
|
|
|
|
"No such nick/channel." nil
|
2012-11-23 16:00:57 +00:00
|
|
|
(let ((nick/channel (cadr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(when erc-whowas-on-nosuchnick
|
|
|
|
(erc-log (format "cmd: WHOWAS: %s" nick/channel))
|
|
|
|
(erc-server-send (format "WHOWAS %s 1" nick/channel)))
|
|
|
|
(erc-display-message parsed '(notice error) 'active
|
|
|
|
's401 ?n nick/channel)))
|
|
|
|
|
|
|
|
(define-erc-response-handler (403)
|
|
|
|
"No such channel." nil
|
|
|
|
(erc-display-message parsed '(notice error) 'active
|
2012-11-23 16:00:57 +00:00
|
|
|
's403 ?c (cadr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (404)
|
|
|
|
"Cannot send to channel." nil
|
|
|
|
(erc-display-message parsed '(notice error) 'active
|
2012-11-23 16:00:57 +00:00
|
|
|
's404 ?c (cadr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
|
|
|
|
(define-erc-response-handler (405)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Can't join that many channels." nil
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message parsed '(notice error) 'active
|
2012-11-23 16:00:57 +00:00
|
|
|
's405 ?c (cadr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (406)
|
2008-01-10 03:51:14 +00:00
|
|
|
"No such nick." nil
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message parsed '(notice error) 'active
|
2012-11-23 16:00:57 +00:00
|
|
|
's406 ?n (cadr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (412)
|
2008-01-10 03:51:14 +00:00
|
|
|
"No text to send." nil
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message parsed '(notice error) 'active 's412))
|
|
|
|
|
|
|
|
(define-erc-response-handler (421)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Unknown command." nil
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message parsed '(notice error) 'active 's421
|
2012-11-23 16:00:57 +00:00
|
|
|
?c (cadr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (432)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Bad nick." nil
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message parsed '(notice error) 'active 's432
|
2012-11-23 16:00:57 +00:00
|
|
|
?n (cadr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (433)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Login-time \"nick in use\"." nil
|
2012-11-23 16:00:57 +00:00
|
|
|
(erc-nickname-in-use (cadr (erc-response.command-args parsed))
|
2006-01-29 13:08:58 +00:00
|
|
|
"already in use"))
|
|
|
|
|
|
|
|
(define-erc-response-handler (437)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Nick temporarily unavailable (on IRCnet)." nil
|
2012-11-23 16:00:57 +00:00
|
|
|
(let ((nick/channel (cadr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(unless (erc-channel-p nick/channel)
|
|
|
|
(erc-nickname-in-use nick/channel "temporarily unavailable"))))
|
|
|
|
|
|
|
|
(define-erc-response-handler (442)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Not on channel." nil
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message parsed '(notice error) 'active 's442
|
2012-11-23 16:00:57 +00:00
|
|
|
?c (cadr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (461)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Not enough parameters for command." nil
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message parsed '(notice error) 'active 's461
|
2012-11-23 16:00:57 +00:00
|
|
|
?c (cadr (erc-response.command-args parsed))
|
2006-01-29 13:08:58 +00:00
|
|
|
?m (erc-response.contents parsed)))
|
|
|
|
|
2007-01-05 02:09:07 +00:00
|
|
|
(define-erc-response-handler (465)
|
|
|
|
"You are banned from this server." nil
|
|
|
|
(setq erc-server-banned t)
|
|
|
|
;; show the server's message, as a reason might be provided
|
|
|
|
(erc-display-error-notice
|
|
|
|
parsed
|
|
|
|
(erc-response.contents parsed)))
|
|
|
|
|
2006-01-29 13:08:58 +00:00
|
|
|
(define-erc-response-handler (474)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Banned from channel errors." nil
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-message parsed '(notice error) nil
|
|
|
|
(intern (format "s%s"
|
|
|
|
(erc-response.command parsed)))
|
2012-11-23 16:00:57 +00:00
|
|
|
?c (cadr (erc-response.command-args parsed))))
|
2006-01-29 13:08:58 +00:00
|
|
|
|
|
|
|
(define-erc-response-handler (475)
|
|
|
|
"Channel key needed." nil
|
|
|
|
(erc-display-message parsed '(notice error) nil 's475
|
2012-11-23 16:00:57 +00:00
|
|
|
?c (cadr (erc-response.command-args parsed)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(when erc-prompt-for-channel-key
|
2012-11-23 16:00:57 +00:00
|
|
|
(let ((channel (cadr (erc-response.command-args parsed)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(key (read-from-minibuffer
|
|
|
|
(format "Channel %s is mode +k. Enter key (RET to cancel): "
|
2012-11-23 16:00:57 +00:00
|
|
|
(cadr (erc-response.command-args parsed))))))
|
2006-01-29 13:08:58 +00:00
|
|
|
(when (and key (> (length key) 0))
|
|
|
|
(erc-cmd-JOIN channel key)))))
|
|
|
|
|
|
|
|
(define-erc-response-handler (477)
|
2008-01-10 03:51:14 +00:00
|
|
|
"Channel doesn't support modes." nil
|
2012-11-23 16:00:57 +00:00
|
|
|
(let ((channel (cadr (erc-response.command-args parsed)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(message (erc-response.contents parsed)))
|
|
|
|
(erc-display-message parsed 'notice (erc-get-buffer channel proc)
|
|
|
|
(format "%s: %s" channel message))))
|
|
|
|
|
|
|
|
(define-erc-response-handler (482)
|
2008-01-10 03:51:14 +00:00
|
|
|
"You need to be a channel operator to do that." nil
|
2012-11-23 16:00:57 +00:00
|
|
|
(let ((channel (cadr (erc-response.command-args parsed)))
|
2006-01-29 13:08:58 +00:00
|
|
|
(message (erc-response.contents parsed)))
|
2016-09-24 06:11:44 +00:00
|
|
|
(erc-display-message parsed '(notice error) 'active 's482
|
2006-01-29 13:08:58 +00:00
|
|
|
?c channel ?m message)))
|
|
|
|
|
2011-05-03 08:37:51 +00:00
|
|
|
(define-erc-response-handler (671)
|
|
|
|
"Secure connection response in WHOIS." nil
|
2012-11-23 16:00:57 +00:00
|
|
|
(let ((nick (cadr (erc-response.command-args parsed)))
|
2011-05-03 08:37:51 +00:00
|
|
|
(securemsg (erc-response.contents parsed)))
|
|
|
|
(erc-display-message parsed 'notice 'active 's671
|
|
|
|
?n nick ?a securemsg)))
|
|
|
|
|
2007-01-05 02:09:07 +00:00
|
|
|
(define-erc-response-handler (431 445 446 451 462 463 464 481 483 484 485
|
2006-01-29 13:08:58 +00:00
|
|
|
491 501 502)
|
|
|
|
;; 431 - No nickname given
|
|
|
|
;; 445 - SUMMON has been disabled
|
|
|
|
;; 446 - USERS has been disabled
|
|
|
|
;; 451 - You have not registered
|
|
|
|
;; 462 - Unauthorized command (already registered)
|
|
|
|
;; 463 - Your host isn't among the privileged
|
|
|
|
;; 464 - Password incorrect
|
|
|
|
;; 481 - Need IRCop privileges
|
|
|
|
;; 483 - You can't kill a server!
|
|
|
|
;; 484 - Your connection is restricted!
|
|
|
|
;; 485 - You're not the original channel operator
|
|
|
|
;; 491 - No O-lines for your host
|
|
|
|
;; 501 - Unknown MODE flag
|
|
|
|
;; 502 - Cannot change mode for other users
|
2008-01-10 03:51:14 +00:00
|
|
|
"Generic display of server error messages.
|
|
|
|
|
|
|
|
See `erc-display-error-notice'." nil
|
2006-01-29 13:08:58 +00:00
|
|
|
(erc-display-error-notice
|
|
|
|
parsed
|
|
|
|
(intern (format "s%s" (erc-response.command parsed)))))
|
|
|
|
|
|
|
|
;; FIXME: These are yet to be implemented, they're just stubs for now
|
|
|
|
;; -- Lawrence 2004/05/12
|
|
|
|
|
|
|
|
;; response numbers left here for reference
|
|
|
|
|
|
|
|
;; (define-erc-response-handler (323 364 365 381 382 392 393 394 395
|
|
|
|
;; 200 201 202 203 204 205 206 208 209 211 212 213
|
|
|
|
;; 214 215 216 217 218 219 241 242 243 244 249 261
|
|
|
|
;; 262 302 342 351 402 407 409 411 413 414 415
|
|
|
|
;; 423 424 436 441 443 444 467 471 472 473 KILL)
|
|
|
|
;; nil nil
|
|
|
|
;; (ignore proc parsed))
|
|
|
|
|
|
|
|
(provide 'erc-backend)
|
|
|
|
|
|
|
|
;;; erc-backend.el ends here
|