ObjFW  All files named "src/OFString_UTF8.m"

History for src/OFString_UTF8.m

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
[c33b1359c4] part of check-in [0b962df002] OFString_UTF8: Improved range checks (check-in: [0b962df002] user: js, branch: trunk, size: 28431) [annotate] [blame] [check-ins using] [diff]
2019-03-08
00:35
[b5bfc583a1] part of check-in [bceb7ed4c9] Use dot syntax (check-in: [bceb7ed4c9] user: js, branch: trunk, size: 28407) [annotate] [blame] [check-ins using] [diff]
2019-01-03
19:13
[0962ed33d1] part of check-in [0509d7a844] Update copyright (check-in: [0509d7a844] user: js, branch: trunk, size: 28461) [annotate] [blame] [check-ins using] [diff]
2018-03-11
00:37
[ec2d5729ba] part of check-in [7a488c3062] OFString: Move path handling into a category

This is the first step to have different versions of those for different
operating systems, rather than #ifdefs everywhere.

This also has the nice side-effect of not having one implementation in
OFString and another one in OFString_UTF8 anymore. The one in OFString
was a generic version, while the one in OFString_UTF8 was one optimized
for UTF-8 strings. Now only the version optimized for UTF-8 strings
exists, as this is by far the most common string implementation used,
and the overhead of converting from something else to UTF-8 is not more
than converting to UTF-32. (check-in: [7a488c3062] user: js, branch: trunk, size: 28455) [annotate] [blame] [check-ins using] [diff]

2018-02-25
04:31
[d6a602d281] part of check-in [505137f25f] Reintroduce of_char{16,32}_t

There is no reliable way to check if C++ already defined those, as Clang
now defines char{16,32}_t even when it is not in C++ 11 mode. So we
cannot check if we are not in C++ 11 and then define them and otherwise
rely on the C++ 11 types. (check-in: [505137f25f] user: js, branch: trunk, size: 30558) [annotate] [blame] [check-ins using] [diff]

2018-01-03
19:49
[be8ebf571d] part of check-in [7e5c81e186] Update copyright notice (check-in: [7e5c81e186] user: js, branch: trunk, size: 30507) [annotate] [blame] [check-ins using] [diff]
2017-11-19
12:56
[ec9ecd6e22] part of check-in [615a9f2eba] Fix compilation with GCC (check-in: [615a9f2eba] user: js, branch: trunk, size: 30484) [annotate] [blame] [check-ins using] [diff]
12:05
[879030fae2] part of check-in [11f24addd7] Fix warnings introduced by OFComparing change

Since OFComparing no longer conforms to OFObject, OFObject needed to be
added at a few places. (check-in: [11f24addd7] user: js, branch: trunk, size: 30490) [annotate] [blame] [check-ins using] [diff]

2017-11-04
21:12
[0ee13f2fd8] part of check-in [ca0621da09] OFString: Improve freeWhenDone in case of error (check-in: [ca0621da09] user: js, branch: 0.90, size: 30441) [annotate] [blame] [check-ins using] [diff]
21:09
[6dc5021b73] part of check-in [9f3a4dfbc0] OFString: Improve freeWhenDone in case of error (check-in: [9f3a4dfbc0] user: js, branch: trunk, size: 30480) [annotate] [blame] [check-ins using] [diff]
20:58
[77d4090528] part of check-in [1aca64c18e] OFString_UTF8: Fix BOM handling in no copy init (check-in: [1aca64c18e] user: js, branch: 0.90, size: 30357) [annotate] [blame] [check-ins using] [diff]
16:01
[542fa51776] part of check-in [1ec122d57c] +[stringWithUTF8StringNoCopy:length:freeWhenDone:] (check-in: [1ec122d57c] user: js, branch: trunk, size: 30396) [annotate] [blame] [check-ins using] [diff]
2017-10-29
00:41
[c30817026a] part of check-in [b83d1414b1] 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. (check-in: [b83d1414b1] user: js, branch: trunk, size: 30176) [annotate] [blame] [check-ins using] [diff]

