ObjFW  History of src/OFIRI.m of 1f32e5e17c6f1a3505efee1ebe8512b9b9d584f5be0714b52c06f31a0ebebecf

History of file src/OFIRI.m at check-in 1f32e5e17c6f1a3505efee1ebe8512b9b9d584f5be0714b52c06f31a0ebebecf

2024-04-29
21:42
Properly hide private symbols file: [47f2aa9acb] check-in: [f16bccc7b3] user: js, branch: trunk, size: 31690 [annotate] [blame] [check-ins using] [diff]
2024-04-03
02:16
Change license to LGPLv3 only file: [8ff2bb9721] check-in: [7413a728a7] user: js, branch: trunk, size: 31680 [annotate] [blame] [check-ins using] [diff]
2024-03-10
18:44
OFIRI: Add methods for path extension file: [a3a7757ab9] check-in: [0ca94307e6] user: js, branch: trunk, size: 31472 [annotate] [blame] [check-ins using] [diff]
16:23
OFIRI: Add -[IRIByDeletingLastPathComponent] file: [f981acd3b0] check-in: [e832f884e6] user: js, branch: trunk, size: 30662 [annotate] [blame] [check-ins using] [diff]
2024-01-02
17:17
Update copyright file: [0bb8a821c7] check-in: [26ddd2e4e4] user: js, branch: trunk, size: 30493 [annotate] [blame] [check-ins using] [diff]
2023-08-09
09:08
Add OF_SINGLETON_METHODS file: [bb77525714] check-in: [36310f6263] user: js, branch: trunk, size: 30493 [annotate] [blame] [check-ins using] [diff]
2023-04-10
19:22
Remove OFSerialization

While the idea sounds nice that the tag name is the class, this means the
serialization includes whether something is mutable or immutable. This means
doing as much as making something immutable changes the serialization, which
can then cause issues after being deserialized. file: [fdb5d156bf] check-in: [6ce0093f8d] user: js, branch: trunk, size: 30640 [annotate] [blame] [check-ins using] [diff]

2023-01-06
09:04
Update copyright file: [ee22df9601] check-in: [8939cbdb52] user: js, branch: trunk, size: 31475 [annotate] [blame] [check-ins using] [diff]
2022-11-25
23:15
-[IRIByAddingPercentEncodingForUnicodeCharacters] file: [1f73fdc5dd] check-in: [f77acec498] user: js, branch: trunk, size: 31475 [annotate] [blame] [check-ins using] [diff]
2022-11-24
01:15
OFIRI: Disallow a few Unicode characters file: [f780c28ebe] check-in: [52344ad8bf] user: js, branch: trunk, size: 30462 [annotate] [blame] [check-ins using] [diff]
00:21
Renamed src/OFURI.m → src/OFIRI.m. Rename OFURI to OFIRI file: [24180b8108] check-in: [23272e6d43] user: js, branch: trunk, size: 29274 [annotate] [blame] [check-ins using] [diff]
2022-11-23
23:33
OFURI: Accept IRIs file: [55c91c5cfd] check-in: [03cb622525] user: js, branch: trunk, size: 29282 [annotate] [blame] [check-ins using] [diff]
2022-10-11
19:27
OFURI: Make scheme and path nonnull

This is as per the RFC, which says the scheme and path can never be
missing, while the path can be empty. file: [fd812a6a57] check-in: [3e455c4839] user: js, branch: trunk, size: 28143 [annotate] [blame] [check-ins using] [diff]

00:18
OFURI: Remove percentEncodedScheme

The scheme does not allow percent encoding. file: [57bba32cb0] check-in: [13ead1212f] user: js, branch: trunk, size: 28245 [annotate] [blame] [check-ins using] [diff]

