<feed xmlns='http://www.w3.org/2005/Atom'>
<title>halibut/deflate.c, branch master</title>
<subtitle>My halibut tree</subtitle>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/halibut/'/>
<entry>
<title>Factor LZ77 and Huffman routines out of deflate.c.</title>
<updated>2017-05-13T17:22:09+00:00</updated>
<author>
<name>Simon Tatham</name>
<email>anakin@pobox.com</email>
</author>
<published>2017-05-10T06:10:14+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/halibut/commit/?id=715a3bef377aeee898c427be99b1acf440b4a5e5'/>
<id>715a3bef377aeee898c427be99b1acf440b4a5e5</id>
<content type='text'>
The general routines for analysing a buffer into an LZ77ish stream of
literals and matches, and for constructing a Huffman tree in canonical
format, now live in their own source files so that they can be reused
for other similar compression formats. Deflate-specific details like
the exact file encoding are left in deflate.c.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The general routines for analysing a buffer into an LZ77ish stream of
literals and matches, and for constructing a Huffman tree in canonical
format, now live in their own source files so that they can be reused
for other similar compression formats. Deflate-specific details like
the exact file encoding are left in deflate.c.
</pre>
</div>
</content>
</entry>
<entry>
<title>Apply the same Deflate decoder fix as PuTTY r10278.</title>
<updated>2014-10-01T18:36:33+00:00</updated>
<author>
<name>Simon Tatham</name>
<email>anakin@pobox.com</email>
</author>
<published>2014-10-01T18:36:33+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/halibut/commit/?id=1d32c57442f6b72c69ebdac69a068da10fc195f0'/>
<id>1d32c57442f6b72c69ebdac69a068da10fc195f0</id>
<content type='text'>
This causes sensible error reporting if distance codes 30 or 31 appear
in a compressed block.

(Not that Halibut actually _uses_ the Deflate decoder - it only uses
the encoder - but if I've got a copy of this code here then it should
be correct.)

[originally from svn r10280]
[r10278 == 3fd8014ea7235d0ec34e8f97a34f3ecf576e8239 in putty repository]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This causes sensible error reporting if distance codes 30 or 31 appear
in a compressed block.

(Not that Halibut actually _uses_ the Deflate decoder - it only uses
the encoder - but if I've got a copy of this code here then it should
be correct.)

[originally from svn r10280]
[r10278 == 3fd8014ea7235d0ec34e8f97a34f3ecf576e8239 in putty repository]
</pre>
</div>
</content>
</entry>
<entry>
<title>Silence compiler warnings on OS X 10.9.</title>
<updated>2014-03-30T07:48:03+00:00</updated>
<author>
<name>Simon Tatham</name>
<email>anakin@pobox.com</email>
</author>
<published>2014-03-30T07:48:03+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/halibut/commit/?id=18e0f32b292316a4db3bb0bde1570a73ee60b0bd'/>
<id>18e0f32b292316a4db3bb0bde1570a73ee60b0bd</id>
<content type='text'>
[originally from svn r10166]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[originally from svn r10166]
</pre>
</div>
</content>
</entry>
<entry>
<title>Patch from Maciej Adamczyk to set standard output to binary mode in</title>
<updated>2012-06-03T20:51:47+00:00</updated>
<author>
<name>Simon Tatham</name>
<email>anakin@pobox.com</email>
</author>
<published>2012-06-03T20:51:47+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/halibut/commit/?id=2de31b3b4b575ff35f63ef71433d649ed6390c3c'/>
<id>2de31b3b4b575ff35f63ef71433d649ed6390c3c</id>
<content type='text'>
the standalone deflate utility modes, so you can redirect output to a
file and end up with correct data in that file.

[originally from svn r9552]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the standalone deflate utility modes, so you can redirect output to a
file and end up with correct data in that file.

[originally from svn r9552]
</pre>
</div>
</content>
</entry>
<entry>
<title>Make the Deflate decoder correctly handle the special case of a</title>
<updated>2012-06-01T19:37:14+00:00</updated>
<author>
<name>Simon Tatham</name>
<email>anakin@pobox.com</email>
</author>
<published>2012-06-01T19:37:14+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/halibut/commit/?id=ea4654d03324dd4feba49d616cbf13b4d6b808c6'/>
<id>ea4654d03324dd4feba49d616cbf13b4d6b808c6</id>
<content type='text'>
dynamic block in which the backward-distances Huffman table contains
no entries at all. (In this situation it's impossible to use the
distance table, and therefore the block must contain nothing but
Huffman-coded literals.)

