ObjFW  History of src/OFLHAArchive.m of afae3291bff5cad9

History of file src/OFLHAArchive.m at check-in afae3291bff5cad9

2024-04-29
21:42
Properly hide private symbols file: [784284b8aa] check-in: [f16bccc7b3] user: js, branch: trunk, size: 14550 [annotate] [blame] [check-ins using] [diff]
2024-04-03
02:16
Change license to LGPLv3 only file: [3329a01d33] check-in: [7413a728a7] user: js, branch: trunk, size: 14546 [annotate] [blame] [check-ins using] [diff]
2024-03-04
01:21
Rename schemes for archive IRI handlers back

The naming was confusing, as it is used to refer to a specific file in
an archive and not the entire archive. file: [ddea1bb0a0] check-in: [34a3e817b3] user: js, branch: trunk, size: 14338 [annotate] [blame] [check-ins using] [diff]

2024-03-03
20:03
OFLHAArchive: Don't default to ISO 8859-1 file: [1e418bf0dc] check-in: [b8afc53cce] user: js, branch: trunk, size: 14352 [annotate] [blame] [check-ins using] [diff]
19:42
Rename schemes for archive IRI handlers

Some names are too generic and might cause conflicts (e.g. zoo). file: [de067758a4] check-in: [13f0321eff] user: js, branch: trunk, size: 14394 [annotate] [blame] [check-ins using] [diff]

19:29
OFZooArchive: Add write support file: [7fd2208cb9] check-in: [b431203426] user: js, branch: trunk, size: 14380 [annotate] [blame] [check-ins using] [diff]
2024-02-28
00:24
Add OFZooArchive

Only support for reading so far.

Compression methods 0 (uncompressed) and 2 (LZ77 + Huffman, apparently
identical to lh4/lh5) are supported. file: [97efb45aaf] check-in: [9a95da71d5] user: js, branch: trunk, size: 14379 [annotate] [blame] [check-ins using] [diff]

2024-02-27
21:07
Add missing imports when using --disable-sockets file: [565fa84624] check-in: [7234d82dff] user: js, branch: 1.0, size: 14089 [annotate] [blame] [check-ins using] [diff]
21:06
Add missing imports when using --disable-sockets file: [b00facb75e] check-in: [2d14df1979] user: js, branch: trunk, size: 14377 [annotate] [blame] [check-ins using] [diff]
2024-02-26
21:46
OFLHAArchive: Add support for files > 4 GB file: [ac15e6d468] check-in: [9d9fa168aa] user: js, branch: trunk, size: 14343 [annotate] [blame] [check-ins using] [diff]
20:09
OFLHAArchive: Properly zero-terminate archives file: [81c53ddb5d] check-in: [4fbf5837fd] user: js, branch: 1.0, size: 14055 [annotate] [blame] [check-ins using] [diff]
20:09
OFLHAArchive: Properly zero-terminate archives file: [7a342795be] check-in: [413965aa27] user: js, branch: trunk, size: 14343 [annotate] [blame] [check-ins using] [diff]
2024-02-24
17:27
OFLHAArchive: Add support for -pm0- files file: [f4f3dda99f] check-in: [f588271db7] user: js, branch: trunk, size: 13991 [annotate] [blame] [check-ins using] [diff]
17:25
OFLHAArchive: Ignore trailing garbage file: [70eb128b91] check-in: [927d1693c6] user: js, branch: 1.0, size: 13703 [annotate] [blame] [check-ins using] [diff]
17:24
OFLHAArchive: Ignore trailing garbage file: [26a6d95955] check-in: [35257251ec] user: js, branch: trunk, size: 13944 [annotate] [blame] [check-ins using] [diff]
16:17
OFLHAArchive: Add support for -lz4- files file: [f92b1ecdad] check-in: [42ab7308b9] user: js, branch: trunk, size: 13576 [annotate] [blame] [check-ins using] [diff]
2024-02-23
23:25
OFLHAArchive: Add support for decompressing -lhx- file: [80292dff55] check-in: [9350b01931] user: js, branch: trunk, size: 13529 [annotate] [blame] [check-ins using] [diff]
23:11
OFLHAArchive: Treat directory as uncompressed file: [e41cd8005a] check-in: [91089d4e47] user: js, branch: trunk, size: 13335 [annotate] [blame] [check-ins using] [diff]
22:55
OFLHAArchive: Don't assume method is uncompressed file: [55f03233bb] check-in: [bf45f06d9b] user: js, branch: trunk, size: 13288 [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
Update copyright file: [653818a552] check-in: [26ddd2e4e4] user: js, branch: trunk, size: 13106 [annotate] [blame] [check-ins using] [diff]
2023-01-06
09:04
Update copyright file: [9e5bf54c20] check-in: [8939cbdb52] user: js, branch: trunk, size: 13106 [annotate] [blame] [check-ins using] [diff]
2022-11-24
00:21
Rename OFURI to OFIRI file: [e14841e9db] check-in: [23272e6d43] user: js, branch: trunk, size: 13106 [annotate] [blame] [check-ins using] [diff]
2022-11-23
21:47
OFLHAArchive: Fix iterating without reading file: [9bc5b44666] check-in: [4f76840749] user: js, branch: trunk, size: 13106 [annotate] [blame] [check-ins using] [diff]
2022-10-11
00:28
+[URIForFile{ -> Path}:inArchive{ -> WithURI}:] file: [fa04eb799a] check-in: [a8bc0b31d0] user: js, branch: trunk, size: 12785 [annotate] [blame] [check-ins using] [diff]
2022-10-09
16:33
Drop of- prefix from URI schemes

