summaryrefslogtreecommitdiff
path: root/lisp/erc
diff options
context:
space:
mode:
authorStefan Kangas <stefankangas@gmail.com>2020-08-12 19:32:52 +0200
committerAmin Bandali <bandali@gnu.org>2020-08-13 19:31:54 -0400
commit32cb84974faac7cecdd82e154f7cae9ac0ee8320 (patch)
treeca64ae597f9d0f3d0d70baaede2463c637f603bf /lisp/erc
parent48c7caf3aca85f9878ae05bff9a0dca43b8f540b (diff)
downloademacs-32cb84974faac7cecdd82e154f7cae9ac0ee8320.tar.gz
Make erc-compat.el obsolete
* lisp/erc/erc-compat.el: Move from here... * lisp/obsolete/erc-compat.el: ...to here. * lisp/erc/erc-backend.el: * lisp/erc/erc-pcomplete.el: * lisp/erc/erc-stamp.el: * lisp/erc/erc-track.el: * lisp/erc/erc.el: Don't require 'erc-compat'. * lisp/erc/erc-backend.el (erc-decode-string-from-target): * lisp/erc/erc-dcc.el (pcomplete/erc-mode/DCC): * lisp/erc/erc-fill.el (erc-fill-mode): * lisp/erc/erc-goodies.el (erc-controls-interpret): * lisp/erc/erc-log.el (erc-log-setup-logging): * lisp/erc/erc-notify.el (erc-notify-QUIT): * lisp/erc/erc.el (erc-startup-file-list, define-erc-module) (erc-canonicalize-server-name, erc-cmd-SV, erc-banlist-update) (erc-group-list, erc-seconds-to-string): Adjust callers. * lisp/erc/erc.el: Require cl-lib and format-spec. * etc/NEWS: Add entry announcing erc-compat.el being marked as obsolete.
Diffstat (limited to 'lisp/erc')
-rw-r--r--lisp/erc/erc-backend.el3
-rw-r--r--lisp/erc/erc-compat.el163
-rw-r--r--lisp/erc/erc-dcc.el8
-rw-r--r--lisp/erc/erc-fill.el2
-rw-r--r--lisp/erc/erc-goodies.el3
-rw-r--r--lisp/erc/erc-log.el2
-rw-r--r--lisp/erc/erc-notify.el2
-rw-r--r--lisp/erc/erc-pcomplete.el1
-rw-r--r--lisp/erc/erc-stamp.el1
-rw-r--r--lisp/erc/erc-track.el1
-rw-r--r--lisp/erc/erc.el24
11 files changed, 21 insertions, 189 deletions
diff --git a/lisp/erc/erc-backend.el b/lisp/erc/erc-backend.el
index 4f3d85ba3c8..1cf0bb49217 100644
--- a/lisp/erc/erc-backend.el
+++ b/lisp/erc/erc-backend.el
@@ -98,7 +98,6 @@
;;; Code:
-(require 'erc-compat)
(eval-when-compile (require 'cl-lib))
;; 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
@@ -782,7 +781,7 @@ value of `erc-server-coding-system'."
(pop precedence))
(when precedence
(setq coding (car precedence)))))
- (erc-decode-coding-string str coding)))
+ (decode-coding-string str coding t)))
;; proposed name, not used by anything yet
(defun erc-send-line (text display-fn)
diff --git a/lisp/erc/erc-compat.el b/lisp/erc/erc-compat.el
deleted file mode 100644
index d71221b2674..00000000000
--- a/lisp/erc/erc-compat.el
+++ /dev/null
@@ -1,163 +0,0 @@
-;;; erc-compat.el --- ERC compatibility code for XEmacs
-
-;; Copyright (C) 2002-2003, 2005-2020 Free Software Foundation, Inc.
-
-;; Author: Alex Schroeder <alex@gnu.org>
-;; Maintainer: Amin Bandali <bandali@gnu.org>
-;; URL: https://www.emacswiki.org/emacs/ERC
-
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software: you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; 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
-;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
-
-;;; Commentary:
-
-;; This mostly defines stuff that cannot be worked around easily.
-
-;;; Code:
-
-(require 'format-spec)
-
-;;;###autoload(autoload 'erc-define-minor-mode "erc-compat")
-(defalias 'erc-define-minor-mode 'define-minor-mode)
-(put 'erc-define-minor-mode 'edebug-form-spec 'define-minor-mode)
-
-(defun erc-decode-coding-string (s coding-system)
- "Decode S using CODING-SYSTEM."
- (decode-coding-string s coding-system t))
-
-(defun erc-encode-coding-string (s coding-system)
- "Encode S using CODING-SYSTEM.
-Return the same string, if the encoding operation is trivial.
-See `erc-encoding-coding-alist'."
- (encode-coding-string s coding-system t))
-
-(define-obsolete-function-alias 'erc-propertize #'propertize "28.1")
-(define-obsolete-function-alias 'erc-view-mode-enter #'view-mode-enter "28.1")
-(autoload 'help-function-arglist "help-fns")
-(define-obsolete-function-alias 'erc-function-arglist #'help-function-arglist "28.1")
-(define-obsolete-function-alias 'erc-delete-dups #'delete-dups "28.1")
-(define-obsolete-function-alias 'erc-replace-regexp-in-string #'replace-regexp-in-string "28.1")
-
-(defun erc-set-write-file-functions (new-val)
- (set (make-local-variable 'write-file-functions) new-val))
-
-(defvar erc-emacs-build-time
- (if (or (stringp emacs-build-time) (not emacs-build-time))
- emacs-build-time
- (format-time-string "%Y-%m-%d" emacs-build-time))
- "Time at which Emacs was dumped out, or nil if not available.")
-
-;; Emacs 21 and XEmacs do not have user-emacs-directory, but XEmacs
-;; has user-init-directory.
-(defvar erc-user-emacs-directory
- (cond ((boundp 'user-emacs-directory)
- user-emacs-directory)
- ((boundp 'user-init-directory)
- user-init-directory)
- (t "~/.emacs.d/"))
- "Directory beneath which additional per-user Emacs-specific files
-are placed.
-Note that this should end with a directory separator.")
-
-(defun erc-replace-match-subexpression-in-string
- (newtext string match subexp start &optional fixedcase literal)
- "Replace the subexpression SUBEXP of the last match in STRING with NEWTEXT.
-MATCH is the text which matched the subexpression (see `match-string').
-START is the beginning position of the last match (see `match-beginning').
-See `replace-match' for explanations of FIXEDCASE and LITERAL."
- (replace-match newtext fixedcase literal string subexp))
-
-(define-obsolete-function-alias 'erc-with-selected-window
- #'with-selected-window "28.1")
-(define-obsolete-function-alias 'erc-cancel-timer #'cancel-timer "28.1")
-(define-obsolete-function-alias 'erc-make-obsolete #'make-obsolete "28.1")
-(define-obsolete-function-alias 'erc-make-obsolete-variable
- #'make-obsolete-variable "28.1")
-
-;; Provide a simpler replacement for `member-if'
-(defun erc-member-if (predicate list)
- "Find the first item satisfying PREDICATE in LIST.
-Return the sublist of LIST whose car matches."
- (let ((ptr list))
- (catch 'found
- (while ptr
- (when (funcall predicate (car ptr))
- (throw 'found ptr))
- (setq ptr (cdr ptr))))))
-
-;; Provide a simpler replacement for `delete-if'
-(defun erc-delete-if (predicate seq)
- "Remove all items satisfying PREDICATE in SEQ.
-This is a destructive function: it reuses the storage of SEQ
-whenever possible."
- ;; remove from car
- (while (when (funcall predicate (car seq))
- (setq seq (cdr seq))))
- ;; remove from cdr
- (let ((ptr seq)
- (next (cdr seq)))
- (while next
- (when (funcall predicate (car next))
- (setcdr ptr (if (consp next)
- (cdr next)
- nil)))
- (setq ptr (cdr ptr))
- (setq next (cdr ptr))))
- seq)
-
-;; Provide a simpler replacement for `remove-if-not'
-(defun erc-remove-if-not (predicate seq)
- "Remove all items not satisfying PREDICATE in SEQ.
-This is a non-destructive function; it makes a copy of SEQ to
-avoid corrupting the original SEQ."
- (let (newseq)
- (dolist (el seq)
- (when (funcall predicate el)
- (setq newseq (cons el newseq))))
- (nreverse newseq)))
-
-;; Copied from cl-extra.el
-(defun erc-subseq (seq start &optional end)
- "Return the subsequence of SEQ from START to END.
-If END is omitted, it defaults to the length of the sequence.
-If START or END is negative, it counts from the end."
- (if (stringp seq) (substring seq start end)
- (let (len)
- (and end (< end 0) (setq end (+ end (setq len (length seq)))))
- (if (< start 0) (setq start (+ start (or len (setq len (length seq))))))
- (cond ((listp seq)
- (if (> start 0) (setq seq (nthcdr start seq)))
- (if end
- (let ((res nil))
- (while (>= (setq end (1- end)) start)
- (push (pop seq) res))
- (nreverse res))
- (copy-sequence seq)))
- (t
- (or end (setq end (or len (length seq))))
- (let ((res (make-vector (max (- end start) 0) nil))
- (i 0))
- (while (< start end)
- (aset res i (aref seq start))
- (setq i (1+ i) start (1+ start)))
- res))))))
-
-(provide 'erc-compat)
-
-;;; erc-compat.el ends here
-;;
-;; Local Variables:
-;; generated-autoload-file: "erc-loaddefs.el"
-;; End:
diff --git a/lisp/erc/erc-dcc.el b/lisp/erc/erc-dcc.el
index bf98eb818f3..477f148197b 100644
--- a/lisp/erc/erc-dcc.el
+++ b/lisp/erc/erc-dcc.el
@@ -419,7 +419,7 @@ where FOO is one of CLOSE, GET, SEND, LIST, CHAT, etc."
(pcomplete-here
(pcase (intern (downcase (pcomplete-arg 1)))
('chat (mapcar (lambda (elt) (plist-get elt :nick))
- (erc-remove-if-not
+ (cl-remove-if-not
#'(lambda (elt)
(eq (plist-get elt :type) 'CHAT))
erc-dcc-list)))
@@ -427,7 +427,7 @@ where FOO is one of CLOSE, GET, SEND, LIST, CHAT, etc."
(mapcar (lambda (elt) (symbol-name (plist-get elt :type)))
erc-dcc-list)))
('get (mapcar #'erc-dcc-nick
- (erc-remove-if-not
+ (cl-remove-if-not
#'(lambda (elt)
(eq (plist-get elt :type) 'GET))
erc-dcc-list)))
@@ -435,7 +435,7 @@ where FOO is one of CLOSE, GET, SEND, LIST, CHAT, etc."
(pcomplete-here
(pcase (intern (downcase (pcomplete-arg 2)))
('get (mapcar (lambda (elt) (plist-get elt :file))
- (erc-remove-if-not
+ (cl-remove-if-not
#'(lambda (elt)
(and (eq (plist-get elt :type) 'GET)
(erc-nick-equal-p (erc-extract-nick
@@ -443,7 +443,7 @@ where FOO is one of CLOSE, GET, SEND, LIST, CHAT, etc."
(pcomplete-arg 1))))
erc-dcc-list)))
('close (mapcar #'erc-dcc-nick
- (erc-remove-if-not
+ (cl-remove-if-not
#'(lambda (elt)
(eq (plist-get elt :type)
(intern (upcase (pcomplete-arg 1)))))
diff --git a/lisp/erc/erc-fill.el b/lisp/erc/erc-fill.el
index 39a8be5e0cf..d09caf7aa12 100644
--- a/lisp/erc/erc-fill.el
+++ b/lisp/erc/erc-fill.el
@@ -38,7 +38,7 @@
:group 'erc)
;;;###autoload(autoload 'erc-fill-mode "erc-fill" nil t)
-(erc-define-minor-mode erc-fill-mode
+(define-minor-mode erc-fill-mode
"Toggle ERC fill mode.
With a prefix argument ARG, enable ERC fill mode if ARG is
positive, and disable it otherwise. If called from Lisp, enable
diff --git a/lisp/erc/erc-goodies.el b/lisp/erc/erc-goodies.el
index ff7a77f1265..a475f0a1770 100644
--- a/lisp/erc/erc-goodies.el
+++ b/lisp/erc/erc-goodies.el
@@ -399,8 +399,7 @@ See `erc-interpret-controls-p' and `erc-interpret-mirc-color' for options."
(start (match-beginning 0))
(end (+ (match-beginning 0)
(length (match-string 5 s)))))
- (setq s (erc-replace-match-subexpression-in-string
- "" s control 1 start))
+ (setq s (replace-match "" nil nil s 1))
(cond ((and erc-interpret-mirc-color (or fg-color bg-color))
(setq fg fg-color)
(setq bg bg-color))
diff --git a/lisp/erc/erc-log.el b/lisp/erc/erc-log.el
index e2c066da9b1..2166123e674 100644
--- a/lisp/erc/erc-log.el
+++ b/lisp/erc/erc-log.el
@@ -267,7 +267,7 @@ The current buffer is given by BUFFER."
(with-current-buffer buffer
(auto-save-mode -1)
(setq buffer-file-name nil)
- (erc-set-write-file-functions '(erc-save-buffer-in-logs))
+ (set (make-local-variable 'write-file-functions) '(erc-save-buffer-in-logs))
(when erc-log-insert-log-on-open
(ignore-errors
(save-excursion
diff --git a/lisp/erc/erc-notify.el b/lisp/erc/erc-notify.el
index 1b092c8a6a9..144a981f832 100644
--- a/lisp/erc/erc-notify.el
+++ b/lisp/erc/erc-notify.el
@@ -181,7 +181,7 @@ nick from `erc-last-ison' to prevent any further notifications."
(let ((nick (erc-extract-nick (erc-response.sender parsed))))
(when (and (erc-member-ignore-case nick erc-notify-list)
(erc-member-ignore-case nick erc-last-ison))
- (setq erc-last-ison (erc-delete-if
+ (setq erc-last-ison (cl-delete-if
(let ((nick-down (erc-downcase nick)))
(lambda (el)
(string= nick-down (erc-downcase el))))
diff --git a/lisp/erc/erc-pcomplete.el b/lisp/erc/erc-pcomplete.el
index 7643fa85b96..f8b7e13be02 100644
--- a/lisp/erc/erc-pcomplete.el
+++ b/lisp/erc/erc-pcomplete.el
@@ -41,7 +41,6 @@
(require 'pcomplete)
(require 'erc)
-(require 'erc-compat)
(require 'time-date)
(defgroup erc-pcomplete nil
diff --git a/lisp/erc/erc-stamp.el b/lisp/erc/erc-stamp.el
index cbab2f9da2b..08970f2d70e 100644
--- a/lisp/erc/erc-stamp.el
+++ b/lisp/erc/erc-stamp.el
@@ -35,7 +35,6 @@
;;; Code:
(require 'erc)
-(require 'erc-compat)
(defgroup erc-stamp nil
"For long conversation on IRC it is sometimes quite
diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el
index 41d8fc1a98f..820b6d9359b 100644
--- a/lisp/erc/erc-track.el
+++ b/lisp/erc/erc-track.el
@@ -36,7 +36,6 @@
(eval-when-compile (require 'cl-lib))
(require 'erc)
-(require 'erc-compat)
(require 'erc-match)
;;; Code:
diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
index 41d7516fbb4..b4800053da2 100644
--- a/lisp/erc/erc.el
+++ b/lisp/erc/erc.el
@@ -57,12 +57,12 @@
(load "erc-loaddefs" nil t)
-(eval-when-compile (require 'cl-lib))
+(require 'cl-lib)
(require 'font-lock)
+(require 'format-spec)
(require 'pp)
(require 'thingatpt)
(require 'auth-source)
-(require 'erc-compat)
(require 'time-date)
(require 'iso8601)
(eval-when-compile (require 'subr-x))
@@ -877,8 +877,8 @@ See `erc-server-flood-margin' for other flood-related parameters.")
;; Script parameters
(defcustom erc-startup-file-list
- (list (concat erc-user-emacs-directory ".ercrc.el")
- (concat erc-user-emacs-directory ".ercrc")
+ (list (concat user-emacs-directory ".ercrc.el")
+ (concat user-emacs-directory ".ercrc")
"~/.ercrc.el" "~/.ercrc" ".ercrc.el" ".ercrc")
"List of files to try for a startup script.
The first existent and readable one will get executed.
@@ -1306,7 +1306,7 @@ Example:
(enable (intern (format "erc-%s-enable" (downcase sn))))
(disable (intern (format "erc-%s-disable" (downcase sn)))))
`(progn
- (erc-define-minor-mode
+ (define-minor-mode
,mode
,(format "Toggle ERC %S mode.
With a prefix argument ARG, enable %s if ARG is positive,
@@ -2688,7 +2688,7 @@ displayed hostnames."
otherwise `erc-server-announced-name'. SERVER is matched against
`erc-common-server-suffixes'."
(when server
- (or (cdar (erc-remove-if-not
+ (or (cdar (cl-remove-if-not
(lambda (net) (string-match (car net) server))
erc-common-server-suffixes))
erc-server-announced-name)))
@@ -3725,8 +3725,9 @@ the message given by REASON."
x-toolkit-scroll-bars)))
"")
(if (featurep 'multi-tty) ", multi-tty" ""))
- (if erc-emacs-build-time
- (concat " of " erc-emacs-build-time)
+ (if emacs-build-time
+ (concat " of " (format-time-string
+ "%Y-%m-%d" emacs-build-time))
"")))
t)
@@ -4573,7 +4574,7 @@ See also: `erc-echo-notice-in-user-buffers',
((string-match "^-" mode)
;; Remove the unbanned masks from the ban list
(setq erc-channel-banlist
- (erc-delete-if
+ (cl-delete-if
#'(lambda (y)
(member (upcase (cdr y))
(mapcar #'upcase
@@ -4594,7 +4595,7 @@ See also: `erc-echo-notice-in-user-buffers',
"Group LIST into sublists of length N."
(cond ((null list) nil)
((null (nthcdr n list)) (list list))
- (t (cons (erc-subseq list 0 n) (erc-group-list (nthcdr n list) n)))))
+ (t (cons (cl-subseq list 0 n) (erc-group-list (nthcdr n list) n)))))
;;; MOTD numreplies
@@ -6183,8 +6184,7 @@ non-nil value is found.
output (apply #'format format-args))
;; Change all "1 units" to "1 unit".
(while (string-match "\\([^0-9]\\|^\\)1 \\S-+\\(s\\)" output)
- (setq output (erc-replace-match-subexpression-in-string
- "" output (match-string 2 output) 2 (match-beginning 2))))
+ (setq output (replace-match "" nil nil output 2)))
output))