ObjFW  History of src/OFFileURLHandler.m of d3fb77eb9c537e78

History of file src/OFFileURLHandler.m at check-in d3fb77eb9c537e78

2024-08-23
23:10
Implement extended attributes on Solaris file: [3b38bf74b9] check-in: [72254c0777] user: js, branch: trunk, size: 53334 [annotate] [blame] [check-ins using] [diff]
2024-04-21
11:16
Don't use _wutime64 on Windows

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

2024-04-16
23:50
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. file: [d9639e50f4] check-in: [c615b62ed8] user: js, branch: trunk, size: 50258 [annotate] [blame] [check-ins using] [diff]

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

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

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

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

2024-04-01
16:01
Define _LARGEFILE64_SOURCE to 1

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

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

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

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

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

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

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

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

2020-12-21
22:22
Fix missing static file: [3e5094e795] check-in: [b70dcd58e9] user: js, branch: trunk, size: 36863 [annotate] [blame] [check-ins using] [diff]
21:29
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. file: [9a74cc5a07] check-in: [9cedc18bb3] user: js, branch: trunk, size: 36849 [annotate] [blame] [check-ins using] [diff]

19:43
OFFileURLHandler: Fix brainfart file: [76085cee3c] check-in: [c3ca6861ab] user: js, branch: trunk, size: 36761 [annotate] [blame] [check-ins using] [diff]
02:22
Further reduce usage of errno file: [c96c030929] check-in: [a208c510ff] user: js, branch: trunk, size: 36763 [annotate] [blame] [check-ins using] [diff]
00:36
Add destructors for global mutexes file: [357fd8ddb0] check-in: [68214158ee] user: js, branch: trunk, size: 36836 [annotate] [blame] [check-ins using] [diff]
2020-12-20
14:04
Fix compilation for AmigaOS 4 file: [529682cb40] check-in: [a68265627e] user: js, branch: trunk, size: 36745 [annotate] [blame] [check-ins using] [diff]
2020-11-29
02:21
Fix a few places using msec instead of usec file: [9e0a7e3741] check-in: [208285040f] user: js, branch: trunk, size: 36627 [annotate] [blame] [check-ins using] [diff]
2020-08-25
00:11
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. file: [987947edfd] check-in: [25c985fec1] user: js, branch: trunk, size: 36621 [annotate] [blame] [check-ins using] [diff]

2020-08-12
20:56
Avoid using (u)intmax_t in methods

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

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

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

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

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

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

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

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