2022-10-10
23:50
Make relative URIs behave as per RFC 3986 file: [2fc8b40e3d] check-in: [3b2697b2a7] user: js, branch: trunk, size: 28457 [annotate] [blame] [check-ins using] [diff]
19:22
OFURI: Enforce scheme starts with a letter file: [d2aca0a264] check-in: [12d95e15ae] user: js, branch: trunk, size: 27705 [annotate] [blame] [check-ins using] [diff]
2022-10-08
23:47
Move all archive URI handling to a single file file: [213596bf3e] check-in: [55858a10bb] user: js, branch: trunk, size: 27639 [annotate] [blame] [check-ins using] [diff]
2022-10-04
22:22
OF*Archive: Share +[URIForFile:inArchive:] code file: [e7dba343a1] check-in: [519c277156] user: js, branch: trunk, size: 29530 [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: [a82a35d7aa] check-in: [19bbbbd95d] user: js, branch: trunk, size: 29020 [annotate] [blame] [check-ins using] [diff]

2022-10-03
19:10
OFURI: Always parse query and fragment file: [f265de725c] check-in: [88765bceeb] user: js, branch: trunk, size: 27639 [annotate] [blame] [check-ins using] [diff]
00:39
OFURI: Rewrite parser to support URIs file: [91ee9c8850] check-in: [c75059a52f] user: js, branch: trunk, size: 27897 [annotate] [blame] [check-ins using] [diff]
2022-09-29
21:53
OFURI: Make query items an array of pairs

With a dictionary the order is lost and keys cannot exist more than
once. file: [bd23469364] check-in: [bd6dd6dd00] user: js, branch: trunk, size: 27532 [annotate] [blame] [check-ins using] [diff]

2022-09-28
21:40
Renamed src/OFURL.m → src/OFURI.m. Rename OFUR{L -> I} in preparation for URI support file: [f31f144d07] check-in: [e7ab06503c] user: js, branch: trunk, size: 27443 [annotate] [blame] [check-ins using] [diff]
2022-08-30
00:48
OFObject: Small API change file: [5340bb2772] check-in: [4ad0c363f3] user: js, branch: trunk, size: 26582 [annotate] [blame] [check-ins using] [diff]
2022-08-01
21:20
Add support for embedding files into binaries

Embedded files are available via the objfw-embedded: URL scheme. file: [54ccbf7591] check-in: [1483709ab2] user: js, branch: trunk, size: 26582 [annotate] [blame] [check-ins using] [diff]

2022-02-12
07:46
Update copyright file: [8192f78e14] check-in: [1a86b8175b] user: js, branch: trunk, size: 26448 [annotate] [blame] [check-ins using] [diff]
2021-12-05
17:30
Make GCC 4.0 happy again file: [6a00ae1e04] check-in: [57ff42efa2] user: js, branch: trunk, size: 26448 [annotate] [blame] [check-ins using] [diff]
2021-10-15
15:59
Work around buggy string overflow checker in GCC file: [73419ef6a6] check-in: [dcc3e6aab3] user: js, branch: trunk, size: 26377 [annotate] [blame] [check-ins using] [diff]
2021-04-25
19:41
OFStrdup -> OFStrDup and slightly change behavior file: [110acb1505] check-in: [fd51df7022] user: js, branch: trunk, size: 25839 [annotate] [blame] [check-ins using] [diff]
2021-04-19
21:54
Rename a few more constants file: [8f125e31a5] check-in: [458420998c] user: js, branch: new-naming-convention, size: 26107 [annotate] [blame] [check-ins using] [diff]
2021-04-18
23:36
A few more renames for consistency file: [753279e2cb] check-in: [bd7addd9e8] user: js, branch: new-naming-convention, size: 26111 [annotate] [blame] [check-ins using] [diff]
22:56
Rename all symbols marked extern file: [73a5f7c125] check-in: [e73c65a849] user: js, branch: new-naming-convention, size: 26089 [annotate] [blame] [check-ins using] [diff]
21:12
OF_RETAIN_COUNT_MAX -> OFMaxRetainCount file: [a00286cb86] check-in: [b06b86d6f9] user: js, branch: new-naming-convention, size: 26130 [annotate] [blame] [check-ins using] [diff]
20:51
Rename everything in several smaller files file: [3c6dbb0ff6] check-in: [35de667566] user: js, branch: new-naming-convention, size: 26133 [annotate] [blame] [check-ins using] [diff]
15:55
Rename all functions in macros.h file: [70324daa54] check-in: [7392685ffc] user: js, branch: new-naming-convention, size: 26133 [annotate] [blame] [check-ins using] [diff]
2021-04-17
22:45
Rename of_(re)alloc and add OFFreeMemory file: [68aae1b12e] check-in: [498074dab9] user: js, branch: new-naming-convention, size: 26166 [annotate] [blame] [check-ins using] [diff]
16:13
of_once_t -> OFOnceControl file: [a82fc80af9] check-in: [26aa88fc9b] user: js, branch: new-naming-convention, size: 26150 [annotate] [blame] [check-ins using] [diff]
14:13
Always prefix functions with the type file: [31de543f61] check-in: [eb0cfa6ff9] user: js, branch: new-naming-convention, size: 26084 [annotate] [blame] [check-ins using] [diff]
02:25
Rename remaining enums in OFString.h file: [67b8d12e14] check-in: [169692a120] user: js, branch: new-naming-convention, size: 26084 [annotate] [blame] [check-ins using] [diff]
01:32
of_unichar_t -> OFUnichar file: [4248f007cc] check-in: [2d3790870d] user: js, branch: new-naming-convention, size: 26087 [annotate] [blame] [check-ins using] [diff]
01:24
OF_NOT_FOUND -> OFNotFound file: [3ead840ecc] check-in: [83dc0fe6e5] user: js, branch: new-naming-convention, size: 26111 [annotate] [blame] [check-ins using] [diff]
00:44
of_range_t -> OFRange file: [e76bba4226] check-in: [d975c53a43] user: js, branch: new-naming-convention, size: 26115 [annotate] [blame] [check-ins using] [diff]
2021-03-07
20:25
*.m: Fold methods into one line where it fits file: [c6fcf8ea2f] check-in: [1b82d3bf4f] user: js, branch: trunk, size: 26115 [annotate] [blame] [check-ins using] [diff]
2021-01-02
22:04
Update copyright file: [a106091d83] check-in: [374e1a1bfa] user: js, branch: trunk, size: 26165 [annotate] [blame] [check-ins using] [diff]
2020-11-01
11:35
OFString: Add -[substring{From,To}Index:] file: [a1fb3bc27c] check-in: [4bbac7ab17] user: js, branch: trunk, size: 26254 [annotate] [blame] [check-ins using] [diff]
2020-10-10
14:27
OFObject: Change type of -[hash] to unsigned long

The internal hash is still 32 bit in most places, but this way, it is at
least not baked into the API and ABI and can be upgraded later, should
that ever be necessary. file: [0558fd50c5] check-in: [aeb403a1ed] user: js, branch: trunk, size: 26269 [annotate] [blame] [check-ins using] [diff]

2020-10-04
09:53
Fix missing import file: [00f085f9ce] check-in: [40fe98125b] user: js, branch: trunk, size: 26264 [annotate] [blame] [check-ins using] [diff]
01:13
OFURL: Improve nil handling for queryDictionary file: [5cd00eb456] check-in: [a847536ef2] user: js, branch: trunk, size: 26239 [annotate] [blame] [check-ins using] [diff]
2020-10-03
23:25
OFURL: Add queryDictionary property file: [529e3fc99f] check-in: [a151f9c31f] user: js, branch: trunk, size: 26119 [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: [a6ef5631a2] check-in: [25c985fec1] user: js, branch: trunk, size: 24470 [annotate] [blame] [check-ins using] [diff]

2020-08-11
19:45
OFString: Rework number parsing API

This solves the old signed vs. unsigned problem and allows for more
bases than just 8, 10 and 16, as well as auto-detection of the base (if
base is 0). file: [50000beafa] check-in: [b6ee372b98] user: js, branch: trunk, size: 24476 [annotate] [blame] [check-ins using] [diff]

2020-06-28
15:03
Use OF_DIRECT(_MEMBERS) where appropriate file: [2524e037d6] check-in: [b6cb3addd0] user: js, branch: trunk, size: 24440 [annotate] [blame] [check-ins using] [diff]
2020-05-22
02:28
OFCharacterSet: Better singleton initialization file: [71131960ae] check-in: [ca8c67fb83] user: js, branch: trunk, size: 24422 [annotate] [blame] [check-ins using] [diff]
2020-03-01
23:40
OFURL: Implement URL-{en,de}coding of IPv6 hosts file: [0cca3e3685] check-in: [c517c57c89] user: js, branch: trunk, size: 24766 [annotate] [blame] [check-ins using] [diff]
23:07
OFURL: Add support for IPv6 / square bracket hosts file: [c0961c24c8] check-in: [a99f466e3c] user: js, branch: trunk, size: 24065 [annotate] [blame] [check-ins using] [diff]
08:17
OFURL: Fix compilation with --disable-files file: [b53f774a87] check-in: [aaa6195c13] user: js, branch: trunk, size: 22884 [annotate] [blame] [check-ins using] [diff]
2020-02-29
19:44
OFURL: Move out platform-dependent parts file: [b4c5dcf040] check-in: [09fb660d54] user: js, branch: trunk, size: 22800 [annotate] [blame] [check-ins using] [diff]
2020-01-02
01:51
Update copyright file: [691df6902c] check-in: [c7f0229795] user: js, branch: trunk, size: 26065 [annotate] [blame] [check-ins using] [diff]
2019-06-17
02:33
Remove underscores from class names file: [a31da3127a] check-in: [17d57e01ff] user: js, branch: trunk, size: 26062 [annotate] [blame] [check-ins using] [diff]
2019-04-07
23:05
Add -[OFMutableURL appendPathComponent:] file: [7aef38f501] check-in: [7bf788b164] user: js, branch: trunk, size: 26102 [annotate] [blame] [check-ins using] [diff]
22:36
Improve file URL path handling on Windows/DOS file: [a34547048c] check-in: [9e556d7dca] user: js, branch: trunk, size: 27173 [annotate] [blame] [check-ins using] [diff]
19:30
Improve -[OFURL pathComponents] file: [eacf437ac9] check-in: [b1d795b650] user: js, branch: trunk, size: 26427 [annotate] [blame] [check-ins using] [diff]
2019-03-24
22:29
Add support for UNC paths on Windows file: [48639d0542] check-in: [a4b719e4e9] user: js, branch: trunk, size: 25907 [annotate] [blame] [check-ins using] [diff]
2019-03-08
00:35
Use dot syntax file: [3539c64da7] check-in: [bceb7ed4c9] user: js, branch: trunk, size: 25174 [annotate] [blame] [check-ins using] [diff]
2019-02-24
16:28
OFMutableURL: Add -[standardizePath] file: [614bfb9897] check-in: [555e18ace0] user: js, branch: trunk, size: 25304 [annotate] [blame] [check-ins using] [diff]
14:12
OFURL: Fix missing copy in -[mutableCopy] file: [eff399e1fa] check-in: [f89f6d5887] user: js, branch: trunk, size: 26529 [annotate] [blame] [check-ins using] [diff]
2019-02-03
19:19
Move a few URL methods from OFString to OFURL file: [4bf97fa647] check-in: [f19cde3a14] user: js, branch: trunk, size: 26522 [annotate] [blame] [check-ins using] [diff]
17:52
OFURL: Do not normalize in init with relative URL file: [684f4e251d] check-in: [2b13f285c5] user: js, branch: trunk, size: 25142 [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
Update copyright file: [d89b7c4c47] check-in: [0509d7a844] user: js, branch: trunk, size: 24678 [annotate] [blame] [check-ins using] [diff]
2018-08-25
19:02
Use the same path handling on Wii as on 3DS file: [cf459656fd] check-in: [4d2a22a5d9] user: js, branch: trunk, size: 24672 [annotate] [blame] [check-ins using] [diff]
2018-08-18
23:10
Path handling for Nintendo 3DS file: [3dd9d958c3] check-in: [b519963535] user: js, branch: trunk, size: 24634 [annotate] [blame] [check-ins using] [diff]
2018-06-17
02:54
Make GCC happy again file: [f9c0df659c] check-in: [abf95ba35e] user: js, branch: trunk, size: 24456 [annotate] [blame] [check-ins using] [diff]
2018-04-15
13:34
OFURL: Require files for fileSystemRepresentation file: [543fd659f7] check-in: [d7269ab32a] user: js, branch: trunk, size: 24426 [annotate] [blame] [check-ins using] [diff]
12:51
Add handling of AmigaOS paths file: [a226263679] check-in: [1c499f0728] user: js, branch: trunk, size: 24398 [annotate] [blame] [check-ins using] [diff]
2018-03-13
23:05
Treat the leading slash of a path as a component file: [c9e9081959] check-in: [a7ce7bb441] user: js, branch: trunk, size: 22942 [annotate] [blame] [check-ins using] [diff]
2018-03-11
21:59
Clean up -[OFURL initFileURLWithPath:isDirectory:] file: [6014ddabe8] check-in: [88d0ccf804] user: js, branch: trunk, size: 22939 [annotate] [blame] [check-ins using] [diff]
12:55
Remove OF_PATH_* macros

These were way too simplistic, as paths differ in more than just that on
various operating systems. file: [13457e7f1d] check-in: [156b850131] user: js, branch: trunk, size: 23298 [annotate] [blame] [check-ins using] [diff]

2018-02-25
17:16
No self = [self init…] with self-releasing @catch

When using self = [self init…], this already releases self on an
exception, so using it inside of a @try / @catch block that releases
self would lead to a double-release. file: [bb7c13caac] check-in: [81156ee75a] user: js, branch: trunk, size: 23329 [annotate] [blame] [check-ins using] [diff]

2018-02-16
22:25
Remove OF_UNAVAILABLE from two -[init] methods

These were unavailable in the immutable class, but available in the
mutable subclass. However, Clang 3.4 does not support this. file: [5197d0902a] check-in: [dae363ef82] user: js, branch: trunk, size: 23279 [annotate] [blame] [check-ins using] [diff]

2018-01-03
19:49
Update copyright notice file: [85c5197345] check-in: [7e5c81e186] user: js, branch: trunk, size: 23406 [annotate] [blame] [check-ins using] [diff]
2017-12-29
13:38
OFURL: Add -[URLByAppendingPathComponent:] file: [6dbe16477c] check-in: [409a52fd05] user: js, branch: trunk, size: 23383 [annotate] [blame] [check-ins using] [diff]
2017-11-19
21:24
-[OFURL mutableCopy]: Avoid reverification file: [d850d81c8b] check-in: [d2d5d43db7] user: js, branch: trunk, size: 21823 [annotate] [blame] [check-ins using] [diff]
2017-11-14
23:30
Fix -[OFURL initFileURLWithPath:] on Windows file: [eff43babbe] check-in: [8dd0438ada] user: js, branch: trunk, size: 21797 [annotate] [blame] [check-ins using] [diff]
22:50
OFURL: Improve -[initFileURLWithPath:]

This now doesn't use -[initWithString:relativeToURL:] anymore and
properly escapes everything. file: [18e5b35188] check-in: [e2f6ad3876] user: js, branch: trunk, size: 21514 [annotate] [blame] [check-ins using] [diff]

00:23
OFURL: Always verify the URL-encoded versions file: [dfdfaa21fd] check-in: [b2ee854268] user: js, branch: trunk, size: 21255 [annotate] [blame] [check-ins using] [diff]
2017-11-13
01:42
Fix -[OFURL fileURLWithPath:] on Windows file: [1fc14e8fff] check-in: [fde127afd9] user: js, branch: trunk, size: 18229 [annotate] [blame] [check-ins using] [diff]
01:18
Add OFURLHandler file: [7b7c6c2f3c] check-in: [31e602a476] user: js, branch: trunk, size: 17916 [annotate] [blame] [check-ins using] [diff]
2017-11-11
23:27
Small optimization for -[isEqual:] file: [4ba08a7ab6] check-in: [526feacebc] user: js, branch: trunk, size: 17938 [annotate] [blame] [check-ins using] [diff]
2017-11-06
23:01
OFURL: Store the URL-encoded version internally

This allows retrieving it how it was originally stored, which is useful
for example for query strings, as these often URL-encode allowed
characters in order to allow pairs of the form foo=bar&bar=qux. file: [674edf5266] check-in: [a15b403a11] user: js, branch: trunk, size: 17901 [annotate] [blame] [check-ins using] [diff]

2017-11-05
19:53
Make -[stringByURLEncoding] take an OFCharacterSet file: [09db0decaa] check-in: [2f555742c0] user: js, branch: trunk, size: 17780 [annotate] [blame] [check-ins using] [diff]
2017-10-31
22:06
OFURL: Add -[URLEncoded*] for encoded components file: [9f39c392cd] check-in: [03e111614e] user: js, branch: trunk, size: 13327 [annotate] [blame] [check-ins using] [diff]
21:39
OFURL: URL-encode according to RFC 3986

This also means the parameters go away and get folded into the path. file: [45850285e0] check-in: [5f7305c659] user: js, branch: trunk, size: 12877 [annotate] [blame] [check-ins using] [diff]

2017-10-29
15:23
OFURL: Properties store unencoded strings now file: [48d985e9ad] check-in: [c1c9443c1a] user: js, branch: trunk, size: 13437 [annotate] [blame] [check-ins using] [diff]
15:05
Add -[OFURL lastPathComponent] file: [4e9f7c9f9a] check-in: [eba3667137] user: js, branch: trunk, size: 12828 [annotate] [blame] [check-ins using] [diff]
13:37
Add -[OFURL pathComponents] file: [c329b07d23] check-in: [7f64141183] user: js, branch: trunk, size: 12067 [annotate] [blame] [check-ins using] [diff]
11:25
Add +[OFURL fileURLWithPath:isDirectory:] file: [47b11362db] check-in: [773997d072] user: js, branch: trunk, size: 11983 [annotate] [blame] [check-ins using] [diff]
00:41
Fix conversion between URL and path on Win32

This also adds -[OFURL fileSystemRepresentation] to correctly convert a
URL back to a path in the local file system. file: [7016e3a6f1] check-in: [b83d1414b1] user: js, branch: trunk, size: 11176 [annotate] [blame] [check-ins using] [diff]

2017-10-28
23:52
OFURL: Return a proper URL for +[fileURLWithPath:] file: [5a68687d28] check-in: [8aa7f964bc] user: js, branch: trunk, size: 10458 [annotate] [blame] [check-ins using] [diff]
21:08
Make OFURL more generic

This removes the special handling dependent on the scheme. file: [6274573b21] check-in: [0f995db06d] user: js, branch: trunk, size: 10005 [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: [bc22950fc0] check-in: [2f4e0df8be] user: js, branch: trunk, size: 10380 [annotate] [blame] [check-ins using] [diff]

2017-10-11
20:53
Fix shadowed variables and enable -Wshadow file: [2082375f0b] check-in: [00476e4430] user: js, branch: trunk, size: 10316 [annotate] [blame] [check-ins using] [diff]
2017-07-20
22:28
Split OFURL into OFURL and OFMutableURL file: [114ec293ed] check-in: [3a5570ab20] user: js, branch: trunk, size: 10313 [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: [b76d8bb1be] check-in: [4af49a13c3] user: js, branch: trunk, size: 9966 [annotate] [blame] [check-ins using] [diff]

2017-05-06
19:43
Clean up a few includes file: [9669ae9920] check-in: [cca678886f] user: js, branch: trunk, size: 9955 [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: [8108588b31] check-in: [44f45c2e35] user: js, branch: trunk, size: 9974 [annotate] [blame] [check-ins using] [diff]

2017-01-07
00:37
Add of_ascii_{to{upper,lower},is{alpha,alnum}}

These are independent of the locale and work on the ASCII character set.

Unlike the C ones, these are 8-bit safe, meaning if a character > 0x7F
is passed, is{alpha,alnum} returns false and to{upper,lower} returns the
original character. file: [cbd9a32b8b] check-in: [d9eb7b50b3] user: js, branch: trunk, size: 9968 [annotate] [blame] [check-ins using] [diff]

2016-08-21
14:00
OFURL: Do not URL decode and reencode parts

URL decoding and reencoding is not lossless: For example, if the query
was foo=bar&qux=foo%25bar, it will be decoded to foo=bar&qux=foo&bar and
then reencoded to foo=bar%25qux=foo%25bar, which is a different thing.

The only way to solve this is to let the application handle the URL
decoding and encoding according to its own rules, as those might be
different depending on the application. file: [6c7fd6999e] check-in: [516517deb3] user: js, branch: trunk, size: 9974 [annotate] [blame] [check-ins using] [diff]

2016-06-05
21:17
Always cast to unsigned char for to{upper,lower}()

This is required as passing something signed to it is an error on
NetBSD, but passing anything else than a char is undefined on Linux. file: [ad4fe54b6f] check-in: [09a0d12bae] user: js, branch: trunk, size: 10546 [annotate] [blame] [check-ins using] [diff]

2016-02-21
12:04
Add +[OFURL fileURLWithPath:] file: [bdf49c5547] check-in: [3eb411511e] user: js, branch: trunk, size: 10536 [annotate] [blame] [check-ins using] [diff]
2016-01-03
00:43
Update copyright

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

00:41
Update copyright

While at it, also update the mail address. file: [a6e52ebdfd] check-in: [2a27cf3000] user: js, branch: trunk, size: 10266 [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: [23f0ea8813] check-in: [48980f2297] user: js, branch: trunk, size: 10262 [annotate] [blame] [check-ins using] [diff]

2015-07-02
20:41
OFURL: Fix handling of scheme in -[string] file: [bd2f6100f7] check-in: [bdf4b1d37e] user: js, branch: trunk, size: 11200 [annotate] [blame] [check-ins using] [diff]
2015-06-30
20:56
OFURL: Properly handle escaping / unescaping file: [71a208e68b] check-in: [d94375547e] user: js, branch: trunk, size: 11197 [annotate] [blame] [check-ins using] [diff]
2015-01-03
20:57
Update copyright file: [a3f2325841] check-in: [cfd374b906] user: js, branch: trunk, size: 10271 [annotate] [blame] [check-ins using] [diff]
2014-07-07
22:28
OFURL: Allow all RFC 1808 compatible schemes file: [5ebb65d404] check-in: [65afbedbd4] user: js, branch: trunk, size: 10265 [annotate] [blame] [check-ins using] [diff]
00:50
OFURL: Don't include the leading "/" in path

While Cocoa includes it, RFC 1738 explicitly states that the "/" between
host / port and path is not part of the path. file: [2209074f5b] check-in: [d2487bc7e1] user: js, branch: trunk, size: 10442 [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: [bcc6187243] check-in: [13ee56edf3] user: js, branch: trunk, size: 10458 [annotate] [blame] [check-ins using] [diff]

2014-02-13
23:26
Use -std=c11 instead of -std=gnu11

Not using -std=gnu11 means _GNU_SOURCE does not get defined anymore,
therefore this commit also adds the required feature defines for glibc.

Additionally, this adds of_strdup in macros.h, as strdup is an
extension. file: [50139ad3bd] check-in: [2f5af58573] user: js, branch: trunk, size: 10502 [annotate] [blame] [check-ins using] [diff]

2014-01-04
00:24
Update copyright. file: [9604342a66] check-in: [3b97fc3cd9] user: js, branch: trunk, size: 10496 [annotate] [blame] [check-ins using] [diff]
2013-12-07
16:56
macros.h: Make sure static_assert is defined. file: [ccdd5ed7ab] check-in: [71ebf4e8fe] user: js, branch: trunk, size: 10490 [annotate] [blame] [check-ins using] [diff]
2013-06-22
12:12
Rework exceptions.

This mostly removes the argument for the class in which the exception
occurred. As backtraces were recently added for all platforms, the
passed class does not give any extra information on where the exception
occurred anymore.

This also removes a few other arguments which were not too helpful. In
the past, the idea was to pass as many arguments as possible so that it
is easier to find the origin of the exception. However, as backtraces
are a much better way to find the origin, those are not useful anymore
and just make the exception more cumbersome to use. The rule is now to
only pass arguments that might help in recovering from the exception or
provide information that is otherwise not easily accessible. file: [a580a39551] check-in: [3d16a30f41] user: js, branch: trunk, size: 10507 [annotate] [blame] [check-ins using] [diff]

2013-03-04
17:20
Replace BOOL with bool.

The only places where BOOL is left are those where they are required by
the ABI. file: [269af2cde7] check-in: [c5ef582958] user: js, branch: trunk, size: 10761 [annotate] [blame] [check-ins using] [diff]

2013-02-12
18:22
Prefix all ivars with an underscore. file: [fcf898c186] check-in: [e40729d406] user: js, branch: trunk, size: 10714 [annotate] [blame] [check-ins using] [diff]
2013-02-08
22:20
OFURL: Improve -[description].

Before, it was not clear that the object is an OFURL, which could make
debugging hard. file: [2267fdd898] check-in: [e164def279] user: js, branch: trunk, size: 10721 [annotate] [blame] [check-ins using] [diff]

2013-01-09
22:24
Update copyright. file: [4b75d2362f] check-in: [813c00ccf0] user: js, branch: trunk, size: 10657 [annotate] [blame] [check-ins using] [diff]
2012-12-26
19:55
Add -[OFString stringByStandardizing(URL)Path]. file: [0daa5e6ab9] check-in: [b98fd10000] user: js, branch: trunk, size: 10651 [annotate] [blame] [check-ins using] [diff]
2012-12-12
18:57
Small conformance fix for OFHTTPServer + OFURL. file: [f5ee6d65c8] check-in: [41480893fc] user: js, branch: trunk, size: 11428 [annotate] [blame] [check-ins using] [diff]
2012-12-11
12:12
OFURL: Add +[URL].

This also makes -[description] more robust, as with this change, it is
now possible that required parts of the URL are nil. file: [3b200a0eea] check-in: [12a4d43f67] user: js, branch: trunk, size: 11394 [annotate] [blame] [check-ins using] [diff]

2012-10-09
15:07
Make use of instancetype. file: [7c53691cc2] check-in: [fb515e8e24] user: js, branch: trunk, size: 11267 [annotate] [blame] [check-ins using] [diff]
2012-08-10
20:08
Directly use the runtime's autorelease pools.

This greatly improves performance, as it gets rid of the overhead of
OFAutoreleasePool. file: [4eed3ec6f3] check-in: [1255f3a11a] user: js, branch: trunk, size: 11239 [annotate] [blame] [check-ins using] [diff]

2012-07-12
01:28
Don't access isa directly. file: [9e27844090] check-in: [8892ae9fcc] user: js, branch: trunk, size: 11274 [annotate] [blame] [check-ins using] [diff]
2012-03-21
17:51
Always pass a char for copy to objc_setProperty(). file: [6ecf671f02] check-in: [3a983475bc] user: js, branch: trunk, size: 11196 [annotate] [blame] [check-ins using] [diff]
2012-03-12
11:54
OFArray: +[arrayWithCArray:length:] -> +[arrayWithObjects:count:].

This is required for the new array literals. file: [c16b58c0b2] check-in: [008be86a16] user: js, branch: trunk, size: 11212 [annotate] [blame] [check-ins using] [diff]

2012-01-05
00:56
Update copyright. file: [61882f6a6e] check-in: [ce70e17b38] user: js, branch: trunk, size: 11208 [annotate] [blame] [check-ins using] [diff]
2011-09-22
23:25
Exceptions are now autoreleased.

This is safe as an "exception loop" can't happen, since if allocating
an exception fails, it throws an OFAllocFailedException which is
preallocated and can always be thrown.

So, the worst case would be that an autorelease of an exception fails,
triggering an OFOutOfMemoryException for which there is no memory,
resulting in an OFAllocFailedException to be thrown. file: [d2a8a715d5] check-in: [e1e7ffa903] user: js, branch: trunk, size: 11202 [annotate] [blame] [check-ins using] [diff]

2011-09-17
19:18
Make hashes independant of endianess in OF{Float,Double}{Vector,Matrix}.

Also removes unnecessary OF_HASH_ADD_INT* macros (except
OF_HASH_ADD_INT32 which was often used to hash hashes and is now called
OF_HASH_ADD_HASH). file: [9e5eb723f2] check-in: [f3db074478] user: js, branch: trunk, size: 11154 [annotate] [blame] [check-ins using] [diff]

2011-09-12
19:57
Rename -[cString] to -[UTF8String]. file: [8b92d8f389] check-in: [e6fd39d11e] user: js, branch: trunk, size: 11119 [annotate] [blame] [check-ins using] [diff]
2011-09-09
13:35
[pool release] can never throw by convention now. file: [5655588497] check-in: [798d9e6320] user: js, branch: trunk, size: 10913 [annotate] [blame] [check-ins using] [diff]
2011-08-07
16:57
Add -[makeImmutable] to all mutable classes and use it. file: [1998367c8d] check-in: [927dbf6e7d] user: js, branch: trunk, size: 10940 [annotate] [blame] [check-ins using] [diff]
2011-07-14
23:17
Fix a memory leak in OFURL. file: [e8ba92cbd3] check-in: [971f8e1b0e] user: js, branch: 0.5, size: 10186 [annotate] [blame] [check-ins using] [diff]
23:17
Fix a memory leak in OFURL. file: [d4ad83d094] check-in: [06bbeb185a] user: js, branch: trunk, size: 11162 [annotate] [blame] [check-ins using] [diff]
2011-06-28
22:20
Use isa as class for the copy where useful. file: [221a47cb00] check-in: [6d3b3d0468] user: js, branch: trunk, size: 11168 [annotate] [blame] [check-ins using] [diff]
01:51
Change serialization format to be way more readable and shorter. file: [e46fcb96eb] check-in: [756bb26c98] user: js, branch: trunk, size: 11170 [annotate] [blame] [check-ins using] [diff]
2011-06-05
19:27
Add OFNull class. file: [83b3387d68] check-in: [183825f113] user: js, branch: trunk, size: 11275 [annotate] [blame] [check-ins using] [diff]
2011-06-04
16:02
Add OF_HASH_ADD_INT{16,32,64}. file: [7b484f195b] check-in: [871fcf6e0b] user: js, branch: trunk, size: 11274 [annotate] [blame] [check-ins using] [diff]
13:34
Remove useless casts. file: [72e6419d11] check-in: [675eda4ad3] user: js, branch: trunk, size: 11381 [annotate] [blame] [check-ins using] [diff]
13:31
Fix -[OFURL isEqual:]. file: [0accfd5d18] check-in: [d61c00e257] user: js, branch: 0.5, size: 10192 [annotate] [blame] [check-ins using] [diff]
13:29
Fix -[OFURL isEqual:]. file: [fb49e7ba43] check-in: [9d48ed225c] user: js, branch: trunk, size: 11389 [annotate] [blame] [check-ins using] [diff]
2011-06-03
15:14
Add deserialization. file: [35c5ed8137] check-in: [dca3061dfc] user: js, branch: trunk, size: 11209 [annotate] [blame] [check-ins using] [diff]
2011-05-14
12:26
Use XML for serialization.

This way, we don't need a new parser and don't use a new format. file: [8362d51987] check-in: [494dca4ae4] user: js, branch: trunk, size: 10657 [annotate] [blame] [check-ins using] [diff]

2011-05-12
18:27
Add version to serialization and add serialization to more classes. file: [267c53672b] check-in: [ace6f683f7] user: js, branch: trunk, size: 10551 [annotate] [blame] [check-ins using] [diff]
2011-05-08
22:42
Add serialization for OFURL and OFXMLElement. file: [e8aceda7df] check-in: [cb3be92fe6] user: js, branch: trunk, size: 10541 [annotate] [blame] [check-ins using] [diff]
22:17
Add -[string] to OFURL. file: [01254b0236] check-in: [925754a097] user: js, branch: trunk, size: 10240 [annotate] [blame] [check-ins using] [diff]
2011-04-22
22:46
More style improvements. file: [e94e617a72] check-in: [c9c78d86d3] user: js, branch: trunk, size: 10192 [annotate] [blame] [check-ins using] [diff]
21:59
OFURL: Do -[copy] in a try block to prevent leaks. file: [0a4862ec8c] check-in: [43f9221508] user: js, branch: 0.5, size: 10052 [annotate] [blame] [check-ins using] [diff]
2011-03-24
19:42
Get rid of OFExceptions.h. file: [ae9145fa4e] check-in: [cda44767f4] user: js, branch: trunk, size: 9984 [annotate] [blame] [check-ins using] [diff]
2011-03-11
13:02
Make it easier to generate getters and setters. file: [d363f4b1e5] check-in: [2c72efb4e7] user: js, branch: trunk, size: 9896 [annotate] [blame] [check-ins using] [diff]
2011-02-27
00:09
OFURL: Include the / in the path for http(s). file: [77a2a36083] check-in: [3d041cd4bf] user: js, branch: trunk, size: 10177 [annotate] [blame] [check-ins using] [diff]
2011-02-26
19:40
Use class swizzling as an optimization. file: [dd90f55a48] check-in: [06f539766f] user: js, branch: trunk, size: 9991 [annotate] [blame] [check-ins using] [diff]
19:00
Make isa public to allow for better class swizzling. file: [27d2646f3d] check-in: [58c07e80e4] user: js, branch: trunk, size: 9745 [annotate] [blame] [check-ins using] [diff]
2011-02-17
17:23
Add support for file:// to OFURL. file: [ef4737e3c3] check-in: [245f519a50] user: js, branch: trunk, size: 9791 [annotate] [blame] [check-ins using] [diff]
2011-02-09
12:33
Add support for relative URLs to OFURL. file: [2d664c10f0] check-in: [ddd3a6683f] user: js, branch: trunk, size: 9569 [annotate] [blame] [check-ins using] [diff]
2011-01-29
19:16
Use %@ where it is useful. file: [8d89f1d113] check-in: [d0eace5cd1] user: js, branch: trunk, size: 7121 [annotate] [blame] [check-ins using] [diff]
2011-01-15
17:59
Improve OFURL. file: [84444b80b2] check-in: [c655fa54d2] user: js, branch: trunk, size: 7203 [annotate] [blame] [check-ins using] [diff]
2011-01-14
12:22
Added: Add OFURL class. file: [5ee125a04b] check-in: [164c76c0cf] user: js, branch: trunk, size: 5535 [annotate] [blame] [check-ins using]