* lisp/erc/erc-compat.el: Be more cautious about modifying
`browse-url-default-handlers' when loading erc-compat on Emacs 28. A
user may have already added an entry for irc:// URLs before loading
`erc-compat'.
(cond ((fboundp 'browse-url-irc)) ; 29
((boundp 'browse-url-default-handlers) ; 28
- (cl-pushnew '("\\`irc6?s?://" . erc-compat--29-browse-url-irc)
- browse-url-default-handlers))
+ (setf (alist-get "\\`irc6?s?://" browse-url-default-handlers
+ nil nil (lambda (a _)
+ (and (stringp a)
+ (string-match-p a "irc://localhost"))))
+ #'erc-compat--29-browse-url-irc))
((boundp 'browse-url-browser-function) ; 27
(require 'browse-url)
(let ((existing browse-url-browser-function))