@@ -13,10 +13,12 @@ #include #import "OFObject.h" #import "OFArray.h" +#define OF_INVALID_UNICHAR UINT32_MAX + typedef uint32_t of_unichar_t; enum of_string_encoding { OF_STRING_ENCODING_UTF_8, OF_STRING_ENCODING_ISO_8859_1, @@ -24,10 +26,11 @@ 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 of_unichar_t of_string_utf8_to_unicode(const char*, size_t); 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. @@ -210,10 +213,16 @@ * \return An integer which is the result of the comparison, see for example * strcmp */ - (int)compare: (id)obj; +/** + * \param index The index of the Unicode character to return + * \return The Unicode character at the specified index + */ +- (of_unichar_t)characterAtIndex: (size_t)index; + /** * \param str The string to search * \return The index of the first occurrence of the string or SIZE_MAX if it * wasn't found */