00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include <stdio.h>
00013 #include <stdarg.h>
00014
00015 #import "OFObject.h"
00016
00017 typedef uint32_t of_unichar_t;
00018
00019 enum of_string_encoding {
00020 OF_STRING_ENCODING_UTF_8,
00021 OF_STRING_ENCODING_ISO_8859_1,
00022 OF_STRING_ENCODING_ISO_8859_15,
00023 OF_STRING_ENCODING_WINDOWS_1252
00024 };
00025
00026 extern int of_string_check_utf8(const char*, size_t);
00027 extern size_t of_string_unicode_to_utf8(of_unichar_t, char*);
00028 extern size_t of_string_utf8_to_unicode(const char*, size_t, of_unichar_t*);
00029 extern size_t of_string_position_to_index(const char*, size_t);
00030 extern size_t of_string_index_to_position(const char*, size_t, size_t);
00031
00032 @class OFArray;
00033
00037 @interface OFString: OFObject <OFCopying, OFMutableCopying>
00038 {
00039 char *string;
00040 unsigned int length;
00041 #if defined(OF_APPLE_RUNTIME) && __LP64__
00042 int _unused;
00043 #endif
00044 BOOL isUTF8;
00045 }
00046
00050 + string;
00051
00058 + stringWithCString: (const char*)str;
00059
00067 + stringWithCString: (const char*)str
00068 encoding: (enum of_string_encoding)encoding;
00069
00079 + stringWithCString: (const char*)str
00080 encoding: (enum of_string_encoding)encoding
00081 length: (size_t)len;
00082
00091 + stringWithCString: (const char*)str
00092 length: (size_t)len;
00093
00101 + stringWithFormat: (OFString*)fmt, ...;
00102
00109 + stringWithPath: (OFString*)first, ...;
00110
00117 + stringWithString: (OFString*)str;
00118
00125 + stringWithContentsOfFile: (OFString*)path;
00126
00135 + stringWithContentsOfFile: (OFString*)path
00136 encoding: (enum of_string_encoding)encoding;
00137
00143 - init;
00144
00151 - initWithCString: (const char*)str;
00152
00161 - initWithCString: (const char*)str
00162 encoding: (enum of_string_encoding)encoding;
00163
00173 - initWithCString: (const char*)str
00174 encoding: (enum of_string_encoding)encoding
00175 length: (size_t)len;
00176
00185 - initWithCString: (const char*)str
00186 length: (size_t)len;
00187
00195 - initWithFormat: (OFString*)fmt, ...;
00196
00205 - initWithFormat: (OFString*)fmt
00206 arguments: (va_list)args;
00207
00215 - initWithPath: (OFString*)first, ...;
00216
00225 - initWithPath: (OFString*)first
00226 arguments: (va_list)args;
00227
00234 - initWithString: (OFString*)str;
00235
00243 - initWithContentsOfFile: (OFString*)path;
00244
00253 - initWithContentsOfFile: (OFString*)path
00254 encoding: (enum of_string_encoding)encoding;
00255
00259 - (const char*)cString;
00260
00264 - (size_t)length;
00265
00269 - (size_t)cStringLength;
00270
00277 - (of_comparison_result_t)compare: (OFString*)str;
00278
00285 - (of_comparison_result_t)caseInsensitiveCompare: (OFString*)str;
00286
00291 - (of_unichar_t)characterAtIndex: (size_t)index;
00292
00298 - (size_t)indexOfFirstOccurrenceOfString: (OFString*)str;
00299
00305 - (size_t)indexOfLastOccurrenceOfString: (OFString*)str;
00306
00313 - (OFString*)substringFromIndex: (size_t)start
00314 toIndex: (size_t)end;
00315
00320 - (OFString*)substringWithRange: (of_range_t)range;
00321
00328 - (OFString*)stringByAppendingString: (OFString*)str;
00329
00336 - (BOOL)hasPrefix: (OFString*)prefix;
00337
00344 - (BOOL)hasSuffix: (OFString*)suffix;
00345
00352 - (OFArray*)componentsSeparatedByString: (OFString*)delimiter;
00353
00360 - (intmax_t)decimalValueAsInteger;
00361
00368 - (uintmax_t)hexadecimalValueAsInteger;
00369 @end
00370
00371 #import "OFConstString.h"
00372 #import "OFMutableString.h"
00373 #import "OFHash.h"
00374 #import "OFURLEncoding.h"
00375 #import "OFXMLElement.h"
00376 #import "OFXMLParser.h"