28 Commits

Author SHA1 Message Date
Matt Nadareski
b325212664 Bump version 2026-11-11 11:18:54 +01:00
Matt Nadareski
70e6bdd41c Add .NET 11 support 2026-11-11 10:29:50 +01:00
Matt Nadareski
e4728b3809 Update GrindCore to 0.10.0 2026-11-07 05:24:31 -05:00
gmipf
e818a322ac Fix MS-ZIP blocks that end with short codes or copy from 32 KiB back (#7)
* Decode short codes at the end of the inflate input

InflateCodes waited for as many bits as its lookup table uses before
it decoded a literal, length or distance code. When the input ended
with fewer bits than that, the last codes were not decoded, even though
they were complete. An MS-ZIP block is a deflate stream on its own, so
its last match was lost and the block came out short (#1).

When no more input is there, the code is now looked up with the bits
that are left and used if it is not longer than those.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Keep a full 32 KiB inflate dictionary

SetDictionary kept only the last 32767 bytes of a 32 KiB dictionary,
because the window needs one free byte between its read and write
positions. MS-ZIP sets the previous 32 KiB block as the dictionary,
and a match at the start of a block can copy from 32768 bytes back,
which then read a byte that was not in the window.

A dictionary that fills the window now starts with the read and write
positions at 0, so the first byte written replaces the oldest byte of
the dictionary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 21:35:22 -04:00
Matt Nadareski
8695e58c27 Bump version 2026-08-28 13:00:14 -04:00
Matt Nadareski
c80fae5506 Fix compression readme 2026-08-27 15:22:33 -04:00
Matt Nadareski
42aa3791ba Add GrindCore notes 2026-08-27 14:21:52 -04:00
Matt Nadareski
b90312512b Remove older zlib implementation in lieu of GrindCore 2026-08-27 09:38:56 -04:00
Matt Nadareski
78eec76d25 Update Hashing to 2.1.0 2026-08-27 09:25:20 -04:00
Matt Nadareski
636bac5e1b Replace internal version of BZip2 with GrindCore 2026-08-26 18:04:21 -04:00
Matt Nadareski
a85242a7d9 Update GrindCore to 0.9.0 2026-08-26 16:33:06 -04:00
Matt Nadareski
0b9c4559a1 Update packages 2026-08-20 11:40:02 -04:00
Matt Nadareski
78c6c1b6f6 Bump version 2026-07-10 11:10:33 -04:00
Matt Nadareski
a2598c85ed Relax requirements 2026-07-10 09:54:19 -04:00
Matt Nadareski
433f37a789 Handle some "== null" replacements 2026-07-09 09:45:09 -04:00
Matt Nadareski
96d7141264 Bump version 2026-05-14 08:51:35 -04:00
Matt Nadareski
f61a526703 Updated READMEs 2026-05-12 22:55:43 -04:00
Matt Nadareski
edc4f5e6d4 Update packages 2026-05-12 22:50:23 -04:00
Matt Nadareski
e7c75e62b2 Port RVZ-Pack compression code from Serialization 2026-05-12 21:15:05 -04:00
Matt Nadareski
0174e9f2cd Port PURGE compression code from Serialization 2026-05-12 20:51:01 -04:00
Matt Nadareski
9cdee80bed Bump version 2026-03-24 17:54:11 -04:00
Matt Nadareski
2592dd9bb6 Rename BufferedStream to BufferedStreamReader due to functionality 2026-03-24 11:10:27 -04:00
Matt Nadareski
e250c505c3 Update "Relies on" comments 2026-03-23 20:20:26 -04:00
Matt Nadareski
f2d3ae475c Fix direct references to projects 2026-03-23 20:07:53 -04:00
Matt Nadareski
168aaff7d7 Update Hashing to 2.0.0 2026-03-22 12:00:54 -04:00
Matt Nadareski
add545ec55 Numerics extensions to new namespace 2026-03-21 20:57:03 -04:00
Matt Nadareski
bbd48926f1 Project file cleanup 2026-03-21 14:23:13 -04:00
Matt Nadareski
d614379cf5 Libraries
This change looks dramatic, but it's just separating out the already-split namespaces into separate top-level folders. In theory, every single one could be built into their own Nuget package. `SabreTools.IO.Meta` builds the normal Nuget package that is used by all other projects and includes all namespaces. `SabreTools.IO` builds to `SabreTools.IO.Common` to avoid overwriting issues on publish.
2026-03-21 13:55:42 -04:00