Mercurial > emacs
changeset 78733:0d24e0627e57
Diane Murray <disumu at x3y2z1.net>
(url-http-parse-headers): Bind the current buffer rather than calling
`url-mark-buffer-as-dead' with `current-buffer', so that the correct
buffer is killed if `url-retrieve-synchronously' gets redirected to a
new URL.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Mon, 03 Sep 2007 19:29:18 +0000 |
parents | 2c07822e60f6 |
children | 46e7594406bc |
files | lisp/url/url-http.el |
diffstat | 1 files changed, 8 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/url/url-http.el Sun Sep 02 23:45:31 2007 +0000 +++ b/lisp/url/url-http.el Mon Sep 03 19:29:18 2007 +0000 @@ -429,7 +429,8 @@ (when (and connection (string= (downcase connection) "close")) (delete-process url-http-process))))) - (let ((class nil) + (let ((buffer (current-buffer)) + (class nil) (success nil)) (setq class (/ url-http-response-status 100)) (url-http-debug "Parsed HTTP headers: class=%d status=%d" class url-http-response-status) @@ -447,7 +448,7 @@ ;; 100 = Continue with request ;; 101 = Switching protocols ;; 102 = Processing (Added by DAV) - (url-mark-buffer-as-dead (current-buffer)) + (url-mark-buffer-as-dead buffer) (error "HTTP responses in class 1xx not supported (%d)" url-http-response-status)) (2 ; Success ;; 200 Ok @@ -461,14 +462,14 @@ (case url-http-response-status ((204 205) ;; No new data, just stay at the same document - (url-mark-buffer-as-dead (current-buffer)) + (url-mark-buffer-as-dead buffer) (setq success t)) (otherwise ;; Generic success for all others. Store in the cache, and ;; mark it as successful. (widen) (if (and url-automatic-caching (equal url-http-method "GET")) - (url-store-in-cache (current-buffer))) + (url-store-in-cache buffer)) (setq success t)))) (3 ; Redirection ;; 300 Multiple choices @@ -584,7 +585,7 @@ (url-retrieve-internal redirect-uri url-callback-function url-callback-arguments)) - (url-mark-buffer-as-dead (current-buffer))) + (url-mark-buffer-as-dead buffer)) ;; We hit url-max-redirections, so issue an error and ;; stop redirecting. (url-http-debug "Maximum redirections reached") @@ -625,7 +626,7 @@ (url-http-handle-authentication nil)) (402 ;; This code is reserved for future use - (url-mark-buffer-as-dead (current-buffer)) + (url-mark-buffer-as-dead buffer) (error "Somebody wants you to give them money")) (403 ;; The server understood the request, but is refusing to @@ -780,7 +781,7 @@ (error "Unknown class of HTTP response code: %d (%d)" class url-http-response-status))) (if (not success) - (url-mark-buffer-as-dead (current-buffer))) + (url-mark-buffer-as-dead buffer)) (url-http-debug "Finished parsing HTTP headers: %S" success) (widen) success))