emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/lisp/net browse-url.el


From: Kevin Ryde
Subject: [Emacs-diffs] emacs/lisp/net browse-url.el
Date: Sun, 18 Oct 2009 23:55:16 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Kevin Ryde <kryde>      09/10/18 23:55:16

Modified files:
        lisp/net       : browse-url.el 

Log message:
        (browse-url): Identify alist with "consp and
        not functionp" and let all other things go down the `apply' leg,
        as suggested by Stefan.  (Further to bug#4531.)

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/net/browse-url.el?cvsroot=emacs&r1=1.83&r2=1.84

Patches:
Index: browse-url.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/net/browse-url.el,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -b -r1.83 -r1.84
--- browse-url.el       2 Oct 2009 07:11:18 -0000       1.83
+++ browse-url.el       18 Oct 2009 23:55:16 -0000      1.84
@@ -778,11 +778,8 @@
     ;; which may not even exist any more.
     (if (stringp (frame-parameter (selected-frame) 'display))
         (setenv "DISPLAY" (frame-parameter (selected-frame) 'display)))
-    ;; Send any symbol to `apply', not just fboundp ones, since void-function
-    ;; from apply is clearer than wrong-type-argument from dolist.
-    (if (or (symbolp browse-url-browser-function)
-            (functionp browse-url-browser-function))
-        (apply browse-url-browser-function url args)
+    (if (and (consp browse-url-browser-function)
+            (not (functionp browse-url-browser-function)))
       ;; The `function' can be an alist; look down it for first match
       ;; and apply the function (which might be a lambda).
       (catch 'done
@@ -791,7 +788,10 @@
             (apply (cdr bf) url args)
             (throw 'done t)))
         (error "No browse-url-browser-function matching URL %s"
-               url)))))
+                url))
+      ;; Unbound symbols go down this leg, since void-function from
+      ;; apply is clearer than wrong-type-argument from dolist.
+      (apply browse-url-browser-function url args))))
 
 ;;;###autoload
 (defun browse-url-at-point (&optional arg)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]