2017-10-22
15:05
[9568261c3b] part of check-in [a06354b42a] Make Apple GCC with -Wshadow happy (check-in: [a06354b42a] user: js, branch: trunk, size: 30476) [annotate] [blame] [check-ins using] [diff]
14:09
[fb6ee6e76b] part of check-in [31c0f5b89e] Make Apple GCC with -Wshadow happy (check-in: [31c0f5b89e] user: js, branch: 0.90, size: 30357) [annotate] [blame] [check-ins using] [diff]
2017-10-17
00:33
[3425587555] part of check-in [2f4e0df8be] 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. (check-in: [2f4e0df8be] user: js, branch: trunk, size: 30509) [annotate] [blame] [check-ins using] [diff]

2017-09-28
23:02
[c4bb148231] part of check-in [2de9660312] Enable -Wnullable-to-nonnull-conversion and adjust (check-in: [2de9660312] user: js, branch: trunk, size: 30519) [annotate] [blame] [check-ins using] [diff]
2017-06-03
18:37
[62af83b584] part of check-in [4ec0948b1b] Properly check for sys/types.h (check-in: [4ec0948b1b] user: js, branch: trunk, size: 30390) [annotate] [blame] [check-ins using] [diff]
2017-05-21
21:28
[2b39181352] part of check-in [6b77a5dd8b] Prefix private methods with of_ instead of OF_

This matches Apple's style. (check-in: [6b77a5dd8b] user: js, branch: trunk, size: 30355) [annotate] [blame] [check-ins using] [diff]

2017-05-07
21:25
[b63159ccbd] part of check-in [37d2a81754] Use char{16,32}_t instead of of_char{16,32}_t (check-in: [37d2a81754] user: js, branch: trunk, size: 30355) [annotate] [blame] [check-ins using] [diff]
20:10
[fc310b0712] part of check-in [4af49a13c3] Small code style change

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

2017-05-06
19:43
[961145e2e1] part of check-in [cca678886f] Clean up a few includes (check-in: [cca678886f] user: js, branch: trunk, size: 30376) [annotate] [blame] [check-ins using] [diff]
2017-04-02
12:13
[d9922bef3f] part of check-in [643985e07a] Use OF_PATH_CURRENT_DIRECTORY instead of @"." (check-in: [643985e07a] user: js, branch: trunk, size: 30395) [annotate] [blame] [check-ins using] [diff]
2017-02-12
13:33
[4a1023ff16] part of check-in [8ae231f515] Save a few bytes on the encodings (check-in: [8ae231f515] user: js, branch: trunk, size: 30374) [annotate] [blame] [check-ins using] [diff]
2017-02-05
22:47
[b5d78abf98] part of check-in [52e6e8aa89] Add ISO-8859-3 (check-in: [52e6e8aa89] user: js, branch: trunk, size: 29820) [annotate] [blame] [check-ins using] [diff]
21:22
[37fcb522a7] part of check-in [2c489201b7] Add KOI8-U encoding (check-in: [2c489201b7] user: js, branch: trunk, size: 29671) [annotate] [blame] [check-ins using] [diff]
01:31
[7036f0659c] part of check-in [59348cd51d] Add KOI8-R encoding (check-in: [59348cd51d] user: js, branch: trunk, size: 29538) [annotate] [blame] [check-ins using] [diff]
2017-01-19
23:08
[652cb8ee2f] part of check-in [766eedef4c] Add support for disabling encodings

This allows building a smaller ObjFW if those are not needed. (check-in: [766eedef4c] user: js, branch: trunk, size: 29405) [annotate] [blame] [check-ins using] [diff]

2017-01-17
03:23
[4623150629] part of check-in [7a27ce7b0b] Add ISO-8859-2 (check-in: [7a27ce7b0b] user: js, branch: trunk, size: 29155) [annotate] [blame] [check-ins using] [diff]
2017-01-15
04:32
[f5ba43aeaa] part of check-in [adbf31f2f9] Add codepage 858

This only differs from codepage 850 by a single code point. (check-in: [adbf31f2f9] user: js, branch: trunk, size: 29036) [annotate] [blame] [check-ins using] [diff]

