emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r113801: Add Content-Transfer gzip support to url


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] trunk r113801: Add Content-Transfer gzip support to url
Date: Sun, 11 Aug 2013 20:52:53 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 113801
revision-id: address@hidden
parent: address@hidden
committer: Lars Magne Ingebrigtsen <address@hidden>
branch nick: trunk
timestamp: Sun 2013-08-11 22:52:50 +0200
message:
  Add Content-Transfer gzip support to url
  
  * url-http.el (url-handle-content-transfer-encoding): Support
  decompressing gzipped content.
  
  * url-vars.el (url-mime-encoding-string): If we have built-in gzip
  support, say that we accept gzipped content.
modified:
  lisp/url/ChangeLog             changelog-20091113204419-o5vbwnq5f7feedwu-3116
  lisp/url/url-http.el           urlhttp.el-20091113204419-o5vbwnq5f7feedwu-2989
  lisp/url/url-vars.el           urlvars.el-20091113204419-o5vbwnq5f7feedwu-3004
=== modified file 'lisp/url/ChangeLog'
--- a/lisp/url/ChangeLog        2013-07-31 04:19:09 +0000
+++ b/lisp/url/ChangeLog        2013-08-11 20:52:50 +0000
@@ -1,3 +1,11 @@
+2013-08-11  Lars Magne Ingebrigtsen  <address@hidden>
+
+       * 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  <address@hidden>
 
        * url-handlers.el (url-file-name-completion)

=== modified file 'lisp/url/url-http.el'
--- a/lisp/url/url-http.el      2013-07-22 04:06:21 +0000
+++ b/lisp/url/url-http.el      2013-08-11 20:52:50 +0000
@@ -851,11 +851,23 @@
        (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."

=== modified file 'lisp/url/url-vars.el'
--- a/lisp/url/url-vars.el      2013-01-01 09:11:05 +0000
+++ b/lisp/url/url-vars.el      2013-08-11 20:52:50 +0000
@@ -210,8 +210,8 @@
 
 (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)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]