ObjFW  History of src/OFZIPArchive.m of d998e3c492e9b279

History of file src/OFZIPArchive.m at check-in d998e3c492e9b279

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

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

2024-02-03
11:41
Update copyright file: [1de1375858] check-in: [7324ec8590] user: js, branch: 1.0, size: 28748 [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
Update copyright file: [1f22a87e08] check-in: [26ddd2e4e4] user: js, branch: trunk, size: 28732 [annotate] [blame] [check-ins using] [diff]
2023-10-15
12:55
Make GCC happy again file: [139c2dfeb6] check-in: [94ed4fc6f0] user: js, branch: trunk, size: 28732 [annotate] [blame] [check-ins using] [diff]
12:32
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. file: [76b549ca53] check-in: [a61e0594b4] user: js, branch: trunk, size: 28718 [annotate] [blame] [check-ins using] [diff]

2023-07-26
19:05
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. file: [03f366c882] check-in: [a847357585] user: js, branch: trunk, size: 28748 [annotate] [blame] [check-ins using] [diff]

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

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

16:19
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. file: [9d548c4f33] check-in: [6527c97d03] user: js, branch: trunk, size: 24622 [annotate] [blame] [check-ins using] [diff]

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

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

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

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

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

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

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

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

2020-01-02
01:51
Update copyright file: [0b0c4f5246] check-in: [c7f0229795] user: js, branch: trunk, size: 23534 [annotate] [blame] [check-ins using] [diff]
2019-12-27
00:41
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. file: [f3370d3321] check-in: [e629dc83a9] user: js, branch: trunk, size: 23531 [annotate] [blame] [check-ins using] [diff]

2019-09-01
15:20
Use u suffix on a few constants file: [88d0400634] check-in: [b7badc68a0] user: js, branch: trunk, size: 23532 [annotate] [blame] [check-ins using] [diff]
2019-06-17
02:33
Remove underscores from class names file: [ee57bc1743] check-in: [17d57e01ff] user: js, branch: trunk, size: 23528 [annotate] [blame] [check-ins using] [diff]
2019-03-09
10:48
Several minor fixes file: [4ebe3c89c2] check-in: [c1e949a8c6] user: js, branch: trunk, size: 23541 [annotate] [blame] [check-ins using] [diff]
2019-03-08
00:35
Use dot syntax file: [ebb48a8010] check-in: [bceb7ed4c9] user: js, branch: trunk, size: 23551 [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
Update copyright file: [a406f55747] check-in: [0509d7a844] user: js, branch: trunk, size: 23576 [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: [9e27ae6fff] check-in: [8f21e8acb5] user: js, branch: trunk, size: 23570 [annotate] [blame] [check-ins using] [diff]

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

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

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

2017-08-14
00:49
OFZIPArchive: Set CRC32 to 0, not -1

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

00:45
OFZIPArchive(Entry): A logic and a typo fix file: [06231a6b0d] check-in: [de6e2319ca] user: js, branch: trunk, size: 22437 [annotate] [blame] [check-ins using] [diff]
00:31
OFZIPArchive: Support for writing ZIP64 archives file: [db5f1942c0] check-in: [def4cbbba6] user: js, branch: trunk, size: 22371 [annotate] [blame] [check-ins using] [diff]
2017-08-13
22:34
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. file: [c1fa8a1f8d] check-in: [8ebf6ed443] user: js, branch: trunk, size: 21490 [annotate] [blame] [check-ins using] [diff]

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

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

17:24
OFGZIPStream: Prepare for adding write support file: [1114c696d8] check-in: [ccf8ecbb83] user: js, branch: trunk, size: 14478 [annotate] [blame] [check-ins using] [diff]
12:27
Add OFMutableTarArchiveEntry

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

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

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

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

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

2017-06-05
15:51
OFStream: Don't throw when at end of stream

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

2017-05-21
21:28
Prefix private methods with of_ instead of OF_

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

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

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

2017-01-09
17:36
Update copyright

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

2016-10-08
15:57
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. file: [1422bca77d] check-in: [f013a6748a] user: js, branch: trunk, size: 13870 [annotate] [blame] [check-ins using] [diff]

15:57
OFZIPArchive: Fix ZIP64 support file: [6a44e68a99] check-in: [7fed52573a] user: js, branch: trunk, size: 13924 [annotate] [blame] [check-ins using] [diff]
2016-06-07
22:56
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. file: [c12f6e9a97] check-in: [1de551cb5f] user: js, branch: trunk, size: 13916 [annotate] [blame] [check-ins using] [diff]

2016-05-29
13:02
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. file: [f2af10f3e4] check-in: [134a1121c7] user: js, branch: trunk, size: 13899 [annotate] [blame] [check-ins using] [diff]

2016-05-22
13:45
Build OFZIPArchive even with --disable-files

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

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

2016-01-03
00:43
Update copyright

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

00:41
Update copyright

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

2015-11-29
14:23
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. file: [217e433e7c] check-in: [2aca549d60] user: js, branch: trunk, size: 14036 [annotate] [blame] [check-ins using] [diff]

11:43
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). file: [e3768699d3] check-in: [48980f2297] user: js, branch: trunk, size: 14055 [annotate] [blame] [check-ins using] [diff]

2015-08-26
09:05
OFZIPArchive: Throw invalid format on failed seek file: [a813c350e7] check-in: [89d2a684d3] user: js, branch: trunk, size: 14063 [annotate] [blame] [check-ins using] [diff]
2015-05-16
20:29
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. file: [da28dbf09c] check-in: [2e9336b1ef] user: js, branch: trunk, size: 13909 [annotate] [blame] [check-ins using] [diff]

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

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

2015-04-20
20:54
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. file: [ec81a35432] check-in: [178b39b840] user: js, branch: trunk, size: 13405 [annotate] [blame] [check-ins using] [diff]

2015-04-13
11:56
OFZIPArchive: Exclude bit 11 from GPBF comparison file: [5f89bfb09f] check-in: [037a74f7e6] user: js, branch: trunk, size: 13866 [annotate] [blame] [check-ins using] [diff]
2015-04-11
11:01
OFOpenFileFailedException: Rename File -> Item file: [f4015d2b21] check-in: [ff17b98ab2] user: js, branch: trunk, size: 13472 [annotate] [blame] [check-ins using] [diff]
2015-02-16
08:39
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. file: [f5b578d7a5] check-in: [62e2de30b9] user: js, branch: trunk, size: 13472 [annotate] [blame] [check-ins using] [diff]

2015-01-03
20:57
Update copyright file: [31589af3b0] check-in: [cfd374b906] user: js, branch: trunk, size: 13448 [annotate] [blame] [check-ins using] [diff]
20:42
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. file: [21935bfcfb] check-in: [46b89b1c8e] user: js, branch: trunk, size: 13442 [annotate] [blame] [check-ins using] [diff]

2014-06-21
21:43
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. file: [e1f5b7ea93] check-in: [13ee56edf3] user: js, branch: trunk, size: 13366 [annotate] [blame] [check-ins using] [diff]

2014-05-26
15:41
OFZIPArchiveEntry: Make more properties public file: [dff17fc4c0] check-in: [c1d665c395] user: js, branch: trunk, size: 13410 [annotate] [blame] [check-ins using] [diff]
2014-05-25
22:58
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. file: [3ed67d1bc6] check-in: [adf754d5fc] user: js, branch: trunk, size: 13256 [annotate] [blame] [check-ins using] [diff]

2014-01-25
17:39
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). file: [85d6f8f249] check-in: [8d2a5052fd] user: js, branch: trunk, size: 13930 [annotate] [blame] [check-ins using] [diff]

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

20:29
Add OFDeflate64Stream. file: [cf62e89d89] check-in: [7aef43d648] user: js, branch: trunk, size: 13826 [annotate] [blame] [check-ins using] [diff]
11:36
OFZIPArchive: Add support for ZIP64. file: [180a7ad71a] check-in: [7d11e6e4e6] user: js, branch: trunk, size: 13689 [annotate] [blame] [check-ins using] [diff]
2013-10-30
17:06
OFZIPArchive: Return entries in a sorted array. file: [dd9b24a859] check-in: [95f6035588] user: js, branch: trunk, size: 10121 [annotate] [blame] [check-ins using] [diff]
2013-10-29
18:00
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. file: [b1f97cb82f] check-in: [1ce5d53f93] user: js, branch: trunk, size: 9924 [annotate] [blame] [check-ins using] [diff]

2013-10-10
22:18
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. file: [8bbe969b1a] check-in: [e2ad3ceacb] user: js, branch: trunk, size: 9897 [annotate] [blame] [check-ins using] [diff]

13:36
OFZIPArchive: Add support for deflate.

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

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

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