+2013-08-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * url-vars.el (url-mime-encoding-string): If we have built-in gzip
+ support, say that we accept gzipped content.
+
+ * url-http.el (url-handle-content-transfer-encoding): Support
+ decompressing gzipped content.
+
2013-07-31 Stefan Monnier <monnier@iro.umontreal.ca>
* url-handlers.el (url-file-name-completion)
(error "Unknown class of HTTP response code: %d (%d)"
class url-http-response-status)))
(if (not success)
- (url-mark-buffer-as-dead buffer))
+ (url-mark-buffer-as-dead buffer)
+ (url-handle-content-transfer-encoding))
(url-http-debug "Finished parsing HTTP headers: %S" success)
(widen)
success))
+(defun url-handle-content-transfer-encoding ()
+ (let ((encoding (mail-fetch-field "content-encoding")))
+ (when (and encoding
+ (fboundp 'decompress-gzipped-region)
+ (equal (downcase encoding) "gzip"))
+ (save-restriction
+ (widen)
+ (goto-char (point-min))
+ (when (search-forward "\n\n")
+ (decompress-gzipped-region (point) (point-max)))))))
+
;; Miscellaneous
(defun url-http-activate-callback ()
"Activate callback specified when this buffer was created."
(defvar url-request-method nil "The method to use for the next request.")
-;; FIXME!! (RFC 2616 gives examples like `compress, gzip'.)
-(defvar url-mime-encoding-string nil
+(defvar url-mime-encoding-string (and (fboundp 'decompress-gzipped-region)
+ "gzip")
"String to send in the Accept-encoding: field in HTTP requests.")
(defvar mm-mime-mule-charset-alist)