ObjFW  History of src/OFFileIRIHandler.m of 4fbf5837fdd67067

History of the file that is called src/OFFileIRIHandler.m at check-in 4fbf5837fdd67067

2024-04-21
11:16
[ae11241b71] part of check-in [7eb995ad11] Don't use _wutime64 on Windows

It seems to be buggy in some MinGW distributions and doesn't handle DST
correctly. (check-in: [7eb995ad11] user: js, branch: trunk, size: 50113) [annotate] [blame] [check-ins using] [diff]

2024-04-16
23:50
[d9639e50f4] part of check-in [c615b62ed8] Don't use readdir_r

readdir_r can easily lead to stack overflows if the path is longer than
the space reserved for d_name in dirent. While some OSes use a length of
MAXNAMLEN + 1, others use just 1. This could be worked around by always
allocating a buffer of sizeof(struct dirent) + MAXNAMLEN (which would
work only in case MAXNAMLEN is actually the longest readdir_r can
return), but is probably not worth the risk, especially as glibc has
entirely deprecated readdir_r and it is expected to be removed from
POSIX. (check-in: [c615b62ed8] user: js, branch: trunk, size: 50258) [annotate] [blame] [check-ins using] [diff]

2024-04-14
18:55
[ef59c89349] part of check-in [51dfaf9042] OFFileIRIHandler: Fix missing variable on Haiku (check-in: [51dfaf9042] user: js, branch: trunk, size: 50568) [annotate] [blame] [check-ins using] [diff]
00:47
[f8ff31676a] part of check-in [fa3529c18b] Remove unnecessary #include (check-in: [fa3529c18b] user: js, branch: trunk, size: 50509) [annotate] [blame] [check-ins using] [diff]
2024-04-08
00:21
[0003c741c8] part of check-in [e38777bbf2] Don't depend on EXTATTR_NAMESPACE_NAMES on NetBSD

NetBSD 9 doesn't have it. (check-in: [e38777bbf2] user: js, branch: trunk, size: 50529) [annotate] [blame] [check-ins using] [diff]

2024-04-07
23:23
[cf4978d29a] part of check-in [a19dde73d4] Add support for extended attributes on FreeBSD (check-in: [a19dde73d4] user: js, branch: trunk, size: 49996) [annotate] [blame] [check-ins using] [diff]
22:05
[fa2705caf0] part of check-in [153f39636e] Add support for extended attributes on NetBSD (check-in: [153f39636e] user: js, branch: trunk, size: 49740) [annotate] [blame] [check-ins using] [diff]
2024-04-03
20:51
[ac0201bdd3] part of check-in [98e5c7dd28] OFFileIRIHandler: Fix missing retain + autorelease (check-in: [98e5c7dd28] user: js, branch: trunk, size: 45992) [annotate] [blame] [check-ins using] [diff]
17:50
[112ff9e77e] part of check-in [c88d1d3054] Add support for typed extended attributes on Haiku (check-in: [c88d1d3054] user: js, branch: trunk, size: 45890) [annotate] [blame] [check-ins using] [diff]
02:34
[218769cb2b] part of check-in [a653a058ce] Fix a typo (check-in: [a653a058ce] user: js, branch: trunk, size: 45336) [annotate] [blame] [check-ins using] [diff]
02:16
[595af81463] part of check-in [7413a728a7] Change license to LGPLv3 only (check-in: [7413a728a7] user: js, branch: trunk, size: 45335) [annotate] [blame] [check-ins using] [diff]
01:10
[f57643608d] part of check-in [6146e60fc5] Implement extended attributes on Haiku

Also disables hard links as those don't work on Haiku. (check-in: [6146e60fc5] user: js, branch: trunk, size: 45127) [annotate] [blame] [check-ins using] [diff]

2024-04-01
16:01
[b3f1e2319f] part of check-in [fba60b6967] Define _LARGEFILE64_SOURCE to 1

Just defining it isn't enough on QNX, it needs to have a value. (check-in: [fba60b6967] user: js, branch: trunk, size: 42034) [annotate] [blame] [check-ins using] [diff]