2017-01-11
04:22
[fe504fcb59] part of check-in [0f88ccfb04] Add Windows-1251 encoding (check-in: [0f88ccfb04] user: js, branch: trunk, size: 28911) [annotate] [blame] [check-ins using] [diff]
03:49
[38f6296657] part of check-in [a9f85ba3b1] Use U+FFFF for invalid characters

This used to be U+FFFD, but if a character is not assigned in an
encoding, U+FFFF is a better match. (check-in: [a9f85ba3b1] user: js, branch: trunk, size: 28786) [annotate] [blame] [check-ins using] [diff]

2017-01-10
23:23
[293372453e] part of check-in [0832fcf579] Add Mac OS Roman encoding (check-in: [0832fcf579] user: js, branch: trunk, size: 28786) [annotate] [blame] [check-ins using] [diff]
21:38
[fdc7ecf620] part of check-in [878c25c9d7] Add codepage 850 (check-in: [878c25c9d7] user: js, branch: trunk, size: 28670) [annotate] [blame] [check-ins using] [diff]
2017-01-09
17:36
[432a4769a5] part of check-in [44f45c2e35] Update copyright

Forgot to add 2017, even though I already did quite some changes in
2017. (check-in: [44f45c2e35] user: js, branch: trunk, size: 28545) [annotate] [blame] [check-ins using] [diff]

2017-01-07
00:37
[b0d3c841b5] part of check-in [d9eb7b50b3] 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. (check-in: [d9eb7b50b3] user: js, branch: trunk, size: 28539) [annotate] [blame] [check-ins using] [diff]

2016-08-29
00:05
[539d29c205] part of check-in [b7b33247d6] configure: Add --disable-unicode-tables option

This is only useful for size-constrained systems and changes the
behavior as follows:

* Case-insensitive comparisons only work as expected for ASCII
characters. This means that while a and A compare equal, ä and Ä do
not.

* -[OFMutableString {upper,lower}] and
-[OFString {upper,lower}caseString] only work on ASCII characters;
all other characters are left as they are. This means that the upper
version of a is A, but the upper version of ä is still ä (and vice
versa for lower). (check-in: [b7b33247d6] user: js, branch: trunk, size: 28512) [annotate] [blame] [check-ins using] [diff]

2016-07-03
19:38
[32973681cc] part of check-in [541aab7a03] -[pathComponents]: Include drive in 1st component (check-in: [541aab7a03] user: js, branch: trunk, size: 28441) [annotate] [blame] [check-ins using] [diff]
2016-06-05
21:17
[f214cc2fb6] part of check-in [09a0d12bae] 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. (check-in: [09a0d12bae] user: js, branch: trunk, size: 28142) [annotate] [blame] [check-ins using] [diff]

2016-03-13
11:19
[c460dbfe91] part of check-in [5e2ef97c35] Change of_string_utf8_decode() API

It now returns <= 0 on error, with negative values being the number of
bytes it would have needed * -1.

This can be used to detect cut off and how many bytes are missing. (check-in: [5e2ef97c35] user: js, branch: trunk, size: 28090) [annotate] [blame] [check-ins using] [diff]

2016-02-21
15:37
[f9779f2392] part of check-in [e0b9167693] Make use of C99-style for loops (check-in: [e0b9167693] user: js, branch: trunk, size: 28082) [annotate] [blame] [check-ins using] [diff]
2016-01-03
00:41
[035a617a1b] part of check-in [2a27cf3000] Update copyright

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

2015-05-03
11:34
[30daa260be] part of check-in [daf78156a7] Check <= SSIZE_MAX before assignign to ssize_t (check-in: [daf78156a7] user: js, branch: trunk, size: 28011) [annotate] [blame] [check-ins using] [diff]
2015-01-29
20:58
[f9a61670cf] part of check-in [775d6b52a5] -[OFString lastPathComponent]: Return @"" for / (check-in: [775d6b52a5] user: js, branch: trunk, size: 27926) [annotate] [blame] [check-ins using] [diff]
2015-01-03
20:57
[4d0413d200] part of check-in [cfd374b906] Update copyright (check-in: [cfd374b906] user: js, branch: trunk, size: 27882) [annotate] [blame] [check-ins using] [diff]
2014-06-21
21:43
[60dc6c49fb] part of check-in [13ee56edf3] 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. (check-in: [13ee56edf3] user: js, branch: trunk, size: 27876) [annotate] [blame] [check-ins using] [diff]