It's generally uncommon to prefix those.

Additionally, it might be worthwhile to try to get those actually
registered, which requires usage. file: [4f2f21f0fa] check-in: [9b3cae6cba] user: js, branch: trunk, size: 12782 [annotate] [blame] [check-ins using] [diff]

2022-10-08
23:47
Move all archive URI handling to a single file file: [3876237eb4] check-in: [55858a10bb] user: js, branch: trunk, size: 12785 [annotate] [blame] [check-ins using] [diff]
2022-10-06
23:18
OFLHAArchive: Make returned streams retain archive

In order to not create a retain cycle, this changes the reference to the
last returned stream to an unsafe unretained one that the stream itself
resets to nil in its dealloc. file: [7d50694f14] check-in: [b53baf71ad] user: js, branch: trunk, size: 12736 [annotate] [blame] [check-ins using] [diff]

2022-10-04
22:27
Add of-lha: URI handler file: [9e5adce105] check-in: [f3bdf29f07] user: js, branch: trunk, size: 12268 [annotate] [blame] [check-ins using] [diff]
2022-09-28
21:40
Rename OFUR{L -> I} in preparation for URI support file: [37612138b5] check-in: [e7ab06503c] user: js, branch: trunk, size: 12120 [annotate] [blame] [check-ins using] [diff]
2022-08-27
21:42
Make GCC happy again file: [42c3ad0bd8] check-in: [7094055a27] user: js, branch: trunk, size: 12120 [annotate] [blame] [check-ins using] [diff]
20:58
OFSeekableStream: Add OFSeekWhence enum file: [356333f064] check-in: [73f5e3aa84] user: js, branch: trunk, size: 12119 [annotate] [blame] [check-ins using] [diff]
20:39
Rename OFFileOffset -> OFStreamOffset file: [16be8d0f67] check-in: [51589c6496] user: js, branch: trunk, size: 12101 [annotate] [blame] [check-ins using] [diff]
20:23
OFLHAArchiveEntry: Make (un)compressedSize ull

There's newer, less common LHA versions that allow 64 bit for the size.
However, for consistency with OFTarArchiveEntry, use unsigned long long
instead of uint64_t. file: [39715cb197] check-in: [6f13f74134] user: js, branch: trunk, size: 12091 [annotate] [blame] [check-ins using] [diff]

2022-08-15
23:02
OF{LHA,Tar,ZIP}Archive: Use URL instead of path file: [3c453bb2f0] check-in: [fee2316eca] user: js, branch: trunk, size: 12039 [annotate] [blame] [check-ins using] [diff]
2022-02-12
07:46
Update copyright file: [5dc375ab00] check-in: [1a86b8175b] user: js, branch: trunk, size: 12029 [annotate] [blame] [check-ins using] [diff]
2022-01-28
19:34
Don't assume EWOULDBLOCK and EAGAIN are the same file: [ff32dec968] check-in: [d9586ed175] user: js, branch: trunk, size: 12029 [annotate] [blame] [check-ins using] [diff]
2021-11-06
17:00
Fix too strict OFEnsure introduced in last checkin file: [6f31d26ec9] check-in: [0eb7274946] user: js, branch: trunk, size: 12008 [annotate] [blame] [check-ins using] [diff]
15:57
OFStream: New write API

