X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/dbf05bfd2ab79568fe706daa9112037192d4d9dd..2c4a8bb6222b88ff96fbf25372179646ce15f706:/String.hpp diff --git a/String.hpp b/String.hpp index 57814a4..fe33fcb 100644 --- a/String.hpp +++ b/String.hpp @@ -1,5 +1,5 @@ -/* Cycript - Optimizing JavaScript Compiler/Runtime - * Copyright (C) 2009-2015 Jay Freeman (saurik) +/* Cycript - The Truly Universal Scripting Language + * Copyright (C) 2009-2016 Jay Freeman (saurik) */ /* GNU Affero General Public License, Version 3 {{{ */ @@ -54,6 +54,11 @@ struct CYUTF8String { return length == size && memcmp(value, data, length) == 0; } + bool operator !=(const char *value) const { + size_t length(strlen(data)); + return length != size || memcmp(value, data, length) != 0; + } + operator std::string() const { return std::string(data, size); } @@ -77,10 +82,15 @@ struct CYUTF16String { size_t CYGetIndex(const CYUTF8String &value); bool CYIsKey(CYUTF8String value); + bool CYGetOffset(const char *value, ssize_t &index); bool CYStartsWith(const CYUTF8String &haystack, const CYUTF8String &needle); +const char *CYPoolCString(CYPool &pool, CYUTF8String utf8); +CYUTF8String CYPoolUTF8String(CYPool &pool, CYUTF8String utf8); +CYUTF8String CYPoolUTF8String(CYPool &pool, const std::string &value); + CYUTF8String CYPoolUTF8String(CYPool &pool, CYUTF16String utf16); CYUTF16String CYPoolUTF16String(CYPool &pool, CYUTF8String utf8);