“There’s only madness down that road.”
My solution to the url.el parts of Vasilij Schneidermann excellent writeup would, as always, be:
diff --git a/lisp/url/url.el b/lisp/url/url.el index b4ece5faeb..8ea491efb0 100644 --- a/lisp/url/url.el +++ b/lisp/url/url.el @@ -191,7 +191,8 @@ url-retrieve-internal (setq url (url-generic-parse-url url))) (if (not (functionp callback)) (error "Must provide a callback function to url-retrieve")) - (unless (url-type url) + (when (or (not (url-type url)) + (not (member (url-type url) '("http" "https" "file")))) (error "Bad url: %s" (url-recreate-url url))) (setf (url-silent url) silent) (setf (url-asynchronous url) url-asynchronous)
(Along with making redirects saner, of course.)