Also support zlib-format compression.
** Emacs can be compiled with zlib support. If this library is present
(which it normally is on most systems), the function
-`zlib-decompress-gzipped-region' becomes available.
+`zlib-decompress-region' becomes available, which can decompress gzip-
+and zlib-format compressed data.
---
** Emacs for NS (OSX, GNUStep) can be built with ImageMagick support.
* url-http.el (url-handle-content-transfer-encoding): Renamed
`zlib-decompress-gzipped-region' and check whether it's available,
too.
+ (url-handle-content-transfer-encoding): Renamed
+ `zlib-decompress-region' again.
2013-08-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
(defun url-handle-content-transfer-encoding ()
(let ((encoding (mail-fetch-field "content-encoding")))
(when (and encoding
- (fboundp 'zlib-decompress-gzipped-region)
+ (fboundp 'zlib-decompress-region)
(zlib-available-p)
(equal (downcase encoding) "gzip"))
(save-restriction
(widen)
(goto-char (point-min))
(when (search-forward "\n\n")
- (zlib-decompress-gzipped-region (point) (point-max)))))))
+ (zlib-decompress-region (point) (point-max)))))))
;; Miscellaneous
(defun url-http-activate-callback ()
(defvar url-request-method nil "The method to use for the next request.")
-(defvar url-mime-encoding-string (and (fboundp 'zlib-decompress-gzipped-region)
+(defvar url-mime-encoding-string (and (fboundp 'zlib-decompress-region)
+ (zlib-available-p)
"gzip")
"String to send in the Accept-encoding: field in HTTP requests.")
+2013-08-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * decompress.c (Fzlib_decompress_region): Support zlib
+ decompression, too, and rename.
+
2013-08-12 Paul Eggert <eggert@cs.ucla.edu>
Minor zlib configuration tweaks.
#endif
}
-DEFUN ("zlib-decompress-gzipped-region", Fzlib_decompress_gzipped_region,
- Szlib_decompress_gzipped_region,
+DEFUN ("zlib-decompress-region", Fzlib_decompress_region,
+ Szlib_decompress_region,
2, 2, 0,
- doc: /* Decompress a gzip-compressed region.
+ doc: /* Decompress a gzip- or zlib-compressed region.
Replace the text in the region by the decompressed data.
On failure, return nil and leave the data in place.
This function can be called only in unibyte buffers. */)
stream.avail_in = 0;
stream.next_in = Z_NULL;
- /* This magic number apparently means "this is gzip". */
- if (fn_inflateInit2 (&stream, 16 + MAX_WBITS) != Z_OK)
+ /* The magic number 32 apparently means "autodect both the gzip and
+ zlib formats" according to zlib.h. */
+ if (fn_inflateInit2 (&stream, MAX_WBITS + 32) != Z_OK)
return Qnil;
unwind_data.start = iend;
syms_of_decompress (void)
{
DEFSYM (Qzlib_dll, "zlib");
- defsubr (&Szlib_decompress_gzipped_region);
+ defsubr (&Szlib_decompress_region);
defsubr (&Szlib_available_p);
}