17 #ifndef __STDC_LIMIT_MACROS
18 # define __STDC_LIMIT_MACROS
20 #ifndef __STDC_CONSTANT_MACROS
21 # define __STDC_CONSTANT_MACROS
28 #import "OFSerialization.h"
29 #import "OFJSONRepresentation.h"
33 typedef uint32_t of_unichar_t;
38 typedef enum of_string_encoding_t {
39 OF_STRING_ENCODING_UTF_8,
40 OF_STRING_ENCODING_ASCII,
41 OF_STRING_ENCODING_ISO_8859_1,
42 OF_STRING_ENCODING_ISO_8859_15,
43 OF_STRING_ENCODING_WINDOWS_1252,
44 OF_STRING_ENCODING_AUTODETECT = 0xFF
45 } of_string_encoding_t;
48 OF_STRING_SEARCH_BACKWARDS = 1,
49 OF_STRING_SKIP_EMPTY = 2
53 #define OF_STRING_ENCODING_NATIVE OF_STRING_ENCODING_UTF_8
56 typedef void (^of_string_line_enumeration_block_t)(
OFString *line, BOOL *stop);
62 extern int of_string_utf8_check(
const char*,
size_t,
size_t*);
63 extern size_t of_string_utf8_encode(of_unichar_t,
char*);
64 extern size_t of_string_utf8_decode(
const char*,
size_t, of_unichar_t*);
65 extern size_t of_string_utf8_get_index(
const char*,
size_t);
66 extern size_t of_string_utf8_get_position(
const char*,
size_t,
size_t);
67 extern size_t of_unicode_string_length(
const of_unichar_t*);
68 extern size_t of_utf16_string_length(
const uint16_t*);
81 #ifdef OF_HAVE_PROPERTIES
82 @property (readonly)
size_t length;
90 + (instancetype)
string;
98 + (instancetype)stringWithUTF8String: (
const char*)UTF8String;
108 + (instancetype)stringWithUTF8String: (
const char*)UTF8String
118 + (instancetype)stringWithCString: (
const char*)cString
119 encoding: (of_string_encoding_t)encoding;
130 + (instancetype)stringWithCString: (
const char*)cString
131 encoding: (of_string_encoding_t)encoding
132 length: (
size_t)cStringLength;
148 + (instancetype)stringWithUnicodeString: (
const of_unichar_t*)
string;
158 + (instancetype)stringWithUnicodeString: (
const of_unichar_t*)
string
159 byteOrder: (of_byte_order_t)byteOrder;
169 + (instancetype)stringWithUnicodeString: (
const of_unichar_t*)
string
181 + (instancetype)stringWithUnicodeString: (
const of_unichar_t*)
string
182 byteOrder: (of_byte_order_t)byteOrder
191 + (instancetype)stringWithUTF16String: (
const uint16_t*)
string;
201 + (instancetype)stringWithUTF16String: (
const uint16_t*)
string
202 byteOrder: (of_byte_order_t)byteOrder;
212 + (instancetype)stringWithUTF16String: (
const uint16_t*)
string
225 + (instancetype)stringWithUTF16String: (
const uint16_t*)
string
226 byteOrder: (of_byte_order_t)byteOrder
246 + (instancetype)stringWithPath: (
OFString*)firstComponent, ... OF_SENTINEL;
255 + (instancetype)stringWithContentsOfFile: (
OFString*)path;
265 + (instancetype)stringWithContentsOfFile: (
OFString*)path
266 encoding: (of_string_encoding_t)encoding;
280 + (instancetype)stringWithContentsOfURL: (
OFURL*)URL;
290 + (instancetype)stringWithContentsOfURL: (
OFURL*)URL
291 encoding: (of_string_encoding_t)encoding;
300 - initWithUTF8String: (
const char*)UTF8String;
310 - initWithUTF8String: (
const char*)UTF8String
324 - initWithUTF8StringNoCopy: (
const char*)UTF8String
325 freeWhenDone: (BOOL)freeWhenDone;
335 - initWithCString: (
const char*)cString
336 encoding: (of_string_encoding_t)encoding;
347 - initWithCString: (
const char*)cString
348 encoding: (of_string_encoding_t)encoding
349 length: (size_t)cStringLength;
357 - initWithString: (
OFString*)
string;
365 - initWithUnicodeString: (
const of_unichar_t*)
string;
375 - initWithUnicodeString: (
const of_unichar_t*)
string
376 byteOrder: (of_byte_order_t)byteOrder;
386 - initWithUnicodeString: (
const of_unichar_t*)
string
399 - initWithUnicodeString: (
const of_unichar_t*)
string
400 byteOrder: (of_byte_order_t)byteOrder
409 - initWithUTF16String: (
const uint16_t*)
string;
419 - initWithUTF16String: (
const uint16_t*)
string
420 byteOrder: (of_byte_order_t)byteOrder;
430 - initWithUTF16String: (
const uint16_t*)
string
443 - initWithUTF16String: (
const uint16_t*)
string
444 byteOrder: (of_byte_order_t)byteOrder
469 arguments: (va_list)arguments;
478 - initWithPath: (
OFString*)firstComponent, ... OF_SENTINEL;
488 - initWithPath: (
OFString*)firstComponent
489 arguments: (va_list)arguments;
498 - initWithContentsOfFile: (
OFString*)path;
508 - initWithContentsOfFile: (
OFString*)path
509 encoding: (of_string_encoding_t)encoding;
524 - initWithContentsOfURL: (
OFURL*)URL;
534 - initWithContentsOfURL: (
OFURL*)URL
535 encoding: (of_string_encoding_t)encoding;
558 - (
const char*)cStringWithEncoding: (of_string_encoding_t)encoding
582 - (size_t)cStringLengthWithEncoding: (of_string_encoding_t)encoding;
591 - (of_comparison_result_t)caseInsensitiveCompare: (
OFString*)otherString;
599 - (of_unichar_t)characterAtIndex: (
size_t)index;
608 - (void)getCharacters: (of_unichar_t*)buffer
631 options: (int)options;
645 options: (int)options
713 options: (
int)options
769 - (BOOL)hasPrefix: (
OFString*)prefix;
777 - (BOOL)hasSuffix: (
OFString*)suffix;
797 options: (int)options;
897 - (void)writeToFile: (
OFString*)path;
899 #ifdef OF_HAVE_BLOCKS
905 - (void)enumerateLinesUsingBlock: (of_string_line_enumeration_block_t)block;
909 #import "OFConstantString.h"
910 #import "OFMutableString.h"
911 #import "OFString+Hashing.h"
912 #import "OFString+JSONValue.h"
913 #import "OFString+Serialization.h"
914 #import "OFString+URLEncoding.h"
915 #import "OFString+XMLEscaping.h"
916 #import "OFString+XMLUnescaping.h"
918 #ifndef NSINTEGER_DEFINED
920 @compatibility_alias NSString
OFString;