ObjFW  History of src/OFZIPArchive.m of merge-in:f40a5c3

History of the file that is called src/OFZIPArchive.m at check-in merge-in:f40a5c3

2024-04-29
21:42
[b2947775a7] part of check-in [f16bccc7b3] Properly hide private symbols (check-in: [f16bccc7b3] user: js, branch: trunk, size: 28933) [annotate] [blame] [check-ins using] [diff]
2024-04-03
02:16
[7c50e25802] part of check-in [7413a728a7] Change license to LGPLv3 only (check-in: [7413a728a7] user: js, branch: trunk, size: 28925) [annotate] [blame] [check-ins using] [diff]
2024-03-10
23:33
[0f27411636] part of check-in [8d4650f6c1] OFZIPArchive: Write correct number of disks (check-in: [8d4650f6c1] user: js, branch: 1.0, size: 28733) [annotate] [blame] [check-ins using] [diff]
23:33
[c500265762] part of check-in [9f7c0669b0] OFZIPArchive: Write correct number of disks (check-in: [9f7c0669b0] user: js, branch: trunk, size: 28717) [annotate] [blame] [check-ins using] [diff]
23:07
[d1df601deb] part of check-in [fe62007081] OFZIPArchive: Undo incorrect disk 0 vs 1 fix (check-in: [fe62007081] user: js, branch: 1.0, size: 28733) [annotate] [blame] [check-ins using] [diff]
23:06
[31b9073e70] part of check-in [0c8f496588] OFZIPArchive: Undo incorrect disk 0 vs 1 fix (check-in: [0c8f496588] user: js, branch: trunk, size: 28717) [annotate] [blame] [check-ins using] [diff]
21:30
[371569395b] part of check-in [2214e91661] OFZIPArchive: More fixes for disk number 0 vs 1 (check-in: [2214e91661] user: js, branch: 1.0, size: 29159) [annotate] [blame] [check-ins using] [diff]
21:30
[ce4c3b4903] part of check-in [0ecd85c8e3] OFZIPArchive: More fixes for disk number 0 vs 1 (check-in: [0ecd85c8e3] user: js, branch: trunk, size: 29143) [annotate] [blame] [check-ins using] [diff]
2024-03-09
16:13
[e21c51c5ab] part of check-in [3fc6209af6] OFZIPArchive: Fix disk number 0 vs 1 (check-in: [3fc6209af6] user: js, branch: 1.0, size: 29098) [annotate] [blame] [check-ins using] [diff]
16:11
[3fcd2502eb] part of check-in [9fd7456e3a] OFZIPArchive: Fix disk number 0 vs 1 (check-in: [9fd7456e3a] user: js, branch: trunk, size: 29082) [annotate] [blame] [check-ins using] [diff]
2024-03-03
19:42
[8040666849] part of check-in [13f0321eff] Rename schemes for archive IRI handlers

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

