aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Magne Ingebrigtsen <[email protected]>2010-10-02 04:04:20 +0200
committerLars Magne Ingebrigtsen <[email protected]>2010-10-02 04:04:20 +0200
commit08b8ba9fae180c04036b748d5838a5768b013c1d (patch)
treea3b5248d781c2337b04d25d196c2674b345fbd97
parent20a5e99685c1b5b5739f21147d68b31f5726cc07 (diff)
Modify url-retrieve and related functions and structures to respect a
`silent' flag to signal that the operation should be silent.
-rw-r--r--lisp/url/ChangeLog14
-rw-r--r--lisp/url/url-http.el3
-rw-r--r--lisp/url/url-parse.el2
-rw-r--r--lisp/url/url-util.el12
-rw-r--r--lisp/url/url.el18
5 files changed, 39 insertions, 10 deletions
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog
index d07a146db3..ee114b1c94 100644
--- a/lisp/url/ChangeLog
+++ b/lisp/url/ChangeLog
@@ -1,3 +1,17 @@
+2010-10-02 Lars Magne Ingebrigtsen <[email protected]>
+
+ * url-util.el (url-display-percentage): Don't message when the URL
+ is silent.
+ (url-lazy-message): Ditto.
+
+ * url-http.el (url-http-parse-headers): Pass the SILENT parameter
+ back to the fetching function.
+
+ * url.el (url-retrieve): Add a silent parameter.
+ (url-retrieve-internal): Ditto.
+
+ * url-parse.el (url): Add a `silent' slot in the URL struct.
+
2010-10-01 Lars Magne Ingebrigtsen <[email protected]>
* url-cookie.el (url-cookie-handle-set-cookie): Use
diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el
index 655ea387c8..c04c587784 100644
--- a/lisp/url/url-http.el
+++ b/lisp/url/url-http.el
@@ -643,7 +643,8 @@ should be shown to the user."
(set (make-local-variable 'url-redirect-buffer)
(url-retrieve-internal
redirect-uri url-callback-function
- url-callback-arguments))
+ url-callback-arguments
+ (url-silent url-current-object)))
(url-mark-buffer-as-dead buffer))
;; We hit url-max-redirections, so issue an error and
;; stop redirecting.
diff --git a/lisp/url/url-parse.el b/lisp/url/url-parse.el
index 20432dcf7e..7cfaf2a6b5 100644
--- a/lisp/url/url-parse.el
+++ b/lisp/url/url-parse.el
@@ -36,7 +36,7 @@
(&optional type user password host portspec filename
target attributes fullness))
(:copier nil))
- type user password host portspec filename target attributes fullness)
+ type user password host portspec filename target attributes fullness silent)
(defsubst url-port (urlobj)
(or (url-portspec urlobj)
diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el
index 8beffe60a7..0768af4baa 100644
--- a/lisp/url/url-util.el
+++ b/lisp/url/url-util.el
@@ -177,11 +177,17 @@ Strips out default port numbers, etc."
(defun url-lazy-message (&rest args)
"Just like `message', but is a no-op if called more than once a second.
Will not do anything if `url-show-status' is nil."
- (if (or (null url-show-status)
+ (if (or (and url-current-object
+ (url-silent url-current-object))
+ (null url-show-status)
(active-minibuffer-window)
(= url-lazy-message-time
(setq url-lazy-message-time (nth 1 (current-time)))))
nil
+ (message "hei: %s" url-current-object)
+ (with-current-buffer (get-buffer-create "back")
+ (let ((standard-output (current-buffer)))
+ (backtrace)))
(apply 'message args)))
;;;###autoload
@@ -222,7 +228,9 @@ Will not do anything if `url-show-status' is nil."
;;;###autoload
(defun url-display-percentage (fmt perc &rest args)
- (when url-show-status
+ (when (and url-show-status
+ (or (null url-current-object)
+ (not (url-silent url-current-object))))
(if (null fmt)
(if (fboundp 'clear-progress-display)
(clear-progress-display))
diff --git a/lisp/url/url.el b/lisp/url/url.el
index 6f7b810f0e..9d44718625 100644
--- a/lisp/url/url.el
+++ b/lisp/url/url.el
@@ -121,7 +121,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.
@@ -143,7 +143,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,
@@ -154,12 +156,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)
@@ -170,6 +174,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))))
@@ -179,7 +184,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