From: Chong Yidong Date: Sat, 12 Sep 2009 00:47:13 +0000 (+0000) Subject: * url-methods.el (url-scheme--registering-proxy): New variable. X-Git-Tag: emacs-pretest-23.1.90~1364 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=63255710c117eeff6c231779154810a1c6fceda4;p=emacs.git * url-methods.el (url-scheme--registering-proxy): New variable. (url-scheme-register-proxy, url-scheme-get-property): Avoid calling url-scheme-register-proxy in an infloop (Bug#4191). --- diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index e5ce8837b9b..eddc27b09c7 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog @@ -1,3 +1,9 @@ +2009-09-12 Chong Yidong + + * url-methods.el (url-scheme--registering-proxy): New variable. + (url-scheme-register-proxy, url-scheme-get-property): Avoid + calling url-scheme-register-proxy in an infloop (Bug#4191). + 2009-08-22 Glenn Morris * url-file.el (url-file-build-filename): diff --git a/lisp/url/url-methods.el b/lisp/url/url-methods.el index 20f52a94335..b73a6fc15a4 100644 --- a/lisp/url/url-methods.el +++ b/lisp/url/url-methods.el @@ -65,13 +65,16 @@ "Signal an error for an unknown URL scheme." (error "Unkown URL scheme: %s" (url-type url))) +(defvar url-scheme--registering-proxy nil) + (defun url-scheme-register-proxy (scheme) "Automatically find a proxy for SCHEME and put it in `url-proxy-services'." (let* ((env-var (concat scheme "_proxy")) (env-proxy (or (getenv (upcase env-var)) (getenv (downcase env-var)))) (cur-proxy (assoc scheme url-proxy-services)) - (urlobj nil)) + (urlobj nil) + (url-scheme--registering-proxy t)) ;; If env-proxy is an empty string, treat it as if it were nil (when (and (stringp env-proxy) @@ -124,7 +127,8 @@ it has not already been loaded." (if (fboundp loader) (progn ;; Found the module to handle URLs - (url-scheme-register-proxy scheme) + (unless url-scheme--registering-proxy + (url-scheme-register-proxy scheme)) (setq desc (list 'name scheme 'loader loader)) (dolist (cell url-scheme-methods)