2024-02-03
11:41
[1de1375858] part of check-in [7324ec8590] Update copyright (check-in: [7324ec8590] user: js, branch: 1.0, size: 28748) [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
[1f22a87e08] part of check-in [26ddd2e4e4] Update copyright (check-in: [26ddd2e4e4] user: js, branch: trunk, size: 28732) [annotate] [blame] [check-ins using] [diff]
2023-10-15
12:55
[139c2dfeb6] part of check-in [94ed4fc6f0] Make GCC happy again (check-in: [94ed4fc6f0] user: js, branch: trunk, size: 28732) [annotate] [blame] [check-ins using] [diff]
12:32
[76b549ca53] part of check-in [a61e0594b4] Add -[OFStream lowlevelIsAtEndOfStream]

This allows for a much cleaner solution to avoid the internal read
buffer of e.g. a TLS connection never being processed while waiting for
a delimiter. (check-in: [a61e0594b4] user: js, branch: trunk, size: 28718) [annotate] [blame] [check-ins using] [diff]

2023-07-26
19:05
[03f366c882] part of check-in [a847357585] OFZIPArchive: Handle CD spanning multiple parts

Unfortunately, I could not find a file to test this with, as this is an
extremely rare corner case that basically doesn't seem to exist with
real world files: It requires an extremely small part size for an
archive with thousands of files. (check-in: [a847357585] user: js, branch: trunk, size: 28748) [annotate] [blame] [check-ins using] [diff]

2023-07-25
21:35
[2026ad717c] part of check-in [a1ea38be5b] Make GCC happy again (check-in: [a1ea38be5b] user: js, branch: trunk, size: 27841) [annotate] [blame] [check-ins using] [diff]
21:21
[e0e6f86ab3] part of check-in [d6f5e2abc5] OFZIPArchive: Handle files spanning multiple parts (check-in: [d6f5e2abc5] user: js, branch: trunk, size: 27833) [annotate] [blame] [check-ins using] [diff]
2023-07-24
18:40
[d64ccad589] part of check-in [79b88573e0] OFZIPArchive: Restrict split archives to mode @"r" (check-in: [79b88573e0] user: js, branch: trunk, size: 26576) [annotate] [blame] [check-ins using] [diff]
18:20
[a443071aae] part of check-in [139f041fa1] Make GCC happy again (check-in: [139f041fa1] user: js, branch: trunk, size: 26479) [annotate] [blame] [check-ins using] [diff]
2023-07-23
23:35
[460801d892] part of check-in [630ea6bc5a] OFZIPArchive: Initial support for split archives

This cannot yet extract a file from the archive if the file spans
multiple parts. However, for a multipart archive with multiple files,
all files that only span a single part can be extracted. (check-in: [630ea6bc5a] user: js, branch: trunk, size: 26479) [annotate] [blame] [check-ins using] [diff]

2023-03-18
22:43
[1186bd8318] part of check-in [89a51dab69] OFZIPArchive: Only use data descriptor if needed (check-in: [89a51dab69] user: js, branch: trunk, size: 25700) [annotate] [blame] [check-ins using] [diff]
2023-01-06
09:04
[b9f9c8b9a8] part of check-in [8939cbdb52] Update copyright (check-in: [8939cbdb52] user: js, branch: trunk, size: 24622) [annotate] [blame] [check-ins using] [diff]
2022-11-24
00:21
[5ba6fac0e8] part of check-in [23272e6d43] Rename OFURI to OFIRI (check-in: [23272e6d43] user: js, branch: trunk, size: 24622) [annotate] [blame] [check-ins using] [diff]
2022-10-11
00:28
[3d9576934f] part of check-in [a8bc0b31d0] +[URIForFile{ -> Path}:inArchive{ -> WithURI}:] (check-in: [a8bc0b31d0] user: js, branch: trunk, size: 24622) [annotate] [blame] [check-ins using] [diff]
2022-10-09
16:33
[7434ba6daa] part of check-in [9b3cae6cba] 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. (check-in: [9b3cae6cba] user: js, branch: trunk, size: 24619) [annotate] [blame] [check-ins using] [diff]

16:19
[9d548c4f33] part of check-in [6527c97d03] OFZIPArchive: 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
needs to reset to nil in its dealloc.

Since when closing a stream for writing the archive needs to be updated,
the code for that was moved out of OFZIPArchive and into the stream
writer, since it now has a reference to the archive anyway. (check-in: [6527c97d03] user: js, branch: trunk, size: 24622) [annotate] [blame] [check-ins using] [diff]

2022-10-08
23:47
[4d14cd8ba2] part of check-in [55858a10bb] Move all archive URI handling to a single file (check-in: [55858a10bb] user: js, branch: trunk, size: 24282) [annotate] [blame] [check-ins using] [diff]
2022-10-04
22:22
[ed7fc3801b] part of check-in [519c277156] OF*Archive: Share +[URIForFile:inArchive:] code (check-in: [519c277156] user: js, branch: trunk, size: 24233) [annotate] [blame] [check-ins using] [diff]
21:33
[d0b4f286d3] part of check-in [19bbbbd95d] Add +[OFZIPArchive URIForFile:inArchive:]

This allows constructing a URI to access a file within an archive. (check-in: [19bbbbd95d] user: js, branch: trunk, size: 24769) [annotate] [blame] [check-ins using] [diff]

2022-09-28
21:40
[161538a2bd] part of check-in [e7ab06503c] Rename OFUR{L -> I} in preparation for URI support (check-in: [e7ab06503c] user: js, branch: trunk, size: 24085) [annotate] [blame] [check-ins using] [diff]
2022-08-30
00:48
[8085bc5ac7] part of check-in [4ad0c363f3] OFObject: Small API change (check-in: [4ad0c363f3] user: js, branch: trunk, size: 24085) [annotate] [blame] [check-ins using] [diff]
2022-08-27
20:58
[c774e7280c] part of check-in [73f5e3aa84] OFSeekableStream: Add OFSeekWhence enum (check-in: [73f5e3aa84] user: js, branch: trunk, size: 24085) [annotate] [blame] [check-ins using] [diff]
20:46
[038073c897] part of check-in [6ae6830243] OFZIPArchive: Restore accidentally dropped cast (check-in: [6ae6830243] user: js, branch: trunk, size: 24070) [annotate] [blame] [check-ins using] [diff]
20:39
[6a0897ace1] part of check-in [51589c6496] Rename OFFileOffset -> OFStreamOffset (check-in: [51589c6496] user: js, branch: trunk, size: 24030) [annotate] [blame] [check-ins using] [diff]
20:33
[e9a337a52f] part of check-in [94c326ab78] OFZIPArchiveEntry: Make (un)compressedSize ull

This is for consistency with OFTarArchiveEntry and OFLHAArchiveEntry. (check-in: [94c326ab78] user: js, branch: trunk, size: 24010) [annotate] [blame] [check-ins using] [diff]

2022-08-15
23:02
[eb2198be22] part of check-in [fee2316eca] OF{LHA,Tar,ZIP}Archive: Use URL instead of path (check-in: [fee2316eca] user: js, branch: trunk, size: 23926) [annotate] [blame] [check-ins using] [diff]
2022-04-25
19:09
[b017bd11e7] part of check-in [c62f1c55ac] OFOpenItemFailedException: Remove path (check-in: [c62f1c55ac] user: js, branch: trunk, size: 23750) [annotate] [blame] [check-ins using] [diff]
2022-02-12
07:46
[2bbedc5f4d] part of check-in [1a86b8175b] Update copyright (check-in: [1a86b8175b] user: js, branch: trunk, size: 23916) [annotate] [blame] [check-ins using] [diff]
2022-01-28
19:34
[0b7b3518b4] part of check-in [d9586ed175] Don't assume EWOULDBLOCK and EAGAIN are the same (check-in: [d9586ed175] user: js, branch: trunk, size: 23916) [annotate] [blame] [check-ins using] [diff]
2022-01-16
18:23
[eb9f1fb6fa] part of check-in [44bf860dc2] OFZIPArchive: Throw exception on closed archive (check-in: [44bf860dc2] user: js, branch: trunk, size: 23895) [annotate] [blame] [check-ins using] [diff]
2021-11-06
17:00
[349c80f1a5] part of check-in [0eb7274946] Fix too strict OFEnsure introduced in last checkin (check-in: [0eb7274946] user: js, branch: trunk, size: 23737) [annotate] [blame] [check-ins using] [diff]
15:57
[a5dd4c3dce] part of check-in [d1d36ae522] 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. (check-in: [d1d36ae522] user: js, branch: trunk, size: 23736) [annotate] [blame] [check-ins using] [diff]

2021-04-28
20:56
[952e87c05c] part of check-in [fc4697adbf] OF{LHA,ZIP}Archive: Make mode enum private (check-in: [fc4697adbf] user: js, branch: trunk, size: 23495) [annotate] [blame] [check-ins using] [diff]
2021-04-18
20:51
[2bb1e08022] part of check-in [35de667566] Rename everything in several smaller files (check-in: [35de667566] user: js, branch: new-naming-convention, size: 23616) [annotate] [blame] [check-ins using] [diff]
2021-04-17
18:36
[b583ae2e67] part of check-in [aa74e85220] Rename all remaining enums (check-in: [aa74e85220] user: js, branch: new-naming-convention, size: 23617) [annotate] [blame] [check-ins using] [diff]
14:19
[e83455a311] part of check-in [e69db838d9] of_offset_t -> OFFileOffset (check-in: [e69db838d9] user: js, branch: new-naming-convention, size: 23741) [annotate] [blame] [check-ins using] [diff]
14:13
[a439791082] part of check-in [eb0cfa6ff9] Always prefix functions with the type (check-in: [eb0cfa6ff9] user: js, branch: new-naming-convention, size: 23731) [annotate] [blame] [check-ins using] [diff]
02:10
[57930654e1] part of check-in [255f21fb3d] of_string_encoding_t -> OFStringEncoding (check-in: [255f21fb3d] user: js, branch: new-naming-convention, size: 23731) [annotate] [blame] [check-ins using] [diff]
01:24
[3d0aaa6c8a] part of check-in [83dc0fe6e5] OF_NOT_FOUND -> OFNotFound (check-in: [83dc0fe6e5] user: js, branch: new-naming-convention, size: 23753) [annotate] [blame] [check-ins using] [diff]
00:44
[c586c9999e] part of check-in [d975c53a43] of_range_t -> OFRange (check-in: [d975c53a43] user: js, branch: new-naming-convention, size: 23755) [annotate] [blame] [check-ins using] [diff]
2021-03-07
20:25
[4c67ad00cf] part of check-in [1b82d3bf4f] *.m: Fold methods into one line where it fits (check-in: [1b82d3bf4f] user: js, branch: trunk, size: 23755) [annotate] [blame] [check-ins using] [diff]
02:36
[c62bbdf049] part of check-in [a0fd103a0b] Style change: Allow more than 1 argument per line

This is only migrating some places, others will be migrated as they are
touched. (check-in: [a0fd103a0b] user: js, branch: trunk, size: 23867) [annotate] [blame] [check-ins using] [diff]

2021-01-02
22:04
[f8c3fbc96e] part of check-in [374e1a1bfa] Update copyright (check-in: [374e1a1bfa] user: js, branch: trunk, size: 23875) [annotate] [blame] [check-ins using] [diff]
2020-06-28
15:03
[6d9893fc0c] part of check-in [b6cb3addd0] Use OF_DIRECT(_MEMBERS) where appropriate (check-in: [b6cb3addd0] user: js, branch: trunk, size: 23964) [annotate] [blame] [check-ins using] [diff]
2020-02-16
18:22
[bebc27a315] part of check-in [1d6d3eb61c] OF{LHA,Tar,ZIP}Archive: Gracefully handle close (check-in: [1d6d3eb61c] user: js, branch: trunk, size: 23892) [annotate] [blame] [check-ins using] [diff]
2020-01-14
00:16
[f2e2222c23] part of check-in [3b43d51006] 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. (check-in: [3b43d51006] user: js, branch: trunk, size: 23778) [annotate] [blame] [check-ins using] [diff]

2020-01-02
01:51
[0b0c4f5246] part of check-in [c7f0229795] Update copyright (check-in: [c7f0229795] user: js, branch: trunk, size: 23534) [annotate] [blame] [check-ins using] [diff]
2019-12-27
00:41
[f3370d3321] part of check-in [e629dc83a9] OFSecureData: Add allowsSwappableMemory property

With this property, it's possible to specify whether the memory should
be protected from swapping or not. This makes it easier for e.g. the
crypto hash classes: They can now just always use OFSecureData without
wasting unswappable memory if it's not needed. (check-in: [e629dc83a9] user: js, branch: trunk, size: 23531) [annotate] [blame] [check-ins using] [diff]

2019-09-01
15:20
[88d0400634] part of check-in [b7badc68a0] Use u suffix on a few constants (check-in: [b7badc68a0] user: js, branch: trunk, size: 23532) [annotate] [blame] [check-ins using] [diff]
2019-06-17
02:33
[ee57bc1743] part of check-in [17d57e01ff] Remove underscores from class names (check-in: [17d57e01ff] user: js, branch: trunk, size: 23528) [annotate] [blame] [check-ins using] [diff]
2019-03-09
10:48
[4ebe3c89c2] part of check-in [c1e949a8c6] Several minor fixes (check-in: [c1e949a8c6] user: js, branch: trunk, size: 23541) [annotate] [blame] [check-ins using] [diff]
2019-03-08
00:35
[ebb48a8010] part of check-in [bceb7ed4c9] Use dot syntax (check-in: [bceb7ed4c9] user: js, branch: trunk, size: 23551) [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
[a406f55747] part of check-in [0509d7a844] Update copyright (check-in: [0509d7a844] user: js, branch: trunk, size: 23576) [annotate] [blame] [check-ins using] [diff]
2018-06-12
21:33
[9e27ae6fff] part of check-in [8f21e8acb5] Rename OFChecksum{Failed -> Mismatch}Exception

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

2018-06-10
20:29
[0463ac5206] part of check-in [6b42e44f99] OF{LHA,ZIP}Archive: Improve truncation detection (check-in: [6b42e44f99] user: js, branch: trunk, size: 23283) [annotate] [blame] [check-ins using] [diff]
12:29
[f05c35edb7] part of check-in [2e354552ad] OFLHAArchive: Skip compressed entries much faster (check-in: [2e354552ad] user: js, branch: trunk, size: 23152) [annotate] [blame] [check-ins using] [diff]
2018-06-03
18:15
[56c946d958] part of check-in [6cbc2253b8] OFLHAArchive: Support for -lh[4567]- compression (check-in: [6cbc2253b8] user: js, branch: trunk, size: 22736) [annotate] [blame] [check-ins using] [diff]
2018-01-03
19:49
[134d5e947d] part of check-in [7e5c81e186] Update copyright notice (check-in: [7e5c81e186] user: js, branch: trunk, size: 22725) [annotate] [blame] [check-ins using] [diff]
2017-10-22
15:05
[f074dafa32] part of check-in [a06354b42a] Make Apple GCC with -Wshadow happy (check-in: [a06354b42a] user: js, branch: trunk, size: 22702) [annotate] [blame] [check-ins using] [diff]
14:09
[cf738fc904] part of check-in [31c0f5b89e] Make Apple GCC with -Wshadow happy (check-in: [31c0f5b89e] user: js, branch: 0.90, size: 13164) [annotate] [blame] [check-ins using] [diff]
2017-10-17
00:33
[f82daa6eae] part of check-in [2f4e0df8be] Do not use implicit method return types

Instead, explicitly declare them, as OF_ASSUME_NONNULL_{BEGIN,END} does
not apply to implicit return types. This means that after this commit,
all init methods have a nonnull return type, as they should have. (check-in: [2f4e0df8be] user: js, branch: trunk, size: 22669) [annotate] [blame] [check-ins using] [diff]

2017-09-28
23:02
[0736b3b069] part of check-in [2de9660312] Enable -Wnullable-to-nonnull-conversion and adjust (check-in: [2de9660312] user: js, branch: trunk, size: 22583) [annotate] [blame] [check-ins using] [diff]
2017-09-24
12:24
[700f57a4db] part of check-in [481225349f] OFStream: Add support for async writes (check-in: [481225349f] user: js, branch: trunk, size: 22547) [annotate] [blame] [check-ins using] [diff]
2017-08-19
09:19
[e300d0925e] part of check-in [1f4407ddf1] OFZIPArchive: Fix ZIP64Index not being set

Interestingly, Clang did not warn about this, but GCC does. (check-in: [1f4407ddf1] user: js, branch: trunk, size: 22475) [annotate] [blame] [check-ins using] [diff]

2017-08-14
00:49
[85b7d55558] part of check-in [6a474ba752] OFZIPArchive: Set CRC32 to 0, not -1

This was accidentally changed when ZIP64 write support was added. (check-in: [6a474ba752] user: js, branch: trunk, size: 22462) [annotate] [blame] [check-ins using] [diff]

00:45
[06231a6b0d] part of check-in [de6e2319ca] OFZIPArchive(Entry): A logic and a typo fix (check-in: [de6e2319ca] user: js, branch: trunk, size: 22437) [annotate] [blame] [check-ins using] [diff]
00:31
[db5f1942c0] part of check-in [def4cbbba6] OFZIPArchive: Support for writing ZIP64 archives (check-in: [def4cbbba6] user: js, branch: trunk, size: 22371) [annotate] [blame] [check-ins using] [diff]
2017-08-13
22:34
[c1fa8a1f8d] part of check-in [8ebf6ed443] OFZIPArchive(Entry): Remove ZIP64 from extra field

Treating the ZIP64 extra field as part of the entry itself makes things
a lot easier when (re)writing the central directory. (check-in: [8ebf6ed443] user: js, branch: trunk, size: 21490) [annotate] [blame] [check-ins using] [diff]

2017-08-11
18:20
[65a1aa4c22] part of check-in [e874c297ba] Fix warning with 32 bit Clang (check-in: [e874c297ba] user: js, branch: 0.90, size: 13168) [annotate] [blame] [check-ins using] [diff]
18:14
[7073d8b5b3] part of check-in [2071d164bb] Fix warnings with 32 bit Clang (check-in: [2071d164bb] user: js, branch: trunk, size: 21103) [annotate] [blame] [check-ins using] [diff]
2017-08-07
22:55
[eca8fcf711] part of check-in [f31715929b] OFZIPArchive: Only write after successful init (check-in: [f31715929b] user: js, branch: trunk, size: 21021) [annotate] [blame] [check-ins using] [diff]
2017-08-06
20:31
[aac05f3a80] part of check-in [aff4d1cf35] OFZIPArchive: Fix uncompressed + data descriptor (check-in: [aff4d1cf35] user: js, branch: 0.90, size: 13130) [annotate] [blame] [check-ins using] [diff]
20:27
[c368c2a33f] part of check-in [4f04f5be98] OFZIPArchive: Fix uncompressed + data descriptor (check-in: [4f04f5be98] user: js, branch: trunk, size: 20790) [annotate] [blame] [check-ins using] [diff]
20:06
[2160df43d2] part of check-in [e86d11f124] OFZIPArchive: Improve signedness & range checks (check-in: [e86d11f124] user: js, branch: trunk, size: 21494) [annotate] [blame] [check-ins using] [diff]
19:40
[93d7047dfd] part of check-in [4594f434e7] OFZIPArchive: Add write and append support (check-in: [4594f434e7] user: js, branch: trunk, size: 21243) [annotate] [blame] [check-ins using] [diff]
2017-08-05
18:00
[a7134be3c5] part of check-in [c404c33cf1] OFZIPArchive: Don't require an OFSeekableStream

This is now only necessary for reading and appending. (check-in: [c404c33cf1] user: js, branch: trunk, size: 14579) [annotate] [blame] [check-ins using] [diff]

17:24
[1114c696d8] part of check-in [ccf8ecbb83] OFGZIPStream: Prepare for adding write support (check-in: [ccf8ecbb83] user: js, branch: trunk, size: 14478) [annotate] [blame] [check-ins using] [diff]
12:27
[77923608cb] part of check-in [3f34a360bf] Add OFMutableTarArchiveEntry

This is in preparation for OFTarArchive write support. (check-in: [3f34a360bf] user: js, branch: trunk, size: 14326) [annotate] [blame] [check-ins using] [diff]

2017-08-02
20:04
[c549fb1fd1] part of check-in [22a6ad346c] OFZIPArchive: Prepare for adding write support (check-in: [22a6ad346c] user: js, branch: trunk, size: 14303) [annotate] [blame] [check-ins using] [diff]
2017-07-22
23:04
[8c3891b987] part of check-in [23e57c5040] OFFile: Simplify mode

This removes "b" for binary and always uses binary, as there is no good
reason to not use binary. (check-in: [23e57c5040] user: js, branch: trunk, size: 13822) [annotate] [blame] [check-ins using] [diff]

20:50
[4d9edd8589] part of check-in [c8f7b90082] Split OFDataArray into OFData and OFMutableData (check-in: [c8f7b90082] user: js, branch: trunk, size: 13824) [annotate] [blame] [check-ins using] [diff]
2017-06-10
10:00
[1d8f8c26f4] part of check-in [f56a50ee50] Rename OFDeflateStream back to OFInflateStream

There is not much point in having a bi-directional stream for Deflate
compression / decompression. (check-in: [f56a50ee50] user: js, branch: trunk, size: 13823) [annotate] [blame] [check-ins using] [diff]

2017-06-05
15:51
[4f8a23b8a4] part of check-in [f9cd4f9cab] OFStream: Don't throw when at end of stream

Instead, let reads return 0 and let writes append after the end. (check-in: [f9cd4f9cab] user: js, branch: trunk, size: 13823) [annotate] [blame] [check-ins using] [diff]

2017-05-21
21:28
[af4fea4ffc] part of check-in [6b77a5dd8b] Prefix private methods with of_ instead of OF_

This matches Apple's style. (check-in: [6b77a5dd8b] user: js, branch: trunk, size: 13832) [annotate] [blame] [check-ins using] [diff]

2017-05-13
22:38
[3ab00e0dd7] part of check-in [504e13cf00] Reduce retain + autorelease (check-in: [504e13cf00] user: js, branch: trunk, size: 13832) [annotate] [blame] [check-ins using] [diff]
19:51
[426a03f6cb] part of check-in [7e8ee9b1f9] Make Apple GCC happy (check-in: [7e8ee9b1f9] user: js, branch: trunk, size: 13855) [annotate] [blame] [check-ins using] [diff]
2017-05-08
21:37
[160928f0d5] part of check-in [469a496cd2] Add OF_DESIGNATED_INITIALIZER & OF_METHOD_FAMILY (check-in: [469a496cd2] user: js, branch: trunk, size: 13840) [annotate] [blame] [check-ins using] [diff]
2017-05-07
20:10
[df3e45938b] part of check-in [4af49a13c3] Small code style change

Casts are now written like types in variable declarations. (check-in: [4af49a13c3] user: js, branch: trunk, size: 13892) [annotate] [blame] [check-ins using] [diff]

2017-01-09
17:36
[16b7ebc50b] part of check-in [44f45c2e35] Update copyright

Forgot to add 2017, even though I already did quite some changes in
2017. (check-in: [44f45c2e35] user: js, branch: trunk, size: 13876) [annotate] [blame] [check-ins using] [diff]

2016-10-08
15:57
[1422bca77d] part of check-in [f013a6748a] OFZIPArchive: Do not compare minimum version

The minimum version in the central directory is the minimum version
required to parse the central directory entry, while the minimum version
in the local header is the minimum version required to extract the file. (check-in: [f013a6748a] user: js, branch: trunk, size: 13870) [annotate] [blame] [check-ins using] [diff]

15:57
[6a44e68a99] part of check-in [7fed52573a] OFZIPArchive: Fix ZIP64 support (check-in: [7fed52573a] user: js, branch: trunk, size: 13924) [annotate] [blame] [check-ins using] [diff]
2016-06-07
22:56
[c12f6e9a97] part of check-in [1de551cb5f] Add support for reusing OFStreams after close

Right now, this is only useful for OFTCPSocket, as this is the only
class so far not establishing the stream in the init method. However,
this adds the general infrastructure to allow reuse to all subclasses of
OFStream. (check-in: [1de551cb5f] user: js, branch: trunk, size: 13916) [annotate] [blame] [check-ins using] [diff]

2016-05-29
13:02
[f2af10f3e4] part of check-in [134a1121c7] Rename OFInflateStream back to OFDeflateStream

The reason for renaming to OFInflateStream was to have one stream for
decompression and one for compression in order to reduce memory usage if
only one of the two is needed, as the ivar layout will be smaller then.
However, it is more consistent with other stream classes to have one
stream that can handle both. The increased memory footprint of having
ivars for compression and decompression can be solved by having a
pointer to those instead. This will not incur any performance penalty,
as the pointer will be dereferenced instead of the ivars, meaning the
overhead is only getting the pointer from the ivars once. (check-in: [134a1121c7] user: js, branch: trunk, size: 13899) [annotate] [blame] [check-ins using] [diff]

2016-05-22
13:45
[5b4c2f9e03] part of check-in [080eb2f31b] Build OFZIPArchive even with --disable-files

OFZIPArchive only needs an OFSeekableStream. (check-in: [080eb2f31b] user: js, branch: trunk, size: 13899) [annotate] [blame] [check-ins using] [diff]

2016-05-06
20:39
[6b61a92ffe] part of check-in [2a2e17d8d0] Enable -Wsign-compare (check-in: [2a2e17d8d0] user: js, branch: trunk, size: 13842) [annotate] [blame] [check-ins using] [diff]
2016-04-23
19:55
[a082310943] part of check-in [7c3f557d94] Add OFGZIPStream (check-in: [7c3f557d94] user: js, branch: trunk, size: 13736) [annotate] [blame] [check-ins using] [diff]
2016-02-21
15:37
[8e1e5b444d] part of check-in [e0b9167693] Make use of C99-style for loops (check-in: [e0b9167693] user: js, branch: trunk, size: 14002) [annotate] [blame] [check-ins using] [diff]
2016-01-05
22:00
[b5e5e4f9e4] part of check-in [d3158d091f] (u)int_fast*_t -> (u)int*_t

(U)INT_FAST*_MAX is broken on Android, which makes (u)int_fast*_t
dangerous to use while it does not provide any real speed benefit. (check-in: [d3158d091f] user: js, branch: trunk, size: 14025) [annotate] [blame] [check-ins using] [diff]

2016-01-03
00:43
[3d3f1ac742] part of check-in [cec0f072f8] Update copyright

While at it, also update the mail address. (check-in: [cec0f072f8] user: js, branch: 0.8, size: 14067) [annotate] [blame] [check-ins using] [diff]

00:41
[c97bd73161] part of check-in [2a27cf3000] Update copyright

While at it, also update the mail address. (check-in: [2a27cf3000] user: js, branch: trunk, size: 14040) [annotate] [blame] [check-ins using] [diff]

2015-11-29
14:23
[217e433e7c] part of check-in [2aca549d60] Clean up class extensions

Now that we can require GCC >= 4.6, we no longer need to fall back to
using a category on old compilers. (check-in: [2aca549d60] user: js, branch: trunk, size: 14036) [annotate] [blame] [check-ins using] [diff]

11:43
[e3768699d3] part of check-in [48980f2297] Make properties a requirement and clean up code

This increases the required GCC version from 4.0 to 4.6 (exception:
Apple GCC, which already supports this with >= 4.0 starting with OS X
10.5). Since even GCC 4.6 is really old by now, there is no point in
still supporting something even older and making the code ugly because
of that. While some hardware and OS support was dropped from GCC 4.6
compared to GCC 4.0, there is nothing in there that would be an
interesting target with the exception of BeOS maybe - but a port to BeOS
can also be achieved using the Haiku support. The other dropped OSes are
mostly old versions of OSes while newer ones are still being supported
(and those newer versions of those OSes still support the same
hardware). (check-in: [48980f2297] user: js, branch: trunk, size: 14055) [annotate] [blame] [check-ins using] [diff]

2015-08-26
09:05
[a813c350e7] part of check-in [89d2a684d3] OFZIPArchive: Throw invalid format on failed seek (check-in: [89d2a684d3] user: js, branch: trunk, size: 14063) [annotate] [blame] [check-ins using] [diff]
2015-05-16
20:29
[da28dbf09c] part of check-in [2e9336b1ef] Rename OFDeflateStream -> OFInflateStream

It makes more sense to have one class for inflating and one for
deflating instead of having one that does both, as having one that does
both requires more memory per instance when only inflating or deflating
is used. (check-in: [2e9336b1ef] user: js, branch: trunk, size: 13909) [annotate] [blame] [check-ins using] [diff]

2015-05-10
21:48
[d48f1a83ef] part of check-in [85c16c3a42] OFZIPArchive_FileStream: Add _closed ivar (check-in: [85c16c3a42] user: js, branch: trunk, size: 13909) [annotate] [blame] [check-ins using] [diff]
2015-05-09
21:29
[6109b2512a] part of check-in [aa1bb213e0] OFZIPArchive: Remove OFFile requirement

Every OFSeekableStream can be used now. (check-in: [aa1bb213e0] user: js, branch: trunk, size: 13896) [annotate] [blame] [check-ins using] [diff]

2015-04-20
20:54
[ec81a35432] part of check-in [178b39b840] OFZIPArchive: Don't compare the GPBF

Some implementations set some bits only in either the Local File Header
or the Central Directory Entry, but not in both. (check-in: [178b39b840] user: js, branch: trunk, size: 13405) [annotate] [blame] [check-ins using] [diff]

2015-04-13
11:56
[5f89bfb09f] part of check-in [037a74f7e6] OFZIPArchive: Exclude bit 11 from GPBF comparison (check-in: [037a74f7e6] user: js, branch: trunk, size: 13866) [annotate] [blame] [check-ins using] [diff]
2015-04-11
11:01
[f4015d2b21] part of check-in [ff17b98ab2] OFOpenFileFailedException: Rename File -> Item (check-in: [ff17b98ab2] user: js, branch: trunk, size: 13472) [annotate] [blame] [check-ins using] [diff]
2015-02-16
08:39
[f5b578d7a5] part of check-in [62e2de30b9] Explicitly pass errno to exceptions

The old behaviour where the exception would access errno directly on
creation of the exception was very fragile. The two main problems with
it were that sometimes it would pick up an errno even though none had
been set and in other cases that when the exception was created errno
had already been overridden.

This also greatly increases errno handling on Win32, especially in
conjunction with sockets. It can still be improved further, though. (check-in: [62e2de30b9] user: js, branch: trunk, size: 13472) [annotate] [blame] [check-ins using] [diff]

2015-01-03
20:57
[31589af3b0] part of check-in [cfd374b906] Update copyright (check-in: [cfd374b906] user: js, branch: trunk, size: 13448) [annotate] [blame] [check-ins using] [diff]
20:42
[21935bfcfb] part of check-in [46b89b1c8e] Introduce and use of_offset_t instead of off_t

The reason for this is that some systems, for example Android, use
32 bits for off_t while having size related fields like st_size as
long long. (check-in: [46b89b1c8e] user: js, branch: trunk, size: 13442) [annotate] [blame] [check-ins using] [diff]

2014-06-21
21:43
[e1f5b7ea93] part of check-in [13ee56edf3] Move all macros from OFObject.h to macros.h

This means that OFObject.h imports macros.h now, making it unnecessary
to manually import macros.h in almost every file. And while at it, also
import autorelease.h in OFObject.h, so that this doesn't need to be
manually imported in almost every file as well. (check-in: [13ee56edf3] user: js, branch: trunk, size: 13366) [annotate] [blame] [check-ins using] [diff]

2014-05-26
15:41
[dff17fc4c0] part of check-in [c1d665c395] OFZIPArchiveEntry: Make more properties public (check-in: [c1d665c395] user: js, branch: trunk, size: 13410) [annotate] [blame] [check-ins using] [diff]
2014-05-25
22:58
[3ed67d1bc6] part of check-in [adf754d5fc] Move of_zip_archive_find_extra_field()

This belongs to OFZIPArchiveEntry. Consequently, it has been renamed to
of_zip_archive_entry_find_extra_field() and made public, so that it can
be used by applications that got the extra field from the
OFZIPArchiveEntry. (check-in: [adf754d5fc] user: js, branch: trunk, size: 13256) [annotate] [blame] [check-ins using] [diff]

2014-01-25
17:39
[85d6f8f249] part of check-in [8d2a5052fd] Generalize stream / socket related exceptions

This is in preparation for adding UDP sockets, as UDP sockets and TCP
sockets have no common superclass, as one is stream-oriented while the
other is packet-oriented.

Read and write exceptions are for any object now, as they are useful for
a lot more than just for streams, while the others (bind, listen, etc.)
are for any socket now (the type is id in this case, though, as there is
no common superclass). (check-in: [8d2a5052fd] user: js, branch: trunk, size: 13930) [annotate] [blame] [check-ins using] [diff]

2014-01-04
00:24
[9442194f09] part of check-in [3b97fc3cd9] Update copyright. (check-in: [3b97fc3cd9] user: js, branch: trunk, size: 13930) [annotate] [blame] [check-ins using] [diff]
2013-12-21
01:26
[a1cf6370b1] part of check-in [9e2ddb3a59] OFZIPArchive: Better handling of invalid archives. (check-in: [9e2ddb3a59] user: js, branch: trunk, size: 13924) [annotate] [blame] [check-ins using] [diff]
2013-11-24
19:21
[a531eb9595] part of check-in [f4da2cffa9] OFZIPArchive: Fix a few type mismatches. (check-in: [f4da2cffa9] user: js, branch: trunk, size: 13744) [annotate] [blame] [check-ins using] [diff]
2013-11-23
01:12
[6bc862255c] part of check-in [35dafd5c57] Add OF_INVALID_INIT_METHOD. (check-in: [35dafd5c57] user: js, branch: trunk, size: 13720) [annotate] [blame] [check-ins using] [diff]
2013-11-06
20:58
[20c9faa50f] part of check-in [be628bbb84] OFZIPArchive: Do not sort -[entries].

While sorting -[entries] reduces hard disk seeks, it allows a denial of
service by creating an archive with a huge central directory without
actual files. As usually the order in the central directory matches the
order of the actual files, this minor speed increase is not worth the
attack vector. (check-in: [be628bbb84] user: js, branch: trunk, size: 13808) [annotate] [blame] [check-ins using] [diff]

20:29
[cf62e89d89] part of check-in [7aef43d648] Add OFDeflate64Stream. (check-in: [7aef43d648] user: js, branch: trunk, size: 13826) [annotate] [blame] [check-ins using] [diff]
11:36
[180a7ad71a] part of check-in [7d11e6e4e6] OFZIPArchive: Add support for ZIP64. (check-in: [7d11e6e4e6] user: js, branch: trunk, size: 13689) [annotate] [blame] [check-ins using] [diff]
2013-10-30
17:06
[dd9b24a859] part of check-in [95f6035588] OFZIPArchive: Return entries in a sorted array. (check-in: [95f6035588] user: js, branch: trunk, size: 10121) [annotate] [blame] [check-ins using] [diff]
2013-10-29
18:00
[b1f97cb82f] part of check-in [1ce5d53f93] OFZIPArchive: Only check lower byte of minVersion.

The higher byte identifies the OS and is not helpful in the comparison,
as it's better to just try to decompress it instead of checking if we
are on the specified OS. (check-in: [1ce5d53f93] user: js, branch: trunk, size: 9924) [annotate] [blame] [check-ins using] [diff]

2013-10-10
22:18
[8bbe969b1a] part of check-in [e2ad3ceacb] OFZIPArchive: Correctly handle archive comments.

Archive comments allow up to 65535 bytes after the end of central
directory record, thus the magic bytes for the end of central directory
record are not always at end - 22. (check-in: [e2ad3ceacb] user: js, branch: trunk, size: 9897) [annotate] [blame] [check-ins using] [diff]

13:36
[0ac2251133] part of check-in [53e46a8326] OFZIPArchive: Add support for deflate.

Also adds support for data descriptors. (check-in: [53e46a8326] user: js, branch: trunk, size: 9717) [annotate] [blame] [check-ins using] [diff]

2013-09-29
16:25
[27f1943d33] part of check-in [c6a65ca7a6] Add missing includes. (check-in: [c6a65ca7a6] user: js, branch: trunk, size: 8734) [annotate] [blame] [check-ins using] [diff]
2013-08-15
19:00
[fe6bfd47af] part of check-in [1d7a1cbca0] Move private methods into private headers. (check-in: [1d7a1cbca0] user: js, branch: trunk, size: 8710) [annotate] [blame] [check-ins using] [diff]
17:55
[8fc2a5d079] part of check-in [fb8b5e652d] OFZIPArchiveEntry: Add -[description]. (check-in: [fb8b5e652d] user: js, branch: trunk, size: 8572) [annotate] [blame] [check-ins using] [diff]
2013-08-14
19:30
[01aaa2fa44] part of check-in [81f3ac43a6] Rename +[archiveWithFile:] to +[archiveWithPath:]. (check-in: [81f3ac43a6] user: js, branch: trunk, size: 8496) [annotate] [blame] [check-ins using] [diff]
13:18
[379a7cdf89] part of check-in [2168071f36] OFZIPArchive: Make meta data of files available. (check-in: [2168071f36] user: js, branch: trunk, size: 8496) [annotate] [blame] [check-ins using] [diff]
2013-08-12
21:59
Added: [f436d4f99e] part of check-in [1c78b3a4db] OFZIPArchive: Initial implementation.

Still a lot to do, see list of FIXMEs in the source. (check-in: [1c78b3a4db] user: js, branch: trunk, size: 10974) [annotate] [blame] [check-ins using]