2024-03-29
13:59
[5d5723dda2] part of check-in [23cee06a0e] OFFileManager: Fix getting non-existent xattr (check-in: [23cee06a0e] user: js, branch: 1.0, size: 41984) [annotate] [blame] [check-ins using] [diff]
2024-03-17
09:41
[029e0b431e] part of check-in [0fe644ef2c] OFFileManager: Fix getting non-existent xattr (check-in: [0fe644ef2c] user: js, branch: trunk, size: 42032) [annotate] [blame] [check-ins using] [diff]
08:56
[75eba519f2] part of check-in [150b8f07af] OFFileManagerTests: Add more tests (check-in: [150b8f07af] user: js, branch: trunk, size: 41910) [annotate] [blame] [check-ins using] [diff]
2024-03-03
23:34
[7d64a7fa27] part of check-in [b66e682fc6] OFFileIRIHandler: Correctly transform exception (check-in: [b66e682fc6] user: js, branch: trunk, size: 41862) [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
[a48795d357] part of check-in [26ddd2e4e4] Update copyright (check-in: [26ddd2e4e4] user: js, branch: trunk, size: 41622) [annotate] [blame] [check-ins using] [diff]
2023-10-24
21:12
[ff186a2660] part of check-in [84caa26d26] Use GetModuleHandle where possible (check-in: [84caa26d26] user: js, branch: trunk, size: 41622) [annotate] [blame] [check-ins using] [diff]
2023-08-28
18:57
[bf82260f3f] part of check-in [77654f44d2] OFFileIRIHandler: Fix undefined behavior (check-in: [77654f44d2] user: js, branch: trunk, size: 41613) [annotate] [blame] [check-ins using] [diff]
2023-08-22
15:19
[b18e6efaea] part of check-in [140b7d93e3] -[fileExistsAtPath:]: Don't require S_ISREG (check-in: [140b7d93e3] user: js, branch: trunk, size: 41597) [annotate] [blame] [check-ins using] [diff]
2023-07-15
16:12
[624183587b] part of check-in [6d93db9f98] Add support for GNU/Hurd

Hurd does not have PATH_MAX, so different APIs need to be used on Hurd. (check-in: [6d93db9f98] user: js, branch: trunk, size: 41675) [annotate] [blame] [check-ins using] [diff]

2023-04-24
22:04
[06f45f3b90] part of check-in [0c471da638] Avoid redefinition of _LARGEFILE64_SOURCE (check-in: [0c471da638] user: js, branch: trunk, size: 40866) [annotate] [blame] [check-ins using] [diff]
2023-04-10
15:08
[67787a62da] part of check-in [abbed5c008] Work around newer amiga-gcc defining Class (check-in: [abbed5c008] user: js, branch: trunk, size: 40830) [annotate] [blame] [check-ins using] [diff]
2023-01-23
22:46
[bd2c9036f6] part of check-in [1576930485] Support for extended attributes on macOS (check-in: [1576930485] user: js, branch: trunk, size: 40786) [annotate] [blame] [check-ins using] [diff]
2023-01-22
23:01
[1c1ffcead0] part of check-in [5a553951a5] Support for removing extended attributes on Linux (check-in: [5a553951a5] user: js, branch: trunk, size: 39741) [annotate] [blame] [check-ins using] [diff]
22:43
[8c0c84267e] part of check-in [a4c6c83384] Support for setting extended attributes on Linux (check-in: [a4c6c83384] user: js, branch: trunk, size: 39106) [annotate] [blame] [check-ins using] [diff]
21:48
[36e6332bf0] part of check-in [565d2b3763] Support for reading extended attributes on Linux (check-in: [565d2b3763] user: js, branch: trunk, size: 38403) [annotate] [blame] [check-ins using] [diff]
2023-01-06
09:04
[a3dbfacaa2] part of check-in [8939cbdb52] Update copyright (check-in: [8939cbdb52] user: js, branch: trunk, size: 36620) [annotate] [blame] [check-ins using] [diff]
2022-12-24
22:04
[46b3e609f3] part of check-in [ede0671032] OFFileIRIHandler: Translate EACCES on Windows

The _utime family of functions does not work on directories on Windows, in
which case it returns a rather surprising EACCES. Translate it to EISDIR,
which is more expected. (check-in: [ede0671032] user: js, branch: trunk, size: 36620) [annotate] [blame] [check-ins using] [diff]

2022-12-04
23:01
[07c4c6e7ac] part of check-in [e76f2e482a] Include <syslimits.h> on DJGPP for PATH_MAX (check-in: [e76f2e482a] user: js, branch: trunk, size: 36400) [annotate] [blame] [check-ins using] [diff]
2022-11-24
00:21
Renamed src/OFFileURIHandler.m → src/OFFileIRIHandler.m. [b47c34a475] part of check-in [23272e6d43] Rename OFURI to OFIRI (check-in: [23272e6d43] user: js, branch: trunk, size: 36353) [annotate] [blame] [check-ins using] [diff]
2022-10-19
20:03
[d74cbf6f89] part of check-in [08c3161bde] OFOnce: Add OF_ASSUME_NONNULL_* (check-in: [08c3161bde] user: js, branch: trunk, size: 36353) [annotate] [blame] [check-ins using] [diff]
2022-09-28
21:40
Renamed src/OFFileURLHandler.m → src/OFFileURIHandler.m. [85f56ad9ce] part of check-in [e7ab06503c] Rename OFUR{L -> I} in preparation for URI support (check-in: [e7ab06503c] user: js, branch: trunk, size: 36352) [annotate] [blame] [check-ins using] [diff]
2022-09-25
14:00
[cc6f47538b] part of check-in [78032c89cb] OF{Retrieve -> Get}ItemAttributesFailedException (check-in: [78032c89cb] user: js, branch: trunk, size: 36352) [annotate] [blame] [check-ins using] [diff]
13:54
[b167887f43] part of check-in [61668023dd] Rename OFLink{ -> Item}FailedException (check-in: [61668023dd] user: js, branch: trunk, size: 36474) [annotate] [blame] [check-ins using] [diff]
2022-08-27
20:39
[9f18f4fcb5] part of check-in [51589c6496] Rename OFFileOffset -> OFStreamOffset (check-in: [51589c6496] user: js, branch: trunk, size: 36462) [annotate] [blame] [check-ins using] [diff]
2022-02-12
07:46
[50a5ea9a56] part of check-in [1a86b8175b] Update copyright (check-in: [1a86b8175b] user: js, branch: trunk, size: 36460) [annotate] [blame] [check-ins using] [diff]
2021-04-29
23:42
[b0e449d601] part of check-in [a7157045f1] Add OFFileTypeUnknown (check-in: [a7157045f1] user: js, branch: trunk, size: 36460) [annotate] [blame] [check-ins using] [diff]
2021-04-25
11:05
[451e6c48b2] part of check-in [27103855c2] A few last renames (check-in: [27103855c2] user: js, branch: new-naming-convention, size: 36390) [annotate] [blame] [check-ins using] [diff]
2021-04-17
14:19
[03b73a4a8d] part of check-in [e69db838d9] of_offset_t -> OFFileOffset (check-in: [e69db838d9] user: js, branch: new-naming-convention, size: 36392) [annotate] [blame] [check-ins using] [diff]
05:16
[46f9d28643] part of check-in [c7bdb196d4] Rename all types in OFFileManager.h (check-in: [c7bdb196d4] user: js, branch: new-naming-convention, size: 36391) [annotate] [blame] [check-ins using] [diff]
02:10
[48c2c95cb9] part of check-in [255f21fb3d] of_string_encoding_t -> OFStringEncoding (check-in: [255f21fb3d] user: js, branch: new-naming-convention, size: 36972) [annotate] [blame] [check-ins using] [diff]
00:51
[26c778d535] part of check-in [8c0d76f782] of_time_interval_t -> OFTimeInterval (check-in: [8c0d76f782] user: js, branch: new-naming-convention, size: 37012) [annotate] [blame] [check-ins using] [diff]
2021-04-04
18:46
[db7a703dd2] part of check-in [9135c5fcb8] Change -[contentsOfURLAtPath:] to return URLs

Returning strings is confusing for many as Foundation returns URLs here,
and URLs are often easier to work with during directory enumeration
anyway (no need to constantly append the current item to the base path). (check-in: [9135c5fcb8] user: js, branch: trunk, size: 37049) [annotate] [blame] [check-ins using] [diff]

2021-03-07
20:25
[5499dbdb21] part of check-in [1b82d3bf4f] *.m: Fold methods into one line where it fits (check-in: [1b82d3bf4f] user: js, branch: trunk, size: 36896) [annotate] [blame] [check-ins using] [diff]
02:36
[1adfb51735] 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: 36911) [annotate] [blame] [check-ins using] [diff]

