From: F. Jason Park Date: Mon, 6 Nov 2023 00:03:15 +0000 (-0800) Subject: Don't use func-arity to trigger API warning in url-irc X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=29029529cb21960fc48e35ffbd24cbccaeb499a7;p=emacs.git Don't use func-arity to trigger API warning in url-irc * lisp/url/url-irc.el (url-irc): Use more robust `condition-case' pattern instead, which will still fail when met with various edge cases. The old way was only useful for non-variadic lambda lists consisting entirely of named positional parameters. (Bug#56514) --- diff --git a/lisp/url/url-irc.el b/lisp/url/url-irc.el index 1463335d40f..e11b4a6a58e 100644 --- a/lisp/url/url-irc.el +++ b/lisp/url/url-irc.el @@ -83,18 +83,20 @@ PASSWORD - What password to use. (pass (url-password url)) (user (url-user url)) (chan (url-filename url)) - (type (url-type url)) - (compatp (eql 5 (cdr (func-arity url-irc-function))))) + (type (url-type url))) (if (url-target url) (setq chan (concat chan "#" (url-target url)))) (if (string-match "^/" chan) (setq chan (substring chan 1 nil))) (if (= (length chan) 0) (setq chan nil)) - (when compatp - (lwarn 'url :error "Obsolete value for `url-irc-function'")) - (apply url-irc-function - host port chan user pass (unless compatp (list type))) + (condition-case nil + (funcall url-irc-function host port chan user pass type) + (wrong-number-of-arguments + (display-warning 'url + (concat "Incompatible value for `url-irc-function'." + " Likely not expecting a 6th (SCHEME) arg.")) + (funcall url-irc-function host port chan user pass))) nil)) ;;;; ircs://