diff options
author | Lars Magne Ingebrigtsen <larsi@gnus.org> | 2010-10-02 04:04:20 +0200 |
---|---|---|
committer | Lars Magne Ingebrigtsen <larsi@gnus.org> | 2010-10-02 04:04:20 +0200 |
commit | 08b8ba9fae180c04036b748d5838a5768b013c1d (patch) | |
tree | a3b5248d781c2337b04d25d196c2674b345fbd97 /lisp/url | |
parent | 20a5e99685c1b5b5739f21147d68b31f5726cc07 (diff) | |
download | emacs-08b8ba9fae180c04036b748d5838a5768b013c1d.tar.gz |
Modify url-retrieve and related functions and structures to respect a
`silent' flag to signal that the operation should be silent.
Diffstat (limited to 'lisp/url')
-rw-r--r-- | lisp/url/ChangeLog | 14 | ||||
-rw-r--r-- | lisp/url/url-http.el | 3 | ||||
-rw-r--r-- | lisp/url/url-parse.el | 2 | ||||
-rw-r--r-- | lisp/url/url-util.el | 12 | ||||
-rw-r--r-- | lisp/url/url.el | 18 |
5 files changed, 39 insertions, 10 deletions
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index d07a146db36..ee114b1c943 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog @@ -1,3 +1,17 @@ +2010-10-02 Lars Magne Ingebrigtsen <larsi@gnus.org> + + * 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 <larsi@gnus.org> * url-cookie.el (url-cookie-handle-set-cookie): Use diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index 655ea387c8d..c04c5877841 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 20432dcf7e5..7cfaf2a6b55 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 8beffe60a7f..0768af4baa8 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 6f7b810f0ed..9d44718625b 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 |