#include <str.h>
Public Types | |
typedef unsigned char | unsigned_type |
![]() | |
typedef char | value_type |
typedef char * | iterator |
typedef const char * | const_iterator |
Public Member Functions | |
constexpr | String () |
String (const char *str) | |
String (const char *str, uint32 len) | |
String (const char *beginP, const char *endP) | |
String (const String &str) | |
String (String &&str) | |
constexpr | String (value_type c) |
String (const U32String &str, CodePage page=kUtf8) | |
String & | operator= (const char *str) |
String & | operator= (const String &str) |
String & | operator= (String &&str) |
String & | operator= (char c) |
String & | operator+= (const char *str) |
String & | operator+= (const String &str) |
String & | operator+= (char c) |
bool | equalsIgnoreCase (const String &x) const |
int | compareToIgnoreCase (const String &x) const |
bool | equalsIgnoreCase (const char *x) const |
int | compareToIgnoreCase (const char *x) const |
int | compareDictionary (const String &x) const |
int | compareDictionary (const char *x) const |
bool | hasSuffix (const String &x) const |
bool | hasSuffix (const char *x) const |
bool | hasSuffixIgnoreCase (const String &x) const |
bool | hasSuffixIgnoreCase (const char *x) const |
bool | hasPrefix (const String &x) const |
bool | hasPrefix (const char *x) const |
bool | hasPrefixIgnoreCase (const String &x) const |
bool | hasPrefixIgnoreCase (const char *x) const |
bool | contains (const String &x) const |
bool | contains (const char *x) const |
bool | matchString (const char *pat, bool ignoreCase=false, const char *wildcardExclusions=NULL) const |
bool | matchString (const String &pat, bool ignoreCase=false, const char *wildcardExclusions=NULL) const |
String | substr (size_t pos=0, size_t len=npos) const |
String | forEachLine (String(*func)(const String, va_list args),...) const |
U32String | decode (CodePage page=kUtf8) const |
![]() | |
constexpr | BaseString () |
constexpr | BaseString (value_type c) |
BaseString (const BaseString &str) | |
BaseString (BaseString &&str) | |
BaseString (const value_type *str) | |
BaseString (const value_type *str, uint32 len) | |
BaseString (const value_type *beginP, const value_type *endP) | |
bool | operator== (const BaseString &x) const |
bool | operator== (const value_type *x) const |
bool | operator!= (const BaseString &x) const |
bool | operator!= (const value_type *x) const |
bool | operator< (const BaseString &x) const |
bool | operator< (const value_type *x) const |
bool | operator<= (const BaseString &x) const |
bool | operator<= (const value_type *x) const |
bool | operator> (const BaseString &x) const |
bool | operator> (const value_type *x) const |
bool | operator>= (const BaseString &x) const |
bool | operator>= (const value_type *x) const |
bool | equals (const BaseString &x) const |
bool | equals (const value_type *x) const |
bool | equalsC (const char *x) const |
int | compareTo (const BaseString &x) const |
int | compareTo (const value_type *x) const |
int | compareToC (const char *x) const |
void | setChar (value_type c, uint32 p) |
void | deleteChar (uint32 p) |
void | deleteLastChar () |
void | erase (uint32 p, uint32 len=npos) |
iterator | erase (iterator it) |
void | chop (uint32 len=1) |
void | clear () |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
const value_type * | c_str () const |
uint | size () const |
bool | empty () const |
value_type | firstChar () const |
value_type | lastChar () const |
value_type | operator[] (int idx) const |
bool | contains (const BaseString &otherString) const |
bool | contains (value_type x) const |
void | insertChar (value_type c, uint32 p) |
void | insertString (const value_type *s, uint32 p) |
void | insertString (const BaseString &s, uint32 p) |
uint32 | find (value_type x, uint32 pos=0) const |
size_t | find (const value_type *s, uint32 pos=0) const |
uint32 | find (const BaseString &str, uint32 pos=0) const |
size_t | rfind (const value_type *s) const |
size_t | rfind (const BaseString &s) const |
size_t | rfind (value_type c, size_t pos=npos) const |
size_t | findFirstOf (value_type c, size_t pos=0) const |
size_t | findFirstOf (const value_type *chars, size_t pos=0) const |
size_t | findFirstOf (const BaseString &chars, size_t pos=0) const |
size_t | findLastOf (value_type c, size_t pos=npos) const |
size_t | findLastOf (const value_type *chars, size_t pos=npos) const |
size_t | findLastOf (const BaseString &chars, size_t pos=npos) const |
size_t | findFirstNotOf (value_type c, size_t pos=0) const |
size_t | findFirstNotOf (const value_type *chars, size_t pos=0) const |
size_t | findFirstNotOf (const BaseString &chars, size_t pos=0) const |
size_t | findLastNotOf (value_type c) const |
size_t | findLastNotOf (const value_type *chars) const |
size_t | findLastNotOf (const BaseString &chars) const |
void | replace (value_type from, value_type to) |
void | append (const value_type *begin, const value_type *end) |
void | wordWrap (const uint32 maxLength) |
uint64 | asUint64 () const |
uint64 | asUint64Ext () const |
void | toLowercase () |
void | toUppercase () |
void | trim () |
uint | hash () const |
void | replace (uint32 pos, uint32 count, const BaseString &str) |
void | replace (uint32 pos, uint32 count, const value_type *str) |
void | replace (iterator begin, iterator end, const BaseString &str) |
void | replace (iterator begin, iterator end, const value_type *str) |
void | replace (uint32 posOri, uint32 countOri, const BaseString &str, uint32 posDest, uint32 countDest) |
void | replace (uint32 posOri, uint32 countOri, const value_type *str, uint32 posDest, uint32 countDest) |
Static Public Member Functions | |
static String | format (MSVC_PRINTF const char *fmt,...) GCC_PRINTF(1 |
static String static String | vformat (const char *fmt, va_list args) |
![]() | |
static void | releaseMemoryPoolMutex () |
Protected Member Functions | |
StringEncodingResult | encodeUTF8 (const U32String &src, char errorChar) |
StringEncodingResult | encodeWindows932 (const U32String &src, char errorChar) |
StringEncodingResult | encodeWindows936 (const U32String &src, char errorChar) |
StringEncodingResult | encodeWindows949 (const U32String &src, char errorChar) |
StringEncodingResult | encodeWindows950 (const U32String &src, bool translit, char errorChar) |
StringEncodingResult | encodeJohab (const U32String &src, char errorChar) |
StringEncodingResult | encodeOneByte (const U32String &src, CodePage page, bool translit, char errorChar) |
StringEncodingResult | encodeInternal (const U32String &src, CodePage page, char errorChar) |
StringEncodingResult | translitChar (U32String::value_type point, char errorChar) |
![]() | |
bool | isStorageIntern () const |
void | makeUnique () |
void | ensureCapacity (uint32 new_size, bool keep_old) |
void | incRefCount () const |
void | decRefCount (int *oldRefCount) |
void | initWithValueTypeStr (const value_type *str, uint32 len) |
void | assignInsert (const value_type *str, uint32 p) |
void | assignInsert (value_type c, uint32 p) |
void | assignInsert (const BaseString &str, uint32 p) |
void | assignAppend (const value_type *str) |
void | assignAppend (value_type c) |
void | assignAppend (const BaseString &str) |
void | assign (const BaseString &str) |
void | assign (BaseString &&str) |
void | assign (value_type c) |
void | assign (const value_type *str) |
bool | pointerInOwnBuffer (const value_type *str) const |
uint | getUnsignedValue (uint pos) const |
void | toCase (int(*caseChangeFunc)(int)) |
Additional Inherited Members | |
![]() | |
value_type | _storage [_builtinCapacity] |
int * | _refCount |
uint32 | _capacity |
struct { | |
int * _refCount | |
uint32 _capacity | |
} | _extern |
![]() | |
static const uint32 | npos |
![]() | |
static uint32 | cStrLen (const value_type *str) |
static const value_type * | cMemChr (const value_type *ptr, value_type c, size_t count) |
static value_type * | cMemChr (value_type *ptr, value_type c, size_t count) |
static int | cMemCmp (const value_type *ptr1, const value_type *ptr2, size_t count) |
![]() | |
uint32 | _size |
value_type * | _str |
union { | |
value_type _storage [_builtinCapacity] | |
struct { | |
int * _refCount | |
uint32 _capacity | |
} _extern | |
}; | |
![]() | |
static const uint32 | _builtinCapacity |
Simple string class for ScummVM. Provides automatic storage management, and overloads several operators in a 'natural' fashion, mimicking the std::string class. Even provides simple iterators.
This class tries to avoid allocating lots of small blocks on the heap, since that is inefficient on several platforms supported by ScummVM. Instead, small strings are stored 'inside' the string object (i.e. on the stack, for stack allocated objects), and only for strings exceeding a certain length do we allocate a buffer on the heap.
The presence of \0 characters in the string will cause undefined behavior in some operations.
typedef unsigned char Common::String::unsigned_type |
Unsigned version of the underlying type. This can be used to cast individual string characters to bigger integer types without sign extension happening.
|
inline |
Construct a new empty string.
|
inline |
Construct a new string from the given NULL-terminated C string.
|
inline |
Construct a new string containing exactly len characters read from address str.
|
inline |
Construct a new string containing the characters between beginP (including) and endP (excluding).
|
inline |
Construct a copy of the given string.
|
inline |
Construct a string by moving an existing string.
|
inlineexplicit |
Construct a string consisting of the given character.
Common::String::String | ( | const U32String & | str, |
CodePage | page = kUtf8 |
||
) |
Construct a new string from the given u32 string.
bool Common::String::matchString | ( | const char * | pat, |
bool | ignoreCase = false , |
||
const char * | wildcardExclusions = NULL |
||
) | const |
Simple DOS-style pattern matching function (understands * and ? like used in DOS). Taken from exult/files/listfiles.cc
Token meaning: "*": any character, any amount of times. "?": any character, only once. "#": any decimal digit, only once. "\#": #, only once.
Example strings/patterns: String: monkey.s01 Pattern: monkey.s?? => true String: monkey.s101 Pattern: monkey.s?? => false String: monkey.s99 Pattern: monkey.s?1 => false String: monkey.s101 Pattern: monkey.s* => true String: monkey.s99 Pattern: monkey.s*1 => false String: monkey.s01 Pattern: monkey.s## => true String: monkey.s01 Pattern: monkey.### => false
pat | Glob pattern. |
ignoreCase | Whether to ignore the case when doing pattern match |
wildcardExclusions | Characters which are excluded from wildcards and must be matched explicitly. |
|
static |
String Common::String::substr | ( | size_t | pos = 0 , |
size_t | len = npos |
||
) | const |
Return a substring of this string
Calls func on each line of the string, and returns a joined string
U32String Common::String::decode | ( | CodePage | page = kUtf8 | ) | const |
Python-like method