Overview
Comment: | Add of_unichar_t type. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
8b162c71223d9b3793996bf534e98f96 |
User & Date: | js on 2009-10-04 12:45:56 |
Other Links: | manifest | tags |
Context
2009-10-04
| ||
13:43 | Add -[characterAtIndex:] to OFString. check-in: bd1bd1460b user: js tags: trunk | |
12:45 | Add of_unichar_t type. check-in: 8b162c7122 user: js tags: trunk | |
2009-10-03
| ||
21:24 | Fix OFXMLParser so it passes indexes relative to Unicode characters. check-in: a81bd93b41 user: js tags: trunk | |
Changes
Modified src/OFString.h from [628673bcd3] to [560317e4d4].
︙ | ︙ | |||
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <stdio.h> #include <stdarg.h> #import "OFObject.h" #import "OFArray.h" enum of_string_encoding { OF_STRING_ENCODING_UTF_8, OF_STRING_ENCODING_ISO_8859_1, OF_STRING_ENCODING_ISO_8859_15, OF_STRING_ENCODING_WINDOWS_1252 }; extern int of_string_check_utf8(const char*, size_t); | > > | | 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include <stdio.h> #include <stdarg.h> #import "OFObject.h" #import "OFArray.h" typedef uint32_t of_unichar_t; enum of_string_encoding { OF_STRING_ENCODING_UTF_8, OF_STRING_ENCODING_ISO_8859_1, OF_STRING_ENCODING_ISO_8859_15, OF_STRING_ENCODING_WINDOWS_1252 }; extern int of_string_check_utf8(const char*, size_t); extern size_t of_string_unicode_to_utf8(of_unichar_t, char*); extern size_t of_string_position_to_index(const char*, size_t); extern size_t of_string_index_to_position(const char*, size_t, size_t); /** * A class for managing strings. */ @interface OFString: OFObject <OFCopying, OFMutableCopying> |
︙ | ︙ |
Modified src/OFString.m from [cf1e219842] to [5d80701917].
︙ | ︙ | |||
106 107 108 109 110 111 112 | madvise((void*)str, len, MADV_NORMAL); return utf8; } size_t | | | 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | madvise((void*)str, len, MADV_NORMAL); return utf8; } size_t of_string_unicode_to_utf8(of_unichar_t c, char *buf) { size_t i = 0; if (c < 0x80) { buf[i] = c; return 1; } |
︙ | ︙ | |||
295 296 297 298 299 300 301 | case OF_STRING_ENCODING_ISO_8859_15: case OF_STRING_ENCODING_WINDOWS_1252: for (i = j = 0; i < len; i++) { if ((uint8_t)str[i] < 0x80) string[j++] = str[i]; else { char buf[4]; | | | 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 | case OF_STRING_ENCODING_ISO_8859_15: case OF_STRING_ENCODING_WINDOWS_1252: for (i = j = 0; i < len; i++) { if ((uint8_t)str[i] < 0x80) string[j++] = str[i]; else { char buf[4]; of_unichar_t chr; size_t chr_bytes; switch (encoding) { case OF_STRING_ENCODING_ISO_8859_1: chr = (uint8_t)str[i]; break; case OF_STRING_ENCODING_ISO_8859_15: |
︙ | ︙ |
Modified src/OFXMLParser.m from [3bf4893784] to [adee3ee3bc].
︙ | ︙ | |||
28 29 30 31 32 33 34 | [cache removeLeadingAndTrailingWhitespaces]; return [cache stringByXMLUnescapingWithHandler: handler]; } static OF_INLINE OFString* parse_numeric_entity(const char *entity, size_t length) { | | | 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | [cache removeLeadingAndTrailingWhitespaces]; return [cache stringByXMLUnescapingWithHandler: handler]; } static OF_INLINE OFString* parse_numeric_entity(const char *entity, size_t length) { of_unichar_t c; size_t i; char buf[5]; if (length == 1 || *entity != '#') return nil; c = 0; |
︙ | ︙ |