[originally from svn r9550]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
dynamic block in which the backward-distances Huffman table contains
no entries at all. (In this situation it's impossible to use the
distance table, and therefore the block must contain nothing but
Huffman-coded literals.)

[originally from svn r9550]
</pre>
</div>
</content>
</entry>
<entry>
<title>Apply r6972 from my other copy of deflate.c: don't lose the BFINAL bit</title>
<updated>2012-05-03T17:57:31+00:00</updated>
<author>
<name>Simon Tatham</name>
<email>anakin@pobox.com</email>
</author>
<published>2012-05-03T17:57:31+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/halibut/commit/?id=5473e446fa34a6fe9229f29fc748ac9d08fb87bc'/>
<id>5473e446fa34a6fe9229f29fc748ac9d08fb87bc</id>
<content type='text'>
on an uncompressed block.

[originally from svn r9482]
[r6972 == 37af901cfe63ed062306e3835751e9b8e089e252 in misc repository]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
on an uncompressed block.

[originally from svn r9482]
[r6972 == 37af901cfe63ed062306e3835751e9b8e089e252 in misc repository]
</pre>
</div>
</content>
</entry>
<entry>
<title>Ahem. Don't invert the length _twice_.</title>
<updated>2012-05-03T17:40:08+00:00</updated>
<author>
<name>Simon Tatham</name>
<email>anakin@pobox.com</email>
</author>
<published>2012-05-03T17:40:08+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/halibut/commit/?id=ca37980e070dcd96d27d299bd4426858ec37ceae'/>
<id>ca37980e070dcd96d27d299bd4426858ec37ceae</id>
<content type='text'>
[originally from svn r9476]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[originally from svn r9476]
</pre>
</div>
</content>
</entry>
<entry>
<title>Add an error check for correct formatting in Deflate uncompressed</title>
<updated>2012-05-03T17:38:08+00:00</updated>
<author>
<name>Simon Tatham</name>
<email>anakin@pobox.com</email>
</author>
<published>2012-05-03T17:38:08+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/halibut/commit/?id=66eb3850217ab01cff7e3622ea5f34f757b82138'/>
<id>66eb3850217ab01cff7e3622ea5f34f757b82138</id>
<content type='text'>
block headers. (Ubuntu 12.04's gcc spotted that nlen was unused, which
it shouldn't have been.)

[originally from svn r9475]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
block headers. (Ubuntu 12.04's gcc spotted that nlen was unused, which
it shouldn't have been.)

[originally from svn r9475]
</pre>
</div>
</content>
</entry>
<entry>
<title>Clean up some compiler warnings.</title>
<updated>2008-11-21T19:20:12+00:00</updated>
<author>
<name>Simon Tatham</name>
<email>anakin@pobox.com</email>
</author>
<published>2008-11-21T19:20:12+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/halibut/commit/?id=dcc61488e0cf7862bbbf654f4b54fcf12b804c59'/>
<id>dcc61488e0cf7862bbbf654f4b54fcf12b804c59</id>
<content type='text'>
[originally from svn r8310]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[originally from svn r8310]
</pre>
</div>
</content>
</entry>
<entry>
<title>When building the static Huffman tables, it's vital to include the</title>
<updated>2007-02-13T19:23:47+00:00</updated>
<author>
<name>Simon Tatham</name>
<email>anakin@pobox.com</email>
</author>
<published>2007-02-13T19:23:47+00:00</published>
<link rel='alternate' type='text/html' href='https://www.franklinwei.com/cgit/halibut/commit/?id=d324fe8cc1372360f49cfcfd34261cacc886d79c'/>
<id>d324fe8cc1372360f49cfcfd34261cacc886d79c</id>
<content type='text'>
two unused entries at the end of the lit/len table (286 and 287),
because without them all the 9-bit codes are off by four. I can only
assume I hadn't noticed this before because no test file I've
compressed had both (a) contained byte values &gt;= 0x90 and (b)
required a static block.

[originally from svn r7279]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
two unused entries at the end of the lit/len table (286 and 287),
because without them all the 9-bit codes are off by four. I can only
assume I hadn't noticed this before because no test file I've
compressed had both (a) contained byte values &gt;= 0x90 and (b)
required a static block.

[originally from svn r7279]
</pre>
</div>
</content>
</entry>
</feed>
