History of file src/OFString_UTF8.m at check-in 0832fcf579df3850
2019-06-17
| ||
02:33 | Deleted: Remove underscores from class names check-in: [17d57e01ff] user: js, branch: trunk, size: 0 | |
2019-04-22
| ||
16:53 | OFString_UTF8: Improved range checks file: [c33b1359c4] check-in: [0b962df002] user: js, branch: trunk, size: 28431 [annotate] [blame] [check-ins using] [diff] | |
2019-03-08
| ||
00:35 | Use dot syntax file: [b5bfc583a1] check-in: [bceb7ed4c9] user: js, branch: trunk, size: 28407 [annotate] [blame] [check-ins using] [diff] | |
2019-01-03
| ||
19:13 | Update copyright file: [0962ed33d1] check-in: [0509d7a844] user: js, branch: trunk, size: 28461 [annotate] [blame] [check-ins using] [diff] | |
2018-03-11
| ||
00:37 |
OFString: Move path handling into a category
This is the first step to have different versions of those for different This also has the nice side-effect of not having one implementation in | |
2018-02-25
| ||
04:31 |
Reintroduce of_char{16,32}_t
There is no reliable way to check if C++ already defined those, as Clang | |
2018-01-03
| ||
19:49 | Update copyright notice file: [be8ebf571d] check-in: [7e5c81e186] user: js, branch: trunk, size: 30507 [annotate] [blame] [check-ins using] [diff] | |
2017-11-19
| ||
12:56 | Fix compilation with GCC file: [ec9ecd6e22] check-in: [615a9f2eba] user: js, branch: trunk, size: 30484 [annotate] [blame] [check-ins using] [diff] | |
12:05 |
Fix warnings introduced by OFComparing change
Since OFComparing no longer conforms to OFObject, OFObject needed to be | |
2017-11-04
| ||
21:12 | OFString: Improve freeWhenDone in case of error file: [0ee13f2fd8] check-in: [ca0621da09] user: js, branch: 0.90, size: 30441 [annotate] [blame] [check-ins using] [diff] | |
21:09 | OFString: Improve freeWhenDone in case of error file: [6dc5021b73] check-in: [9f3a4dfbc0] user: js, branch: trunk, size: 30480 [annotate] [blame] [check-ins using] [diff] | |
20:58 | OFString_UTF8: Fix BOM handling in no copy init file: [77d4090528] check-in: [1aca64c18e] user: js, branch: 0.90, size: 30357 [annotate] [blame] [check-ins using] [diff] | |
16:01 | +[stringWithUTF8StringNoCopy:length:freeWhenDone:] file: [542fa51776] check-in: [1ec122d57c] user: js, branch: trunk, size: 30396 [annotate] [blame] [check-ins using] [diff] | |
2017-10-29
| ||
00:41 |
Fix conversion between URL and path on Win32
This also adds -[OFURL fileSystemRepresentation] to correctly convert a | |
2017-10-22
| ||
15:05 | Make Apple GCC with -Wshadow happy file: [9568261c3b] check-in: [a06354b42a] user: js, branch: trunk, size: 30476 [annotate] [blame] [check-ins using] [diff] | |
14:09 | Make Apple GCC with -Wshadow happy file: [fb6ee6e76b] check-in: [31c0f5b89e] user: js, branch: 0.90, size: 30357 [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 | |
2017-09-28
| ||
23:02 | Enable -Wnullable-to-nonnull-conversion and adjust file: [c4bb148231] check-in: [2de9660312] user: js, branch: trunk, size: 30519 [annotate] [blame] [check-ins using] [diff] | |
2017-06-03
| ||
18:37 | Properly check for sys/types.h file: [62af83b584] check-in: [4ec0948b1b] user: js, branch: trunk, size: 30390 [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: [2b39181352] check-in: [6b77a5dd8b] user: js, branch: trunk, size: 30355 [annotate] [blame] [check-ins using] [diff] | |
2017-05-07
| ||
21:25 | Use char{16,32}_t instead of of_char{16,32}_t file: [b63159ccbd] check-in: [37d2a81754] user: js, branch: trunk, size: 30355 [annotate] [blame] [check-ins using] [diff] | |
20:10 |
Small code style change
Casts are now written like types in variable declarations. file: [fc310b0712] check-in: [4af49a13c3] user: js, branch: trunk, size: 30406 [annotate] [blame] [check-ins using] [diff] | |
2017-05-06
| ||
19:43 | Clean up a few includes file: [961145e2e1] check-in: [cca678886f] user: js, branch: trunk, size: 30376 [annotate] [blame] [check-ins using] [diff] | |
2017-04-02
| ||
12:13 | Use OF_PATH_CURRENT_DIRECTORY instead of @"." file: [d9922bef3f] check-in: [643985e07a] user: js, branch: trunk, size: 30395 [annotate] [blame] [check-ins using] [diff] | |
2017-02-12
| ||
13:33 | Save a few bytes on the encodings file: [4a1023ff16] check-in: [8ae231f515] user: js, branch: trunk, size: 30374 [annotate] [blame] [check-ins using] [diff] | |
2017-02-05
| ||
22:47 | Add ISO-8859-3 file: [b5d78abf98] check-in: [52e6e8aa89] user: js, branch: trunk, size: 29820 [annotate] [blame] [check-ins using] [diff] | |
21:22 | Add KOI8-U encoding file: [37fcb522a7] check-in: [2c489201b7] user: js, branch: trunk, size: 29671 [annotate] [blame] [check-ins using] [diff] | |
01:31 | Add KOI8-R encoding file: [7036f0659c] check-in: [59348cd51d] user: js, branch: trunk, size: 29538 [annotate] [blame] [check-ins using] [diff] | |
2017-01-19
| ||
23:08 |
Add support for disabling encodings
This allows building a smaller ObjFW if those are not needed. file: [652cb8ee2f] check-in: [766eedef4c] user: js, branch: trunk, size: 29405 [annotate] [blame] [check-ins using] [diff] | |
2017-01-17
| ||
03:23 | Add ISO-8859-2 file: [4623150629] check-in: [7a27ce7b0b] user: js, branch: trunk, size: 29155 [annotate] [blame] [check-ins using] [diff] | |
2017-01-15
| ||
04:32 |
Add codepage 858
This only differs from codepage 850 by a single code point. file: [f5ba43aeaa] check-in: [adbf31f2f9] user: js, branch: trunk, size: 29036 [annotate] [blame] [check-ins using] [diff] | |
2017-01-11
| ||
04:22 | Add Windows-1251 encoding file: [fe504fcb59] check-in: [0f88ccfb04] user: js, branch: trunk, size: 28911 [annotate] [blame] [check-ins using] [diff] | |
03:49 |
Use U+FFFF for invalid characters
This used to be U+FFFD, but if a character is not assigned in an | |
2017-01-10
| ||
23:23 | Add Mac OS Roman encoding file: [293372453e] check-in: [0832fcf579] user: js, branch: trunk, size: 28786 [annotate] [blame] [check-ins using] [diff] | |
21:38 | Add codepage 850 file: [fdc7ecf620] check-in: [878c25c9d7] user: js, branch: trunk, size: 28670 [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-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 | |
2016-08-29
| ||
00:05 |
configure: Add --disable-unicode-tables option
This is only useful for size-constrained systems and changes the * Case-insensitive comparisons only work as expected for ASCII * -[OFMutableString {upper,lower}] and | |
2016-07-03
| ||
19:38 | -[pathComponents]: Include drive in 1st component file: [32973681cc] check-in: [541aab7a03] user: js, branch: trunk, size: 28441 [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 | |
2016-03-13
| ||
11:19 |
Change of_string_utf8_decode() API
It now returns <= 0 on error, with negative values being the number of This can be used to detect cut off and how many bytes are missing. file: [c460dbfe91] check-in: [5e2ef97c35] user: js, branch: trunk, size: 28090 [annotate] [blame] [check-ins using] [diff] | |
2016-02-21
| ||
15:37 | Make use of C99-style for loops file: [f9779f2392] check-in: [e0b9167693] user: js, branch: trunk, size: 28082 [annotate] [blame] [check-ins using] [diff] | |
2016-01-03
| ||
00:41 |
Update copyright
While at it, also update the mail address. file: [035a617a1b] check-in: [2a27cf3000] user: js, branch: trunk, size: 28015 [annotate] [blame] [check-ins using] [diff] | |
2015-05-03
| ||
11:34 | Check <= SSIZE_MAX before assignign to ssize_t file: [30daa260be] check-in: [daf78156a7] user: js, branch: trunk, size: 28011 [annotate] [blame] [check-ins using] [diff] | |
2015-01-29
| ||
20:58 | -[OFString lastPathComponent]: Return @"" for / file: [f9a61670cf] check-in: [775d6b52a5] user: js, branch: trunk, size: 27926 [annotate] [blame] [check-ins using] [diff] | |
2015-01-03
| ||
20:57 | Update copyright file: [4d0413d200] check-in: [cfd374b906] user: js, branch: trunk, size: 27882 [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 | |
2014-04-14
| ||
00:45 |
Coding style
No functional change intended. file: [26025dccab] check-in: [9da9b2b64c] user: js, branch: trunk, size: 27919 [annotate] [blame] [check-ins using] [diff] | |
2014-01-04
| ||
00:24 | Update copyright. file: [0b123dda77] check-in: [3b97fc3cd9] user: js, branch: trunk, size: 27867 [annotate] [blame] [check-ins using] [diff] | |
2013-12-01
| ||
11:50 | Clean up the path delimiter mess. file: [cb1d0ad5b1] check-in: [00dbb47969] user: js, branch: trunk, size: 27861 [annotate] [blame] [check-ins using] [diff] | |
02:08 |
Port to DOS/DJGPP.
The port was much easier than expected. The only changes that were | |
2013-11-23
| ||
17:28 | OF(Mutable)String_UTF8: Code simplification. file: [7fb4904a02] check-in: [f177032b43] user: js, branch: trunk, size: 28570 [annotate] [blame] [check-ins using] [diff] | |
2013-08-15
| ||
19:00 | Move private methods into private headers. file: [33807e1aeb] check-in: [1d7a1cbca0] user: js, branch: trunk, size: 28880 [annotate] [blame] [check-ins using] [diff] | |
2013-08-14
| ||
19:17 |
+[stringWithPath:] -> +[pathWithComponents:].
This removes -[initWithPath:,...], so that it's finally possible to use | |
2013-08-13
| ||
10:39 | Add a few more instancetypes. file: [9860c5f0d1] check-in: [73ae6fa60f] user: js, branch: trunk, size: 30438 [annotate] [blame] [check-ins using] [diff] | |
2013-08-12
| ||
10:09 |
Add codepage 437.
This is required for ZIP files, which can use either codepage 437 or | |
10:00 | Don't store the first 128 chars of an encoding. file: [35d6df4f4a] check-in: [d36cf257fe] user: js, branch: trunk, size: 30285 [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 This also removes a few other arguments which were not too helpful. In | |
2013-03-04
| ||
17:20 |
Replace BOOL with bool.
The only places where BOOL is left are those where they are required by | |
2013-02-12
| ||
18:22 | Prefix all ivars with an underscore. file: [503640087e] check-in: [e40729d406] user: js, branch: trunk, size: 31171 [annotate] [blame] [check-ins using] [diff] | |
2013-01-23
| ||
21:52 | Never compare to @"", use length instead. file: [0615761918] check-in: [ea4a43461c] user: js, branch: trunk, size: 30918 [annotate] [blame] [check-ins using] [diff] | |
2013-01-16
| ||
14:27 | OFString: Add -[getCString:maxLength:encoding:]. file: [17c27fdf19] check-in: [7694d37135] user: js, branch: trunk, size: 30924 [annotate] [blame] [check-ins using] [diff] | |
2013-01-13
| ||
13:07 |
Add of_char{16,32}_t.
For ObjC++, these are defined to char{16,32}_t if C++11 is used. This For C11, this is not necessary, as char{16,32}_t are just typedef'd to | |
2013-01-12
| ||
17:29 |
Rename *UsingEncoding: to *WithEncoding:.
This reverts 5362941. Even though *UsingEncoding: is what Foundation uses, *WithEncoding: is | |
2013-01-11
| ||
12:41 |
OFString: Improve API for characters / UTF-32.
With this change, there is a clear separation between characters and This also fixes a few missing UTF-16 init methods in OFMutableString. file: [97c02a6c42] check-in: [50916b8dbe] user: js, branch: trunk, size: 30904 [annotate] [blame] [check-ins using] [diff] | |
12:13 | Add -[OFMutableString appendCharacters:length:]. file: [ce12e0f51c] check-in: [beb9051a10] user: js, branch: trunk, size: 29801 [annotate] [blame] [check-ins using] [diff] | |
2013-01-10
| ||
22:51 | Optimize -[OFString_UTF8 isEqual:] a little. file: [a02eabeb4e] check-in: [e03385a820] user: js, branch: trunk, size: 29899 [annotate] [blame] [check-ins using] [diff] | |
2013-01-09
| ||
22:24 | Update copyright. file: [511ae88739] check-in: [813c00ccf0] user: js, branch: trunk, size: 29676 [annotate] [blame] [check-ins using] [diff] | |
2013-01-08
| ||
12:33 | OFString: Add methods for UTF-32. file: [c7327619e7] check-in: [7cddd5f891] user: js, branch: trunk, size: 29670 [annotate] [blame] [check-ins using] [diff] | |
2012-12-30
| ||
00:22 | Fix -[initWithUTF8StringNoCopy:freeWhenDone:]. file: [0ddb5e507a] check-in: [c16e6aca56] user: js, branch: trunk, size: 28864 [annotate] [blame] [check-ins using] [diff] | |
2012-12-29
| ||
17:56 |
OFString: Improve API for Unicode strings.
* Instead of Unicode "strings", it uses the term "Unicode character | |
14:43 | Prettify some code. file: [e371dc8e8d] check-in: [374956b098] user: js, branch: trunk, size: 28920 [annotate] [blame] [check-ins using] [diff] | |
2012-12-22
| ||
15:37 | Add -[doesNotRecognizeSelector:]. file: [dfd9d65700] check-in: [917ce5754c] user: js, branch: trunk, size: 30384 [annotate] [blame] [check-ins using] [diff] | |
2012-12-16
| ||
01:15 |
Add encodings for -[cStringUsingEncoding:].
This adds ISO 8859-1 and ASCII, ISO 8859-15 and Windows-1252 will | |
2012-12-15
| ||
23:31 | OFString: Improved API for getting C strings. file: [7793b455ee] check-in: [e2f4c1283c] user: js, branch: trunk, size: 30547 [annotate] [blame] [check-ins using] [diff] | |
2012-12-09
| ||
12:31 | Fix +[OFString stringWithUTF8StringNoCopy:…]. file: [b90943c641] check-in: [b55b4ab87b] user: js, branch: trunk, size: 30643 [annotate] [blame] [check-ins using] [diff] | |
2012-10-16
| ||
14:47 |
A few more API improvements.
This should make it more future-proof, as adding new options is easier | |
2012-10-14
| ||
10:36 | More integer overflow checks. file: [b09a7e72c1] check-in: [53af033b0e] user: js, branch: trunk, size: 30585 [annotate] [blame] [check-ins using] [diff] | |
00:59 | OF_INVALID_INDEX -> OF_NOT_FOUND. file: [f11d00232a] check-in: [f38744df74] user: js, branch: trunk, size: 30236 [annotate] [blame] [check-ins using] [diff] | |
00:54 | range.start -> range.location. file: [e621285ff6] check-in: [c9433ea60d] user: js, branch: trunk, size: 30252 [annotate] [blame] [check-ins using] [diff] | |
2012-10-13
| ||
22:21 | Add -[OFString rangeOfString:options:range:]. file: [f8f277011d] check-in: [20dddc7345] user: js, branch: trunk, size: 30231 [annotate] [blame] [check-ins using] [diff] | |
21:29 | Rename s->UTF8 to s->isUTF8. file: [dd6ca8a27b] check-in: [9817eab3be] user: js, branch: trunk, size: 29674 [annotate] [blame] [check-ins using] [diff] | |
21:06 |
of_bswap* -> OF_BSWAP*.
This makes it clear that multiple evaluation of parameters is possible. file: [2e4dae0bbe] check-in: [1cb8fee5c3] user: js, branch: trunk, size: 29614 [annotate] [blame] [check-ins using] [diff] | |
20:50 | Move UTF-8 functions to OFString_UTF8.m. file: [b3064980ae] check-in: [9cfefe9c30] user: js, branch: trunk, size: 29614 [annotate] [blame] [check-ins using] [diff] | |
20:02 | indexOfFirstOccurrenceOfString -> rangeOfString. file: [4e25f0432f] check-in: [5209390938] user: js, branch: trunk, size: 26237 [annotate] [blame] [check-ins using] [diff] | |
19:30 | of_endianess_t -> of_byte_order_t. file: [134f59b75b] check-in: [255fd75828] user: js, branch: trunk, size: 26321 [annotate] [blame] [check-ins using] [diff] | |
2012-09-16
| ||
15:27 | Prefix all private methods with OF_. file: [8ace43f8fa] check-in: [c137da5e5b] user: js, branch: trunk, size: 26317 [annotate] [blame] [check-ins using] [diff] | |
2012-09-09
| ||
14:36 | OFNumber: Implement OFComparing. file: [de39f05b50] check-in: [56df9c44de] user: js, branch: trunk, size: 26325 [annotate] [blame] [check-ins using] [diff] | |
2012-09-06
| ||
19:13 | Add -[OFString initWithUTF8String:freeWhenDone:]. file: [743848703f] check-in: [3659c87c63] user: js, branch: trunk, size: 26300 [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 | |
2012-07-12
| ||
01:28 | Don't access isa directly. file: [090bb87767] check-in: [8892ae9fcc] user: js, branch: trunk, size: 25403 [annotate] [blame] [check-ins using] [diff] | |
2012-06-10
| ||
13:28 | More API improvements. file: [65dd22d751] check-in: [11d3d69a22] user: js, branch: trunk, size: 25149 [annotate] [blame] [check-ins using] [diff] | |
2012-06-06
| ||
13:47 |
Slightly change the memory management API.
Also fix a bug where OFBigDataArray would waste memory. file: [5faa6d539b] check-in: [f7576a66ce] user: js, branch: trunk, size: 25150 [annotate] [blame] [check-ins using] [diff] | |
2012-03-17
| ||
15:48 | One malloc less for creating an immutable UTF-8 string. file: [03beefc292] check-in: [0dafdc4730] user: js, branch: trunk, size: 25151 [annotate] [blame] [check-ins using] [diff] | |
2012-03-16
| ||
14:01 | One malloc less when allocating a string. file: [2441b116ae] check-in: [3005748a9d] user: js, branch: trunk, size: 24423 [annotate] [blame] [check-ins using] [diff] | |
2012-03-15
| ||
11:29 |
Greatly improve OFObject's memory handling and performance.
A linked-list is put before each memory chunk allocated instead of As allocating bigger chunks seems to be a little bit slower than smaller | |
2012-02-27
| ||
13:14 | Fix missing includes of <sys/types.h> for ssize_t. file: [6c7986d6d1] check-in: [337895d46c] user: js, branch: 0.6, size: 24579 [annotate] [blame] [check-ins using] [diff] | |
13:14 | Fix missing includes of <sys/types.h> for ssize_t. file: [df8f106867] check-in: [10e0d710ab] user: js, branch: trunk, size: 24777 [annotate] [blame] [check-ins using] [diff] | |
12:25 | Add -[OFString componentsSeparatedByString:skipEmpty:]. file: [c9c969d32c] check-in: [c007c0d4f7] user: js, branch: trunk, size: 24753 [annotate] [blame] [check-ins using] [diff] | |
2012-01-24
| ||
12:01 | Cache hashes of strings. file: [2b9e572a06] check-in: [a0d967e8dd] user: js, branch: trunk, size: 24555 [annotate] [blame] [check-ins using] [diff] | |
11:57 | Compare pointers of strings before comparing the string content. file: [53d2bab608] check-in: [af56ce47e0] user: js, branch: trunk, size: 24484 [annotate] [blame] [check-ins using] [diff] | |
2012-01-05
| ||
00:56 | Update copyright. file: [38887f119f] check-in: [ce70e17b38] user: js, branch: trunk, size: 24347 [annotate] [blame] [check-ins using] [diff] | |
2011-11-21
| ||
16:47 | Implement -[OFString_UTF8 hash] for better performance. file: [a98ac09f1e] check-in: [855de7c3a7] user: js, branch: trunk, size: 24341 [annotate] [blame] [check-ins using] [diff] | |
2011-11-20
| ||
18:41 |
Added:
Make OFString a class cluster.
It is a class cluster now, but there is still much to improve. file: [3609f3a164] check-in: [301ee63212] user: js, branch: trunk, size: 23880 [annotate] [blame] [check-ins using] | |