]> code.delx.au - gnu-emacs/blobdiff - lisp/url/url.el
Merge from emacs-23; up to 2010-06-12T17:12:15Z!cyd@stupidchicken.com.
[gnu-emacs] / lisp / url / url.el
index ac7e47d9cc0590240ecf5147bfc344d43db13978..7136b6023ce9ccf9226f38a317f4b7db776034d9 100644 (file)
@@ -1,7 +1,6 @@
 ;;; url.el --- Uniform Resource Locator retrieval tool
 
-;; Copyright (C) 1996, 1997, 1998, 1999, 2001, 2004,
-;;   2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+;; Copyright (C) 1996-1999, 2001, 2004-2011  Free Software Foundation, Inc.
 
 ;; Author: Bill Perry <wmperry@gnu.org>
 ;; Keywords: comm, data, processes, hypermedia
 
 (eval-when-compile (require 'cl))
 
+(require 'mailcap)
+
 (eval-when-compile
   (require 'mm-decode)
   (require 'mm-view))
 
-(require 'mailcap)
 (require 'url-vars)
 (require 'url-cookie)
 (require 'url-history)
 (require 'url-util)
 
 
-;; FIXME convert-standard-filename?
 (defcustom url-configuration-directory
-  (if (and (file-directory-p user-emacs-directory)
-           (not (file-directory-p "~/.url")))
-      (expand-file-name "url" user-emacs-directory)
-    "~/.url")
+  (locate-user-emacs-file "url/" ".url/")
   "Directory used by the URL package for cookies, history, etc."
   :type 'directory
   :group 'url)
@@ -124,7 +120,7 @@ than the one returned initially by `url-retrieve'.  In this case, it sets this
 variable in the original buffer as a forwarding pointer.")
 
 ;;;###autoload
-(defun url-retrieve (url callback &optional cbargs)
+(defun url-retrieve (url callback &optional cbargs silent)
   "Retrieve URL asynchronously and call CALLBACK with CBARGS when finished.
 URL is either a string or a parsed URL.
 
@@ -146,7 +142,9 @@ the callback is not called).
 The variables `url-request-data', `url-request-method' and
 `url-request-extra-headers' can be dynamically bound around the
 request; dynamic binding of other variables doesn't necessarily
-take effect."
+take effect.
+
+If SILENT, then don't message progress reports and the like."
 ;;; XXX: There is code in Emacs that does dynamic binding
 ;;; of the following variables around url-retrieve:
 ;;; url-standalone-mode, url-gateway-unplugged, w3-honor-stylesheets,
@@ -157,12 +155,14 @@ take effect."
 ;;; webmail.el; the latter should be updated.  Is
 ;;; url-cookie-multiple-line needed anymore?  The other url-cookie-*
 ;;; are (for now) only used in synchronous retrievals.
-  (url-retrieve-internal url callback (cons nil cbargs)))
+  (url-retrieve-internal url callback (cons nil cbargs) silent))
 
-(defun url-retrieve-internal (url callback cbargs)
+(defun url-retrieve-internal (url callback cbargs &optional silent)
   "Internal function; external interface is `url-retrieve'.
 CBARGS is what the callback will actually receive - the first item is
-the list of events, as described in the docstring of `url-retrieve'."
+the list of events, as described in the docstring of `url-retrieve'.
+
+If SILENT, don't message progress reports and the like."
   (url-do-setup)
   (url-gc-dead-buffers)
   (if (stringp url)
@@ -173,6 +173,7 @@ the list of events, as described in the docstring of `url-retrieve'."
       (error "Must provide a callback function to url-retrieve"))
   (unless (url-type url)
     (error "Bad url: %s" (url-recreate-url url)))
+  (setf (url-silent url) silent)
   (let ((loader (url-scheme-get-property (url-type url) 'loader))
        (url-using-proxy (if (url-host url)
                             (url-find-proxy-for-url url (url-host url))))
@@ -182,7 +183,8 @@ the list of events, as described in the docstring of `url-retrieve'."
        (setq asynch t
              loader 'url-proxy))
     (if asynch
-       (setq buffer (funcall loader url callback cbargs))
+       (let ((url-current-object url))
+         (setq buffer (funcall loader url callback cbargs)))
       (setq buffer (funcall loader url))
       (if buffer
          (with-current-buffer buffer
@@ -323,5 +325,4 @@ no further processing).  URL is either a string or a parsed URL."
 
 (provide 'url)
 
-;; arch-tag: bc182f1f-d187-4f10-b961-47af2066579a
 ;;; url.el ends here