2014-04-14
00:45
[26025dccab] part of check-in [9da9b2b64c] Coding style

No functional change intended. (check-in: [9da9b2b64c] user: js, branch: trunk, size: 27919) [annotate] [blame] [check-ins using] [diff]

2014-01-04
00:24
[0b123dda77] part of check-in [3b97fc3cd9] Update copyright. (check-in: [3b97fc3cd9] user: js, branch: trunk, size: 27867) [annotate] [blame] [check-ins using] [diff]
2013-12-01
11:50
[cb1d0ad5b1] part of check-in [00dbb47969] Clean up the path delimiter mess. (check-in: [00dbb47969] user: js, branch: trunk, size: 27861) [annotate] [blame] [check-ins using] [diff]
02:08
[458af69b3f] part of check-in [a0b63a8df4] Port to DOS/DJGPP.

The port was much easier than expected. The only changes that were
required were defining the missing lrint() and useconds_t, the rest was
optional (like using backslashes for paths, even though slashes work
fine). (check-in: [a0b63a8df4] user: js, branch: trunk, size: 28773) [annotate] [blame] [check-ins using] [diff]

2013-11-23
17:28
[7fb4904a02] part of check-in [f177032b43] OF(Mutable)String_UTF8: Code simplification. (check-in: [f177032b43] user: js, branch: trunk, size: 28570) [annotate] [blame] [check-ins using] [diff]
2013-08-15
19:00
[33807e1aeb] part of check-in [1d7a1cbca0] Move private methods into private headers. (check-in: [1d7a1cbca0] user: js, branch: trunk, size: 28880) [annotate] [blame] [check-ins using] [diff]
2013-08-14
19:17
[dcb1103ce6] part of check-in [7c4179ab9b] +[stringWithPath:] -> +[pathWithComponents:].

This removes -[initWithPath:,...], so that it's finally possible to use
-[initWithPath:] for many places where a workaround like
-[initWithDirectoryPath:] was required before. (check-in: [7c4179ab9b] user: js, branch: trunk, size: 28846) [annotate] [blame] [check-ins using] [diff]

2013-08-13
10:39
[9860c5f0d1] part of check-in [73ae6fa60f] Add a few more instancetypes. (check-in: [73ae6fa60f] user: js, branch: trunk, size: 30438) [annotate] [blame] [check-ins using] [diff]
2013-08-12
10:09
[48ca6830d9] part of check-in [3912669d91] Add codepage 437.

This is required for ZIP files, which can use either codepage 437 or
Unicode. (check-in: [3912669d91] user: js, branch: trunk, size: 30410) [annotate] [blame] [check-ins using] [diff]

10:00
[35d6df4f4a] part of check-in [d36cf257fe] Don't store the first 128 chars of an encoding. (check-in: [d36cf257fe] user: js, branch: trunk, size: 30285) [annotate] [blame] [check-ins using] [diff]
2013-06-22
12:12
[3a479b89af] part of check-in [3d16a30f41] 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. (check-in: [3d16a30f41] user: js, branch: trunk, size: 30279) [annotate] [blame] [check-ins using] [diff]

2013-03-04
17:20
[3ce37a1895] part of check-in [c5ef582958] Replace BOOL with bool.

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

2013-02-12
18:22
[503640087e] part of check-in [e40729d406] Prefix all ivars with an underscore. (check-in: [e40729d406] user: js, branch: trunk, size: 31171) [annotate] [blame] [check-ins using] [diff]
2013-01-23
21:52
[0615761918] part of check-in [ea4a43461c] Never compare to @"", use length instead. (check-in: [ea4a43461c] user: js, branch: trunk, size: 30918) [annotate] [blame] [check-ins using] [diff]
2013-01-16
14:27
[17c27fdf19] part of check-in [7694d37135] OFString: Add -[getCString:maxLength:encoding:]. (check-in: [7694d37135] user: js, branch: trunk, size: 30924) [annotate] [blame] [check-ins using] [diff]
2013-01-13
13:07
[5a1fe9d9fc] part of check-in [545b6f740e] Add of_char{16,32}_t.

