diff options
author | Stefan Kangas <stefankangas@gmail.com> | 2020-08-12 19:32:52 +0200 |
---|---|---|
committer | Amin Bandali <bandali@gnu.org> | 2020-08-13 19:31:54 -0400 |
commit | 32cb84974faac7cecdd82e154f7cae9ac0ee8320 (patch) | |
tree | ca64ae597f9d0f3d0d70baaede2463c637f603bf /lisp/erc | |
parent | 48c7caf3aca85f9878ae05bff9a0dca43b8f540b (diff) | |
download | emacs-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.el | 3 | ||||
-rw-r--r-- | lisp/erc/erc-compat.el | 163 | ||||
-rw-r--r-- | lisp/erc/erc-dcc.el | 8 | ||||
-rw-r--r-- | lisp/erc/erc-fill.el | 2 | ||||
-rw-r--r-- | lisp/erc/erc-goodies.el | 3 | ||||
-rw-r--r-- | lisp/erc/erc-log.el | 2 | ||||
-rw-r--r-- | lisp/erc/erc-notify.el | 2 | ||||
-rw-r--r-- | lisp/erc/erc-pcomplete.el | 1 | ||||
-rw-r--r-- | lisp/erc/erc-stamp.el | 1 | ||||
-rw-r--r-- | lisp/erc/erc-track.el | 1 | ||||
-rw-r--r-- | lisp/erc/erc.el | 24 |
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)) |