From c7f836c751befc88c4c2c230ce1fc4128fcfc893 Mon Sep 17 00:00:00 2001 From: Dave Love Date: Wed, 5 Jan 2000 15:41:44 +0000 Subject: (browse-url): Fix case of browse-url-browser-function being an alist. --- lisp/browse-url.el | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) (limited to 'lisp') diff --git a/lisp/browse-url.el b/lisp/browse-url.el index a4e4fcae1d..ba3c767796 100644 --- a/lisp/browse-url.el +++ b/lisp/browse-url.el @@ -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 @@ narrowed." 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 () -- cgit v1.2.3