The old write API made it too easy to lose bytes when a stream is set to
non-blocking mode. The new API always throws when not all bytes were
written, which forces handling the number of bytes being written being
smaller than the number of bytes requested to be written. file: [9340f7479b] check-in: [d1d36ae522] user: js, branch: trunk, size: 12007 [annotate] [blame] [check-ins using] [diff]

2021-04-28
20:56
OF{LHA,ZIP}Archive: Make mode enum private file: [8caabc2fe9] check-in: [fc4697adbf] user: js, branch: trunk, size: 11963 [annotate] [blame] [check-ins using] [diff]
2021-04-18
20:51
Rename everything in several smaller files file: [164897d7b4] check-in: [35de667566] user: js, branch: new-naming-convention, size: 12043 [annotate] [blame] [check-ins using] [diff]
2021-04-17
18:36
Rename all remaining enums file: [53cd493a82] check-in: [aa74e85220] user: js, branch: new-naming-convention, size: 12045 [annotate] [blame] [check-ins using] [diff]
14:19
of_offset_t -> OFFileOffset file: [ad2e9808eb] check-in: [e69db838d9] user: js, branch: new-naming-convention, size: 12090 [annotate] [blame] [check-ins using] [diff]
02:10
of_string_encoding_t -> OFStringEncoding file: [0005d98cda] check-in: [255f21fb3d] user: js, branch: new-naming-convention, size: 12086 [annotate] [blame] [check-ins using] [diff]
2021-03-07
20:25
*.m: Fold methods into one line where it fits file: [7c9dae9bb4] check-in: [1b82d3bf4f] user: js, branch: trunk, size: 12102 [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:04
Update copyright file: [2ae2007028] check-in: [374e1a1bfa] user: js, branch: trunk, size: 12244 [annotate] [blame] [check-ins using] [diff]
2020-09-27
03:08
Work around bugs in Apple GCC 4.0.1

Still miscompiles things. file: [d4b33ee3bc] check-in: [9e9ce6aa1c] user: js, branch: trunk, size: 12333 [annotate] [blame] [check-ins using] [diff]

2020-06-28
15:03
Use OF_DIRECT(_MEMBERS) where appropriate file: [493061fab4] check-in: [b6cb3addd0] user: js, branch: trunk, size: 12396 [annotate] [blame] [check-ins using] [diff]
2020-02-16
18:22
OF{LHA,Tar,ZIP}Archive: Gracefully handle close file: [a8a54167d4] check-in: [1d6d3eb61c] user: js, branch: trunk, size: 12360 [annotate] [blame] [check-ins using] [diff]
2020-01-14
00:16
More consistent -[close] behavior

This means refusing to close twice, calling -[close] from -[dealloc] and
not calling -[cancelAsyncRequests].

Calling -[cancelAsyncRequests] in -[close] is too dangerous, as -[close]
gets called by -[dealloc]: If the queue is the last reference to the
object, at the point where -[cancelAsyncRequests] removes it from the
queue, the object will start to deallocate and call into
-[cancelAsyncRequests] again, which is still in the middle of removing
it and now finds itself with an inconsistent state. file: [a09f2c8a17] check-in: [3b43d51006] user: js, branch: trunk, size: 12018 [annotate] [blame] [check-ins using] [diff]

2020-01-02
01:51
Update copyright file: [dd17a9200e] check-in: [c7f0229795] user: js, branch: trunk, size: 11771 [annotate] [blame] [check-ins using] [diff]
2019-09-29
20:53
Reduce ivar scopes file: [e8d8679991] check-in: [e0a330b377] user: js, branch: trunk, size: 11768 [annotate] [blame] [check-ins using] [diff]
2019-06-17
02:33
Remove underscores from class names file: [e91adc15fc] check-in: [17d57e01ff] user: js, branch: trunk, size: 11770 [annotate] [blame] [check-ins using] [diff]
2019-03-09
10:48
Several minor fixes file: [ba6f864ebc] check-in: [c1e949a8c6] user: js, branch: trunk, size: 11719 [annotate] [blame] [check-ins using] [diff]
2019-03-08
00:35
Use dot syntax file: [12097984b6] check-in: [bceb7ed4c9] user: js, branch: trunk, size: 11729 [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
Update copyright file: [9fc92038be] check-in: [0509d7a844] user: js, branch: trunk, size: 11599 [annotate] [blame] [check-ins using] [diff]
2018-07-08
18:00
OF{LHA,Tar}Archive: Fix skipping over entries file: [164823b060] check-in: [8333373867] user: js, branch: trunk, size: 11593 [annotate] [blame] [check-ins using] [diff]
2018-06-17
16:32
ofarc: Add LHA write and append support file: [6e9b4cb571] check-in: [bf8788d709] user: js, branch: trunk, size: 11569 [annotate] [blame] [check-ins using] [diff]
01:01
OFLHAArchive: Add write and append support file: [6b42000b6a] check-in: [54fe3999b7] user: js, branch: trunk, size: 11450 [annotate] [blame] [check-ins using] [diff]
2018-06-16
15:50
Move OFLHAArchive_LHStream to a separate file file: [34e73a192a] check-in: [3d7f5098f2] user: js, branch: trunk, size: 7691 [annotate] [blame] [check-ins using] [diff]
2018-06-12
21:33
Rename OFChecksum{Failed -> Mismatch}Exception

This also adds a parameter for the actual and expected checksum. file: [1f3aa621cb] check-in: [8f21e8acb5] user: js, branch: trunk, size: 20045 [annotate] [blame] [check-ins using] [diff]

2018-06-10
20:29
OF{LHA,ZIP}Archive: Improve truncation detection file: [4f0d23572a] check-in: [6b42e44f99] user: js, branch: trunk, size: 19759 [annotate] [blame] [check-ins using] [diff]
14:42
ofzip: Show compression method for ZIP archives file: [f7e8cf8472] check-in: [fd5dac720d] user: js, branch: trunk, size: 19587 [annotate] [blame] [check-ins using] [diff]
12:29
OFLHAArchive: Skip compressed entries much faster file: [4ab39c71a2] check-in: [2e354552ad] user: js, branch: trunk, size: 19504 [annotate] [blame] [check-ins using] [diff]
2018-06-06
21:55
Deflate & LHA: Return buffer to stream on close file: [a7a157c7cf] check-in: [fd9801229f] user: js, branch: trunk, size: 18560 [annotate] [blame] [check-ins using] [diff]
2018-06-04
22:47
OFLHAArchive: Prefill the sliding window with ' '

Apparently, there are two incompatible variants of LHA: One where the
sliding window is prefilled with zeros and one where it is prefilled
with spaces. It seems prefilling it with spaces is the original way,
while LHA on Amiga prefilled it with zeros.

As it is impossible to detect which one was used, a flag will be added
later to provide an Amiga compatibility mode. file: [19e9187eb0] check-in: [744956a000] user: js, branch: trunk, size: 18365 [annotate] [blame] [check-ins using] [diff]

22:05
OFLHAArchive: Verify CRC16 checksum file: [6f9fadd6e2] check-in: [fca5e53e12] user: js, branch: trunk, size: 18316 [annotate] [blame] [check-ins using] [diff]
2018-06-03
23:31
Add -[OFObject allocZeroedMemoryWithSize:(count:)] file: [56fa949e3a] check-in: [aacb5897a0] user: js, branch: trunk, size: 18063 [annotate] [blame] [check-ins using] [diff]
20:11
Work around GCC being extremely buggy

This includes GCC thinking uint16_t and uint_fast16_t have a different
signedness and pointers to subclasses of OFStream and pointers to
OFStream being incompatible pointer types. file: [9530d9435c] check-in: [44413ada84] user: js, branch: trunk, size: 18221 [annotate] [blame] [check-ins using] [diff]

18:15
OFLHAArchive: Support for -lh[4567]- compression file: [f1be19a9ae] check-in: [6cbc2253b8] user: js, branch: trunk, size: 18256 [annotate] [blame] [check-ins using] [diff]
2018-05-27
11:07
OFLHAArchiveEntry: Add support for LHA level 0 file: [1011e54787] check-in: [57f9bc6ace] user: js, branch: trunk, size: 5964 [annotate] [blame] [check-ins using] [diff]
07:32
OFLHAArchiveEntry: Keep the method as a string

It is only necessary to extract files, so it makes sense to keep it as
is to be able to list files using an unknown method. file: [dc06a91f23] check-in: [1a6e3816c1] user: js, branch: trunk, size: 5515 [annotate] [blame] [check-ins using] [diff]

2018-05-26
23:04
Added: Add OFLHAArchive

This is currently limited to reading uncompressed LHA level 2 files. file: [d7dfa4dbcd] check-in: [790b5344d6] user: js, branch: trunk, size: 5527 [annotate] [blame] [check-ins using]