From 002590379e195bac392bc5964314cbf4cc24e3e0 Mon Sep 17 00:00:00 2001 From: Stephen Seo Date: Thu, 27 Jun 2024 10:36:06 +0900 Subject: [PATCH] Update file_format.md Add support for per-file compressing by storing the compressor/decompressor commands in the per-file header part of the .simplearchive. --- file_format.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/file_format.md b/file_format.md index 0a1ee8c..c563124 100644 --- a/file_format.md +++ b/file_format.md @@ -18,8 +18,16 @@ For each file: 1. 2 bytes is 16-bit unsigned integer "filename length" in big-endian. 2. X bytes of filename (defined by previous value). -3. 8 bytes 64-bit unsigned integer "location of filename in this archive file". -4. 8 bytes 64-bit unsigned integer "size of filename in this archive file". +3. 2 bytes is 16-bit unsigned integer "compressor cmd+args" in big-endian. +4. X bytes of "compressor cmd+args" (defined by previous value). +5. 2 bytes is 16-bit unsigned integer "decompressor cmd+args" in big-endian. +6. X bytes of "decompressor cmd+args" (defined by previous value). +7. 8 bytes 64-bit unsigned integer "location of filename in this archive file". +8. 8 bytes 64-bit unsigned integer "size of filename in this archive file". + +Note that if archiving without compressor/decompressor, the byte values for +them will be 0 and there will be no strings for the compressor/decompressor +commands (lines 4 and 6 in previous per-file entry will not exist). The remaining bytes in the file are the files to be included in the archive file concatenated together. Their locations and sizes should match what was listed