For ObjC++, these are defined to char{16,32}_t if C++11 is used. This
means passing e.g. a C++11 UTF-16 string to -[initWithUTF16String:]
works without a warning.

For C11, this is not necessary, as char{16,32}_t are just typedef'd to
uint_least{16,32}_t in <uchar.h> and thus compatible to the definition
of of_char{16,32}_t. The reason for not defining of_char{16,32}_t to
char{16,32}_t when using C11 is that <uchar.h> might be missing and that
char{16,32}_t are not required to be UTF-{16,32}, whereas in C++, they
are required to be UTF-{16,32}. (check-in: [545b6f740e] user: js, branch: trunk, size: 30912) [annotate] [blame] [check-ins using] [diff]

2013-01-12
17:29
[c16c78a6d7] part of check-in [9ddd33a258] Rename *UsingEncoding: to *WithEncoding:.

This reverts 5362941.

Even though *UsingEncoding: is what Foundation uses, *WithEncoding: is
more natural and is more consistent with the rest. Also, this means this
restores it to the API of 0.7. (check-in: [9ddd33a258] user: js, branch: trunk, size: 30900) [annotate] [blame] [check-ins using] [diff]

2013-01-11
12:41
[97c02a6c42] part of check-in [50916b8dbe] OFString: Improve API for characters / UTF-32.

With this change, there is a clear separation between characters and
UTF-32 strings now. Characters are just an array of characters in the
native endianess, with no BOM prepended. UTF-32 on the other hand may
have a BOM and can be swapped and is optionally zero-terminated.

This also fixes a few missing UTF-16 init methods in OFMutableString. (check-in: [50916b8dbe] user: js, branch: trunk, size: 30904) [annotate] [blame] [check-ins using] [diff]

12:13
[ce12e0f51c] part of check-in [beb9051a10] Add -[OFMutableString appendCharacters:length:]. (check-in: [beb9051a10] user: js, branch: trunk, size: 29801) [annotate] [blame] [check-ins using] [diff]
2013-01-10
22:51
[a02eabeb4e] part of check-in [e03385a820] Optimize -[OFString_UTF8 isEqual:] a little. (check-in: [e03385a820] user: js, branch: trunk, size: 29899) [annotate] [blame] [check-ins using] [diff]
2013-01-09
22:24
[511ae88739] part of check-in [813c00ccf0] Update copyright. (check-in: [813c00ccf0] user: js, branch: trunk, size: 29676) [annotate] [blame] [check-ins using] [diff]
2013-01-08
12:33
[c7327619e7] part of check-in [7cddd5f891] OFString: Add methods for UTF-32. (check-in: [7cddd5f891] user: js, branch: trunk, size: 29670) [annotate] [blame] [check-ins using] [diff]
2012-12-30
00:22
[0ddb5e507a] part of check-in [c16e6aca56] Fix -[initWithUTF8StringNoCopy:freeWhenDone:]. (check-in: [c16e6aca56] user: js, branch: trunk, size: 28864) [annotate] [blame] [check-ins using] [diff]
2012-12-29
17:56
[797a478d4d] part of check-in [640b225ba7] OFString: Improve API for Unicode strings.

* Instead of Unicode "strings", it uses the term "Unicode character
array".
* No terminating 0 character anymore, as these are not C strings
anyway. (check-in: [640b225ba7] user: js, branch: trunk, size: 28916) [annotate] [blame] [check-ins using] [diff]

14:43
[e371dc8e8d] part of check-in [374956b098] Prettify some code. (check-in: [374956b098] user: js, branch: trunk, size: 28920) [annotate] [blame] [check-ins using] [diff]
2012-12-22
15:37
[dfd9d65700] part of check-in [917ce5754c] Add -[doesNotRecognizeSelector:]. (check-in: [917ce5754c] user: js, branch: trunk, size: 30384) [annotate] [blame] [check-ins using] [diff]
2012-12-16
01:15
[75ce5faed6] part of check-in [556234e290] Add encodings for -[cStringUsingEncoding:].

