]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't use func-arity to trigger API warning in url-irc
authorF. Jason Park <jp@neverwas.me>
Mon, 6 Nov 2023 00:03:15 +0000 (16:03 -0800)
committerF. Jason Park <jp@neverwas.me>
Mon, 13 Nov 2023 04:36:32 +0000 (20:36 -0800)
* 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)

lisp/url/url-irc.el

index 1463335d40fab59dc69a3f57865bc077d3a7e8e8..e11b4a6a58e25d19fad7bada8fab3288b5ed4ef9 100644 (file)
@@ -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://