# HG changeset patch # User Dave Love # Date 947086904 0 # Node ID 64fe9058e23550642e92697caa2ec82d7c5a4188 # Parent d7311a9cb223fa59f97c01ad5c03c506d29434ef (browse-url): Fix case of browse-url-browser-function being an alist. diff -r d7311a9cb223 -r 64fe9058e235 lisp/browse-url.el --- a/lisp/browse-url.el Wed Jan 05 15:25:18 2000 +0000 +++ b/lisp/browse-url.el Wed Jan 05 15:41:44 2000 +0000 @@ -1,6 +1,6 @@ ;;; browse-url.el --- Pass a URL to a WWW browser -;; Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. +;; Copyright (C) 1995, 96-99, 2000 Free Software Foundation, Inc. ;; Author: Denis Howe ;; Maintainer: Dave Love @@ -85,9 +85,8 @@ ;; Python see . Grail support in ;; browse-url.el written by Barry Warsaw . -;; MMM is the freely available WWW browser implemented in Objective -;; Caml, a cool impure functional programming language, by Francois -;; Rouaix. See the MMM home page +;; MMM is a semi-free WWW browser implemented in Objective Caml, an +;; interesting impure functional programming language. See ;; . ;; Lynx is now distributed by the FSF. See also @@ -98,7 +97,8 @@ ;; , Arena ;; and Amaya ;; . mMosaic -;; (with development +;; , +;; (with development ;; support for Java applets and multicast) can be used like Mosaic by ;; setting `browse-url-mosaic-program' appropriately. @@ -223,6 +223,7 @@ (eval-when-compile (require 'thingatpt) (require 'term) + (require 'dired) (require 'w3-auto nil t)) (defgroup browse-url nil @@ -598,16 +599,19 @@ Prompts for a URL, defaulting to the URL at or before point. Variable `browse-url-browser-function' says which browser to use." (interactive (browse-url-interactive-arg "URL: ")) - (let ((bf browse-url-browser-function) re) - (unless (functionp bf) - (while (consp bf) - (setq re (car (car bf)) - bf (if (string-match re url) - (cdr (car bf)) ; The function - (cdr bf))))) ; More pairs - (or bf (error "No browser in browse-url-browser-function matching URL %s" - url)) - (apply bf url args))) + (if (functionp browse-url-browser-function) + (apply browse-url-browser-function url args) + ;; The `function' can be an alist; look down it for first match + ;; and apply the function (which might be a lambda). + (catch 'done + (mapcar + (lambda (bf) + (when (string-match (car bf) url) + (apply (cdr bf) url args) + (throw 'done t))) + browse-url-browser-function) + (error "No browser in browse-url-browser-function matching URL %s" + url)))) ;;;###autoload (defun browse-url-at-point ()