This adds ISO 8859-1 and ASCII, ISO 8859-15 and Windows-1252 will
follow. (check-in: [556234e290] user: js, branch: trunk, size: 30422) [annotate] [blame] [check-ins using] [diff]

2012-12-15
23:31
[7793b455ee] part of check-in [e2f4c1283c] OFString: Improved API for getting C strings. (check-in: [e2f4c1283c] user: js, branch: trunk, size: 30547) [annotate] [blame] [check-ins using] [diff]
2012-12-09
12:31
[b90943c641] part of check-in [b55b4ab87b] Fix +[OFString stringWithUTF8StringNoCopy:…]. (check-in: [b55b4ab87b] user: js, branch: trunk, size: 30643) [annotate] [blame] [check-ins using] [diff]
2012-10-16
14:47
[7a3937da16] part of check-in [fcaa549324] A few more API improvements.

This should make it more future-proof, as adding new options is easier
than adding new methods for each and every combination of options. (check-in: [fcaa549324] user: js, branch: trunk, size: 30604) [annotate] [blame] [check-ins using] [diff]

2012-10-14
10:36
[b09a7e72c1] part of check-in [53af033b0e] More integer overflow checks. (check-in: [53af033b0e] user: js, branch: trunk, size: 30585) [annotate] [blame] [check-ins using] [diff]
00:59
[f11d00232a] part of check-in [f38744df74] OF_INVALID_INDEX -> OF_NOT_FOUND. (check-in: [f38744df74] user: js, branch: trunk, size: 30236) [annotate] [blame] [check-ins using] [diff]
00:54
[e621285ff6] part of check-in [c9433ea60d] range.start -> range.location. (check-in: [c9433ea60d] user: js, branch: trunk, size: 30252) [annotate] [blame] [check-ins using] [diff]
2012-10-13
22:21
[f8f277011d] part of check-in [20dddc7345] Add -[OFString rangeOfString:options:range:]. (check-in: [20dddc7345] user: js, branch: trunk, size: 30231) [annotate] [blame] [check-ins using] [diff]
21:29
[dd6ca8a27b] part of check-in [9817eab3be] Rename s->UTF8 to s->isUTF8. (check-in: [9817eab3be] user: js, branch: trunk, size: 29674) [annotate] [blame] [check-ins using] [diff]
21:06
[2e4dae0bbe] part of check-in [1cb8fee5c3] of_bswap* -> OF_BSWAP*.

This makes it clear that multiple evaluation of parameters is possible. (check-in: [1cb8fee5c3] user: js, branch: trunk, size: 29614) [annotate] [blame] [check-ins using] [diff]

20:50
[b3064980ae] part of check-in [9cfefe9c30] Move UTF-8 functions to OFString_UTF8.m. (check-in: [9cfefe9c30] user: js, branch: trunk, size: 29614) [annotate] [blame] [check-ins using] [diff]
20:02
[4e25f0432f] part of check-in [5209390938] indexOfFirstOccurrenceOfString -> rangeOfString. (check-in: [5209390938] user: js, branch: trunk, size: 26237) [annotate] [blame] [check-ins using] [diff]
19:30
[134f59b75b] part of check-in [255fd75828] of_endianess_t -> of_byte_order_t. (check-in: [255fd75828] user: js, branch: trunk, size: 26321) [annotate] [blame] [check-ins using] [diff]
2012-09-16
15:27
[8ace43f8fa] part of check-in [c137da5e5b] Prefix all private methods with OF_. (check-in: [c137da5e5b] user: js, branch: trunk, size: 26317) [annotate] [blame] [check-ins using] [diff]
2012-09-09
14:36
[de39f05b50] part of check-in [56df9c44de] OFNumber: Implement OFComparing. (check-in: [56df9c44de] user: js, branch: trunk, size: 26325) [annotate] [blame] [check-ins using] [diff]
2012-09-06
19:13
[743848703f] part of check-in [3659c87c63] Add -[OFString initWithUTF8String:freeWhenDone:]. (check-in: [3659c87c63] user: js, branch: trunk, size: 26300) [annotate] [blame] [check-ins using] [diff]
2012-08-10
20:08
[b0a0f37ea8] part of check-in [1255f3a11a] Directly use the runtime's autorelease pools.

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

