mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-16 17:24:23 +00:00
Add compat from GNU ELPA as a soft dependency in ERC
* lisp/erc/erc-backend.el (erc-parse-server-response, erc--parse-isupport-value): Remove sub-28 compat code involving `string-search'. * lisp/erc/erc-compat.el: Require compat package, but don't error when absent. * lisp/erc/erc-dcc.el (erc-dcc-member): Remove `string-search' compat code. (erc-dcc-unquote-filename): Remove `string-replace' compat code. * lisp/erc/erc-speedbar.el (erc-speedbar-expand-server, erc-speedbar-expand-channel, erc-speedbar-expand-user): Remove `string-search' compat code. * lisp/erc/erc.el: Add compat version 28.1.2.0 to Package-Requires header and require `erc-compat' after other libraries. (erc--valid-local-channel-p): Remove `string-search' compat code. (erc-update-mode-line-buffer): Remove `string-replace' compat code. (erc-message-english-PART): Remove `string-replace' compat code.
This commit is contained in:
parent
c238f568cd
commit
f6b6614c32
5 changed files with 31 additions and 68 deletions
|
|
@ -1011,21 +1011,15 @@ PROCs `process-buffer' is `current-buffer' when this function is called."
|
|||
(save-match-data
|
||||
(let* ((tag-list (when (eq (aref string 0) ?@)
|
||||
(substring string 1
|
||||
(if (>= emacs-major-version 28)
|
||||
(string-search " " string)
|
||||
(string-match " " string)))))
|
||||
(string-search " " string))))
|
||||
(msg (make-erc-response :unparsed string :tags (when tag-list
|
||||
(erc-parse-tags
|
||||
tag-list))))
|
||||
(string (if tag-list
|
||||
(substring string (+ 1 (if (>= emacs-major-version 28)
|
||||
(string-search " " string)
|
||||
(string-match " " string))))
|
||||
(substring string (+ 1 (string-search " " string)))
|
||||
string))
|
||||
(posn (if (eq (aref string 0) ?:)
|
||||
(if (>= emacs-major-version 28)
|
||||
(string-search " " string)
|
||||
(string-match " " string))
|
||||
(string-search " " string)
|
||||
0)))
|
||||
|
||||
(setf (erc-response.sender msg)
|
||||
|
|
@ -1035,9 +1029,7 @@ PROCs `process-buffer' is `current-buffer' when this function is called."
|
|||
|
||||
(setf (erc-response.command msg)
|
||||
(let* ((bposn (string-match "[^ \n]" string posn))
|
||||
(eposn (if (>= emacs-major-version 28)
|
||||
(string-search " " string bposn)
|
||||
(string-match " " string bposn))))
|
||||
(eposn (string-search " " string bposn)))
|
||||
(setq posn (and eposn
|
||||
(string-match "[^ \n]" string eposn)))
|
||||
(substring string bposn eposn)))
|
||||
|
|
@ -1045,9 +1037,7 @@ PROCs `process-buffer' is `current-buffer' when this function is called."
|
|||
(while (and posn
|
||||
(not (eq (aref string posn) ?:)))
|
||||
(push (let* ((bposn posn)
|
||||
(eposn (if (>= emacs-major-version 28)
|
||||
(string-search " " string bposn)
|
||||
(string-match " " string bposn))))
|
||||
(eposn (string-search " " string bposn)))
|
||||
(setq posn (and eposn
|
||||
(string-match "[^ \n]" string eposn)))
|
||||
(substring string bposn eposn))
|
||||
|
|
@ -1668,9 +1658,7 @@ Then display the welcome message."
|
|||
start (- (match-end 0) 3))
|
||||
(setq start (match-end 0))))
|
||||
v))
|
||||
(if (if (>= emacs-major-version 28)
|
||||
(string-search "," value)
|
||||
(string-match-p "," value))
|
||||
(if (string-search "," value)
|
||||
(split-string value ",")
|
||||
(list value)))))
|
||||
|
||||
|
|
|
|||
|
|
@ -25,8 +25,14 @@
|
|||
|
||||
;; This mostly defines stuff that cannot be worked around easily.
|
||||
|
||||
;; ERC depends on the `compat' library from GNU ELPA for supporting
|
||||
;; older versions of Emacs. See this discussion for additional info:
|
||||
;; https://lists.gnu.org/archive/html/emacs-devel/2022-07/msg00512.html
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'compat nil 'noerror)
|
||||
|
||||
;;;###autoload(autoload 'erc-define-minor-mode "erc-compat")
|
||||
(define-obsolete-function-alias 'erc-define-minor-mode
|
||||
#'define-minor-mode "28.1")
|
||||
|
|
|
|||
|
|
@ -191,9 +191,7 @@ compared with `erc-nick-equal-p' which is IRC case-insensitive."
|
|||
test (cadr (plist-member elt prop)))
|
||||
;; if the property exists and is equal, we continue, else, try the
|
||||
;; next element of the list
|
||||
(or (and (eq prop :nick) (if (>= emacs-major-version 28)
|
||||
(string-search "!" val)
|
||||
(string-match "!" val))
|
||||
(or (and (eq prop :nick) (string-search "!" val)
|
||||
test (string-equal test val))
|
||||
(and (eq prop :nick)
|
||||
test val
|
||||
|
|
@ -659,13 +657,7 @@ that subcommand."
|
|||
|
||||
(define-inline erc-dcc-unquote-filename (filename)
|
||||
(inline-quote
|
||||
(if (>= emacs-major-version 28)
|
||||
(string-replace
|
||||
"\\\\" "\\"
|
||||
(string-replace "\\\"" "\"" ,filename))
|
||||
(replace-regexp-in-string
|
||||
"\\\\\\\\" "\\"
|
||||
(replace-regexp-in-string "\\\\\"" "\"" ,filename t t) t t))))
|
||||
(string-replace "\\\\" "\\" (string-replace "\\\"" "\"" ,filename))))
|
||||
|
||||
(defun erc-dcc-handle-ctcp-send (proc query nick login host to)
|
||||
"This is called if a CTCP DCC SEND subcommand is sent to the client.
|
||||
|
|
|
|||
|
|
@ -139,9 +139,7 @@ This will add a speedbar major display mode."
|
|||
t))))
|
||||
|
||||
(defun erc-speedbar-expand-server (text server indent)
|
||||
(cond ((if (>= emacs-major-version 28)
|
||||
(string-search "+" text)
|
||||
(string-match "\\+" text))
|
||||
(cond ((string-search "+" text)
|
||||
(speedbar-change-expand-button-char ?-)
|
||||
(if (speedbar-with-writable
|
||||
(save-excursion
|
||||
|
|
@ -150,9 +148,7 @@ This will add a speedbar major display mode."
|
|||
(speedbar-change-expand-button-char ?-)
|
||||
(speedbar-change-expand-button-char ??)))
|
||||
(;; we have to contract this node
|
||||
(if (>= emacs-major-version 28)
|
||||
(string-search "-" text)
|
||||
(string-match "-" text))
|
||||
(string-search "-" text)
|
||||
(speedbar-change-expand-button-char ?+)
|
||||
(speedbar-delete-subblock indent))
|
||||
(t (error "Ooops... not sure what to do")))
|
||||
|
|
@ -189,9 +185,7 @@ This will add a speedbar major display mode."
|
|||
"For the line matching TEXT, in CHANNEL, expand or contract a line.
|
||||
INDENT is the current indentation level."
|
||||
(cond
|
||||
((if (>= emacs-major-version 28)
|
||||
(string-search "+" text)
|
||||
(string-match "\\+" text))
|
||||
((string-search "+" text)
|
||||
(speedbar-change-expand-button-char ?-)
|
||||
(speedbar-with-writable
|
||||
(save-excursion
|
||||
|
|
@ -240,9 +234,7 @@ INDENT is the current indentation level."
|
|||
(speedbar-with-writable
|
||||
(dolist (entry names)
|
||||
(erc-speedbar-insert-user entry ?+ (1+ indent))))))))))
|
||||
((if (>= emacs-major-version 28)
|
||||
(string-search "-" text)
|
||||
(string-match "-" text))
|
||||
((string-search "-" text)
|
||||
(speedbar-change-expand-button-char ?+)
|
||||
(speedbar-delete-subblock indent))
|
||||
(t (error "Ooops... not sure what to do")))
|
||||
|
|
@ -293,9 +285,7 @@ The update is only done when the channel is actually expanded already."
|
|||
(erc-speedbar-expand-channel "+" buffer 1)))))
|
||||
|
||||
(defun erc-speedbar-expand-user (text token indent)
|
||||
(cond ((if (>= emacs-major-version 28)
|
||||
(string-search "+" text)
|
||||
(string-match "\\+" text))
|
||||
(cond ((string-search "+" text)
|
||||
(speedbar-change-expand-button-char ?-)
|
||||
(speedbar-with-writable
|
||||
(save-excursion
|
||||
|
|
@ -318,9 +308,7 @@ The update is only done when the channel is actually expanded already."
|
|||
nil nil nil nil
|
||||
info nil nil nil
|
||||
(1+ indent)))))))
|
||||
((if (>= emacs-major-version 28)
|
||||
(string-search "-" text)
|
||||
(string-match "-" text))
|
||||
((string-search "-" text)
|
||||
(speedbar-change-expand-button-char ?+)
|
||||
(speedbar-delete-subblock indent))
|
||||
(t (error "Ooops... not sure what to do")))
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
;; Michael Olson (mwolson@gnu.org)
|
||||
;; Kelvin White (kwhite@gnu.org)
|
||||
;; Version: 5.4.1
|
||||
;; Package-Requires: ((emacs "27.1"))
|
||||
;; Package-Requires: ((emacs "27.1") (compat "28.1.2.0"))
|
||||
;; Keywords: IRC, chat, client, Internet
|
||||
;; URL: https://www.gnu.org/software/emacs/erc.html
|
||||
|
||||
|
|
@ -69,6 +69,8 @@
|
|||
(require 'iso8601)
|
||||
(eval-when-compile (require 'subr-x))
|
||||
|
||||
(require 'erc-compat)
|
||||
|
||||
(defconst erc-version "5.4.1"
|
||||
"This version of ERC.")
|
||||
|
||||
|
|
@ -3519,9 +3521,7 @@ Without SECRET, consult auth-source, possibly passing SERVER as the
|
|||
"Non-nil when channel is server-local on a network that allows them."
|
||||
(and-let* (((eq ?& (aref channel 0)))
|
||||
(chan-types (erc--get-isupport-entry 'CHANTYPES 'single))
|
||||
((if (>= emacs-major-version 28)
|
||||
(string-search "&" chan-types)
|
||||
(string-match-p "&" chan-types))))))
|
||||
((string-search "&" chan-types)))))
|
||||
|
||||
(defun erc-cmd-JOIN (channel &optional key)
|
||||
"Join the channel given in CHANNEL, optionally with KEY.
|
||||
|
|
@ -7005,21 +7005,12 @@ shortened server name instead."
|
|||
(fill-region (point-min) (point-max))
|
||||
(buffer-string))))
|
||||
(setq header-line-format
|
||||
(if (>= emacs-major-version 28)
|
||||
(string-replace
|
||||
"%"
|
||||
"%%"
|
||||
(if face
|
||||
(propertize header 'help-echo help-echo
|
||||
'face face)
|
||||
(propertize header 'help-echo help-echo)))
|
||||
(replace-regexp-in-string
|
||||
"%"
|
||||
"%%"
|
||||
(if face
|
||||
(propertize header 'help-echo help-echo
|
||||
'face face)
|
||||
(propertize header 'help-echo help-echo)))))))
|
||||
(string-replace
|
||||
"%"
|
||||
"%%"
|
||||
(if face
|
||||
(propertize header 'help-echo help-echo 'face face)
|
||||
(propertize header 'help-echo help-echo))))))
|
||||
(t (setq header-line-format
|
||||
(if face
|
||||
(propertize header 'face face)
|
||||
|
|
@ -7304,9 +7295,7 @@ functions."
|
|||
nick user host channel
|
||||
(if (not (string= reason ""))
|
||||
(format ": %s"
|
||||
(if (>= emacs-major-version 28)
|
||||
(string-replace "%" "%%" reason)
|
||||
(replace-regexp-in-string "%" "%%" reason)))
|
||||
(string-replace "%" "%%" reason))
|
||||
"")))))
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue