ObjFW  History of src/OFZIPArchive.h of fabf1c69849d572d

History of file src/OFZIPArchive.h at check-in fabf1c69849d572d

2024-08-17
09:51
Move private functions into private headers file: [d5eb7b3510] check-in: [b829f3e798] user: js, branch: trunk, size: 8778 [annotate] [blame] [check-ins using] [diff]
2024-06-17
21:08
Always use <ObjFW/ObjFW.h> in documentation file: [8d9ab50d89] check-in: [164f2fb4bf] user: js, branch: trunk, size: 9090 [annotate] [blame] [check-ins using] [diff]
2024-04-29
21:42
Properly hide private symbols file: [e571bce84b] check-in: [f16bccc7b3] user: js, branch: trunk, size: 9104 [annotate] [blame] [check-ins using] [diff]
2024-04-03
02:16
Change license to LGPLv3 only file: [f4b92af793] check-in: [7413a728a7] user: js, branch: trunk, size: 9060 [annotate] [blame] [check-ins using] [diff]
2024-02-27
20:21
Minor documentation fix file: [29f3ae5f0c] check-in: [402b0a26e6] user: js, branch: trunk, size: 8852 [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
Update copyright file: [0e8d7ea161] check-in: [26ddd2e4e4] user: js, branch: trunk, size: 8854 [annotate] [blame] [check-ins using] [diff]
2023-07-25
21:21
OFZIPArchive: Handle files spanning multiple parts file: [a8992114f0] check-in: [d6f5e2abc5] user: js, branch: trunk, size: 8854 [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: [11e4bf42cf] check-in: [630ea6bc5a] user: js, branch: trunk, size: 8844 [annotate] [blame] [check-ins using] [diff]

2023-03-18
22:43
OFZIPArchive: Only use data descriptor if needed file: [82b11667ec] check-in: [89a51dab69] user: js, branch: trunk, size: 7844 [annotate] [blame] [check-ins using] [diff]
2023-01-06
09:04
Update copyright file: [3c9f652c27] check-in: [8939cbdb52] user: js, branch: trunk, size: 7832 [annotate] [blame] [check-ins using] [diff]
2022-12-04
11:11
Fix several Doxygen warnings file: [a6ac88ccb1] check-in: [b76008cee0] user: js, branch: trunk, size: 7832 [annotate] [blame] [check-ins using] [diff]
2022-11-24
00:21
Rename OFURI to OFIRI file: [4188dbeefa] check-in: [23272e6d43] user: js, branch: trunk, size: 7776 [annotate] [blame] [check-ins using] [diff]
2022-10-20
13:16
Document more exceptions file: [b8f3f259b0] check-in: [9cc462339e] user: js, branch: trunk, size: 7774 [annotate] [blame] [check-ins using] [diff]
2022-10-11
00:28
+[URIForFile{ -> Path}:inArchive{ -> WithURI}:] file: [f20f6f1fc0] check-in: [a8bc0b31d0] user: js, branch: trunk, size: 6508 [annotate] [blame] [check-ins using] [diff]
2022-10-09
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: [2297e4dbb2] check-in: [6527c97d03] user: js, branch: trunk, size: 6505 [annotate] [blame] [check-ins using] [diff]

2022-10-04
21:33
Add +[OFZIPArchive URIForFile:inArchive:]

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

2022-09-28
21:40
Rename OFUR{L -> I} in preparation for URI support file: [56eecfe29a] check-in: [e7ab06503c] user: js, branch: trunk, size: 6052 [annotate] [blame] [check-ins using] [diff]
2022-08-15
23:02
OF{LHA,Tar,ZIP}Archive: Use URL instead of path file: [b2dd9ca588] check-in: [fee2316eca] user: js, branch: trunk, size: 6052 [annotate] [blame] [check-ins using] [diff]
2022-02-12
07:46
Update copyright file: [cd08e80056] check-in: [1a86b8175b] user: js, branch: trunk, size: 6122 [annotate] [blame] [check-ins using] [diff]
2021-04-28
20:56
OF{LHA,ZIP}Archive: Make mode enum private file: [3dde37049e] check-in: [fc4697adbf] user: js, branch: trunk, size: 6122 [annotate] [blame] [check-ins using] [diff]
2021-04-18
22:56
Rename all symbols marked extern file: [35e140687b] check-in: [e73c65a849] user: js, branch: new-naming-convention, size: 6192 [annotate] [blame] [check-ins using] [diff]
2021-04-17
18:36
Rename all remaining enums file: [12eebcf96b] check-in: [aa74e85220] user: js, branch: new-naming-convention, size: 5924 [annotate] [blame] [check-ins using] [diff]
2021-03-07
15:07
*.h: Fold methods into one line where it fits file: [6e903727fb] check-in: [1948e7e972] user: js, branch: trunk, size: 5936 [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:04
Update copyright file: [c179867587] check-in: [374e1a1bfa] user: js, branch: trunk, size: 5953 [annotate] [blame] [check-ins using] [diff]
2020-10-03
11:35
Use /** */ instead of /*! */ for documentation file: [e60923cb94] check-in: [163a4a5a2e] user: js, branch: trunk, size: 6042 [annotate] [blame] [check-ins using] [diff]
2020-09-27
03:08
Work around bugs in Apple GCC 4.0.1

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

2020-01-02
01:51
Update copyright file: [3f137fd732] check-in: [c7f0229795] user: js, branch: trunk, size: 5804 [annotate] [blame] [check-ins using] [diff]
2019-09-29
19:35
Either restrict subclassing or reserve ivar space

This allows ABI stability with the fragile ABI. file: [f47223fd79] check-in: [496695d778] user: js, branch: trunk, size: 5801 [annotate] [blame] [check-ins using] [diff]

2019-03-08
00:35
Use dot syntax file: [4b0bcbe6e5] check-in: [bceb7ed4c9] user: js, branch: trunk, size: 5775 [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
Update copyright file: [56b243376c] check-in: [0509d7a844] user: js, branch: trunk, size: 5809 [annotate] [blame] [check-ins using] [diff]
2018-01-03
19:49
Update copyright notice file: [81199c3891] check-in: [7e5c81e186] user: js, branch: trunk, size: 5803 [annotate] [blame] [check-ins using] [diff]
2017-11-18
18:50
Documentation: Use @brief for all properties file: [5fa883d497] check-in: [cc3ad3ddd3] user: js, branch: trunk, size: 5780 [annotate] [blame] [check-ins using] [diff]
2017-10-29
21:58
Convert methods to properties where appropriate

This improves Swift compatibility. file: [29c18aa319] check-in: [f3ccf14461] user: js, branch: trunk, size: 5764 [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: [f753feb424] check-in: [2f4e0df8be] user: js, branch: trunk, size: 5828 [annotate] [blame] [check-ins using] [diff]

2017-09-26
22:01
Many nullability fixes file: [c1d40e93ed] check-in: [319709fff1] user: js, branch: 0.90, size: 3626 [annotate] [blame] [check-ins using] [diff]
21:53
Many nullability fixes file: [8859760d81] check-in: [52011fbfd6] user: js, branch: trunk, size: 5786 [annotate] [blame] [check-ins using] [diff]
2017-08-11
22:26
Always have retain / copy before nonatomic file: [0c8af20565] check-in: [9db36c14b5] user: js, branch: trunk, size: 5766 [annotate] [blame] [check-ins using] [diff]
2017-08-06
19:40
OFZIPArchive: Add write and append support file: [d9e0114a00] check-in: [4594f434e7] user: js, branch: trunk, size: 5766 [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: [b0cecbd912] check-in: [c404c33cf1] user: js, branch: trunk, size: 4634 [annotate] [blame] [check-ins using] [diff]

15:22
OFTarArchive: Add write and append support file: [fba8310c32] check-in: [0c5035dd3f] user: js, branch: trunk, size: 4563 [annotate] [blame] [check-ins using] [diff]
2017-08-02
20:04
OFZIPArchive: Prepare for adding write support file: [86ef82b330] check-in: [22a6ad346c] user: js, branch: trunk, size: 4551 [annotate] [blame] [check-ins using] [diff]
2017-06-05
18:56
Doxyfile: Add missing defines file: [b61ed08fb0] check-in: [4b6dfe02f2] user: js, branch: trunk, size: 3606 [annotate] [blame] [check-ins using] [diff]
2017-05-08
21:37
Add OF_DESIGNATED_INITIALIZER & OF_METHOD_FAMILY file: [e7781533c2] check-in: [469a496cd2] user: js, branch: trunk, size: 3629 [annotate] [blame] [check-ins using] [diff]
2017-05-07
23:14
Add OF_UNAVAILABLE file: [dcc2238569] check-in: [16c05e87e1] user: js, branch: trunk, size: 3603 [annotate] [blame] [check-ins using] [diff]
20:10
Small code style change

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

2017-04-30
13:35
Use nonatomic for properties and clean up

This changes retaining behavior, meaning properties are not returned
retained and autoreleased anymore, so a property returned from a getter
now needs to be manually retained and autoreleased before calling the
setter. However, this is rarely the case and not using atomic improves
performance. file: [f0d277203d] check-in: [0a73af49f0] user: js, branch: trunk, size: 3568 [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: [5949a379de] check-in: [44f45c2e35] user: js, branch: trunk, size: 3563 [annotate] [blame] [check-ins using] [diff]

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

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

2016-05-06
20:39
Enable -Wsign-compare file: [6e5b0f1086] check-in: [2a2e17d8d0] user: js, branch: trunk, size: 3501 [annotate] [blame] [check-ins using] [diff]
2016-01-03
00:43
Update copyright

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

00:41
Update copyright

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

2015-11-29
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: [7e5e23797a] check-in: [48980f2297] user: js, branch: trunk, size: 3488 [annotate] [blame] [check-ins using] [diff]

2015-06-13
22:26
Add support for and use the new nullability file: [d2c0dfdef8] check-in: [9e76144ef8] user: js, branch: trunk, size: 3676 [annotate] [blame] [check-ins using] [diff]
2015-06-12
23:59
Add support for and use the new ObjC generics file: [3ce281f546] check-in: [5329fe7c1a] user: js, branch: trunk, size: 3628 [annotate] [blame] [check-ins using] [diff]
2015-05-09
21:29
OFZIPArchive: Remove OFFile requirement

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

2015-01-03
20:57
Update copyright file: [6f0db8ecd4] check-in: [cfd374b906] user: js, branch: trunk, size: 2535 [annotate] [blame] [check-ins using] [diff]
2014-02-18
18:50
Documentation: Show correct imports file: [cbea88e7e9] check-in: [246cfe0807] user: js, branch: trunk, size: 2529 [annotate] [blame] [check-ins using] [diff]
2014-01-04
00:24
Update copyright. file: [675837bb30] check-in: [3b97fc3cd9] user: js, branch: trunk, size: 2467 [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: [471313a18b] check-in: [be628bbb84] user: js, branch: trunk, size: 2461 [annotate] [blame] [check-ins using] [diff]

11:36
OFZIPArchive: Add support for ZIP64. file: [321e6d1503] check-in: [7d11e6e4e6] user: js, branch: trunk, size: 2502 [annotate] [blame] [check-ins using] [diff]
2013-10-30
17:06
OFZIPArchive: Return entries in a sorted array. file: [71d41cfc2a] check-in: [95f6035588] user: js, branch: trunk, size: 2502 [annotate] [blame] [check-ins using] [diff]
2013-10-10
13:36
OFZIPArchive: Add support for deflate.

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

2013-08-15
19:00
Move private methods into private headers. file: [2b8cc476e1] check-in: [1d7a1cbca0] user: js, branch: trunk, size: 2282 [annotate] [blame] [check-ins using] [diff]
2013-08-14
19:30
Rename +[archiveWithFile:] to +[archiveWithPath:]. file: [da67b3e3b1] check-in: [81f3ac43a6] user: js, branch: trunk, size: 2331 [annotate] [blame] [check-ins using] [diff]
13:18
OFZIPArchive: Make meta data of files available. file: [2c343cc625] check-in: [2168071f36] user: js, branch: trunk, size: 2331 [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: [58ddf733c1] check-in: [1c78b3a4db] user: js, branch: trunk, size: 2271 [annotate] [blame] [check-ins using]