2021-01-13
18:15
[852391ef43] part of check-in [d67734339a] Define _LARGEFILE64_SOURCE where necessary (check-in: [d67734339a] user: js, branch: trunk, size: 36930) [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:04
[e65a587713] part of check-in [374e1a1bfa] Update copyright (check-in: [374e1a1bfa] user: js, branch: trunk, size: 36901) [annotate] [blame] [check-ins using] [diff]
2020-12-22
00:50
[7c47454fd6] part of check-in [46588d658c] Don't use stat() on MorphOS

This would be another function that needs to be passed from the linklib
to the .library. (check-in: [46588d658c] user: js, branch: trunk, size: 36990) [annotate] [blame] [check-ins using] [diff]

2020-12-21
22:22
[3e5094e795] part of check-in [b70dcd58e9] Fix missing static (check-in: [b70dcd58e9] user: js, branch: trunk, size: 36863) [annotate] [blame] [check-ins using] [diff]
21:29
[9a74cc5a07] part of check-in [9cedc18bb3] Don't send messages in destructors

In our tests, we call objc_exit() using atexit(), so the runtime is
already gone by the time any destructors get called. (check-in: [9cedc18bb3] user: js, branch: trunk, size: 36849) [annotate] [blame] [check-ins using] [diff]

19:43
[76085cee3c] part of check-in [c3ca6861ab] OFFileURLHandler: Fix brainfart (check-in: [c3ca6861ab] user: js, branch: trunk, size: 36761) [annotate] [blame] [check-ins using] [diff]
02:22
[c96c030929] part of check-in [a208c510ff] Further reduce usage of errno (check-in: [a208c510ff] user: js, branch: trunk, size: 36763) [annotate] [blame] [check-ins using] [diff]
00:36
[357fd8ddb0] part of check-in [68214158ee] Add destructors for global mutexes (check-in: [68214158ee] user: js, branch: trunk, size: 36836) [annotate] [blame] [check-ins using] [diff]
2020-12-20
14:04
[529682cb40] part of check-in [a68265627e] Fix compilation for AmigaOS 4 (check-in: [a68265627e] user: js, branch: trunk, size: 36745) [annotate] [blame] [check-ins using] [diff]
2020-11-29
02:21
[9e0a7e3741] part of check-in [208285040f] Fix a few places using msec instead of usec (check-in: [208285040f] user: js, branch: trunk, size: 36627) [annotate] [blame] [check-ins using] [diff]
2020-08-25
00:11
[987947edfd] part of check-in [25c985fec1] OFNumber: Remove (u)int{8,16,32,64} methods

Since C guarantees minimum sizes for char, short, int, long and long
long, these can be used instead. (check-in: [25c985fec1] user: js, branch: trunk, size: 36621) [annotate] [blame] [check-ins using] [diff]

2020-08-12
20:56
[469f3d6619] part of check-in [d74f244ab7] Avoid using (u)intmax_t in methods

It is not guaranteed that a type encoding for it exists. (check-in: [d74f244ab7] user: js, branch: trunk, size: 36606) [annotate] [blame] [check-ins using] [diff]

2020-06-28
15:03
[b404d9c716] part of check-in [b6cb3addd0] Use OF_DIRECT(_MEMBERS) where appropriate (check-in: [b6cb3addd0] user: js, branch: trunk, size: 36597) [annotate] [blame] [check-ins using] [diff]
2020-06-16
21:46
[94bc38aa32] part of check-in [137dc2107d] Don't use utimes() on AmigaOS

It's not available on MorphOS and the implementation in libnix for
AmigaOS has incomplete error handling. (check-in: [137dc2107d] user: js, branch: trunk, size: 36567) [annotate] [blame] [check-ins using] [diff]

2020-06-01
21:02
[9591e49fd5] part of check-in [53e9c74096] OFFileURLHandler: Move things around a little (check-in: [53e9c74096] user: js, branch: set-mtime, size: 36294) [annotate] [blame] [check-ins using] [diff]
19:09
[07cc67658d] part of check-in [c6b128a2f9] OFFileURLHandler: Support setting atime and mtime (check-in: [c6b128a2f9] user: js, branch: set-mtime, size: 36430) [annotate] [blame] [check-ins using] [diff]
18:46
[89f5c5d688] part of check-in [cf233b2d5b] OFFileURLHandler: Support setting mtime on Win98 (check-in: [cf233b2d5b] user: js, branch: set-mtime, size: 35389) [annotate] [blame] [check-ins using] [diff]
18:24
[8f66089176] part of check-in [1fedd3e87a] OFFileURLHandler: Weakly link _wutime64

This also adds a fallback to _wutime if _wutime64 is unavailable. (check-in: [1fedd3e87a] user: js, branch: set-mtime, size: 35221) [annotate] [blame] [check-ins using] [diff]

17:55
[605a683718] part of check-in [05da423cc9] OFFileURLHandler: Support setting mtime on Windows (check-in: [05da423cc9] user: js, branch: set-mtime, size: 34453) [annotate] [blame] [check-ins using] [diff]
17:16
[1c67864bc7] part of check-in [1273a3a39a] OFFileURLHandler: Add support for setting mtime (check-in: [1273a3a39a] user: js, branch: set-mtime, size: 34027) [annotate] [blame] [check-ins using] [diff]
2020-05-17
14:08
[b6ef19d4e0] part of check-in [494acfb3e0] Add support for non-Unicode Windows in all classes (check-in: [494acfb3e0] user: js, branch: trunk, size: 33177) [annotate] [blame] [check-ins using] [diff]
2020-05-16
17:33
[3d6aca4aa4] part of check-in [f803e7fa63] OFFileURLHandler: Weakly link CreateHardLinkW() (check-in: [f803e7fa63] user: js, branch: trunk, size: 31445) [annotate] [blame] [check-ins using] [diff]
2020-01-02
01:51
[f538dd0518] part of check-in [c7f0229795] Update copyright (check-in: [c7f0229795] user: js, branch: trunk, size: 31071) [annotate] [blame] [check-ins using] [diff]
2019-12-09
00:49
[ad06f1fab8] part of check-in [f39368efd8] Fix compilation on FreeBSD (check-in: [f39368efd8] user: js, branch: trunk, size: 31068) [annotate] [blame] [check-ins using] [diff]
2019-08-10
02:06
[4a5233a57f] part of check-in [3292a6fdbc] Clean up the AmigaOS 4 library mess (check-in: [3292a6fdbc] user: js, branch: trunk, size: 31079) [annotate] [blame] [check-ins using] [diff]
2019-08-02
12:23
[a3ec7d4d97] part of check-in [fd58565e71] OFFileURLHandler: Fix #ifdef mismatch (check-in: [fd58565e71] user: js, branch: trunk, size: 32291) [annotate] [blame] [check-ins using] [diff]
2019-07-28
09:27
[1d7d83199f] part of check-in [1cf09c3b58] Replace custom code for MorphOS with stat()

Newer MorphOS versions properly take the time zone into account to get a
proper UNIX timestamp. (check-in: [1cf09c3b58] user: js, branch: trunk, size: 32281) [annotate] [blame] [check-ins using] [diff]

2019-06-17
02:33
Added: [6199066dbb] part of check-in [17d57e01ff] Remove underscores from class names (check-in: [17d57e01ff] user: js, branch: trunk, size: 32408) [annotate] [blame] [check-ins using]