From dbdeb3825ac6b28a3ffea3790a24dd4b14e6f7db Mon Sep 17 00:00:00 2001 From: "Pierre R. Mai" Date: Sun, 21 May 2023 21:17:06 +0200 Subject: [PATCH] Add output of modular size field for gzip --- deflate.lisp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/deflate.lisp b/deflate.lisp index 0f88c04..b222eab 100644 --- a/deflate.lisp +++ b/deflate.lisp @@ -797,12 +797,12 @@ match." :format-control "CRC-16 Checksum mismatch in header: ~4,'0X != ~4,'0X!" :format-arguments (list crc16-old crc16-new))) (let ((checksum-new (inflate-stream input-stream output-stream - :checksum (when check-checksum :crc-32))) - (checksum-old (parse-gzip-footer input-stream))) - ;; Handle Checksums - (when (and check-checksum (not (= checksum-old checksum-new))) - (error 'gzip-decompression-error - :format-control - "Checksum mismatch for decompressed stream: ~8,'0X != ~8,'0X!" - :format-arguments (list checksum-old checksum-new))) - (values checksum-old fname mtime fcomment crc16-old crc16-new)))) + :checksum (when check-checksum :crc-32)))) + (multiple-value-bind (checksum-old isize) (parse-gzip-footer input-stream) + ;; Handle Checksums + (when (and check-checksum (not (= checksum-old checksum-new))) + (error 'gzip-decompression-error + :format-control + "Checksum mismatch for decompressed stream: ~8,'0X != ~8,'0X!" + :format-arguments (list checksum-old checksum-new))) + (values checksum-old fname mtime fcomment isize crc16-old crc16-new)))))