2012-07-12
01:28
[090bb87767] part of check-in [8892ae9fcc] Don't access isa directly. (check-in: [8892ae9fcc] user: js, branch: trunk, size: 25403) [annotate] [blame] [check-ins using] [diff]
2012-06-10
13:28
[65dd22d751] part of check-in [11d3d69a22] More API improvements. (check-in: [11d3d69a22] user: js, branch: trunk, size: 25149) [annotate] [blame] [check-ins using] [diff]
2012-06-06
13:47
[5faa6d539b] part of check-in [f7576a66ce] Slightly change the memory management API.

Also fix a bug where OFBigDataArray would waste memory. (check-in: [f7576a66ce] user: js, branch: trunk, size: 25150) [annotate] [blame] [check-ins using] [diff]

2012-03-17
15:48
[03beefc292] part of check-in [0dafdc4730] One malloc less for creating an immutable UTF-8 string. (check-in: [0dafdc4730] user: js, branch: trunk, size: 25151) [annotate] [blame] [check-ins using] [diff]
2012-03-16
14:01
[2441b116ae] part of check-in [3005748a9d] One malloc less when allocating a string. (check-in: [3005748a9d] user: js, branch: trunk, size: 24423) [annotate] [blame] [check-ins using] [diff]
2012-03-15
11:29
[2df9fbd0df] part of check-in [28170f5f65] Greatly improve OFObject's memory handling and performance.

A linked-list is put before each memory chunk allocated instead of
having an array of all memory chunks. This means only one malloc now
instead of one malloc and one realloc. This also means that when
checking reallocs and frees, it's no longer necessary to iterate through
all memory chunks, as the linked list also contains the owner, meaning
realloc and free are no longer O(n), but O(1) now.

As allocating bigger chunks seems to be a little bit slower than smaller
chunks, it seems that this is slightly slower in benchmarks if only very small
chunks are allocated. However, measuring real world usage, it's a lot faster. (check-in: [28170f5f65] user: js, branch: trunk, size: 24829) [annotate] [blame] [check-ins using] [diff]

2012-02-27
13:14
[6c7986d6d1] part of check-in [337895d46c] Fix missing includes of <sys/types.h> for ssize_t. (check-in: [337895d46c] user: js, branch: 0.6, size: 24579) [annotate] [blame] [check-ins using] [diff]
13:14
[df8f106867] part of check-in [10e0d710ab] Fix missing includes of <sys/types.h> for ssize_t. (check-in: [10e0d710ab] user: js, branch: trunk, size: 24777) [annotate] [blame] [check-ins using] [diff]
12:25
[c9c969d32c] part of check-in [c007c0d4f7] Add -[OFString componentsSeparatedByString:skipEmpty:]. (check-in: [c007c0d4f7] user: js, branch: trunk, size: 24753) [annotate] [blame] [check-ins using] [diff]
2012-01-24
12:01
[2b9e572a06] part of check-in [a0d967e8dd] Cache hashes of strings. (check-in: [a0d967e8dd] user: js, branch: trunk, size: 24555) [annotate] [blame] [check-ins using] [diff]
11:57
[53d2bab608] part of check-in [af56ce47e0] Compare pointers of strings before comparing the string content. (check-in: [af56ce47e0] user: js, branch: trunk, size: 24484) [annotate] [blame] [check-ins using] [diff]
2012-01-05
00:56
[38887f119f] part of check-in [ce70e17b38] Update copyright. (check-in: [ce70e17b38] user: js, branch: trunk, size: 24347) [annotate] [blame] [check-ins using] [diff]
2011-11-21
16:47
[a98ac09f1e] part of check-in [855de7c3a7] Implement -[OFString_UTF8 hash] for better performance. (check-in: [855de7c3a7] user: js, branch: trunk, size: 24341) [annotate] [blame] [check-ins using] [diff]
2011-11-20
18:41
Added: [3609f3a164] part of check-in [301ee63212] Make OFString a class cluster.

It is a class cluster now, but there is still much to improve. (check-in: [301ee63212] user: js, branch: trunk, size: 23880) [annotate] [blame] [check-ins using]