142 inline virtual const tchar*
text ()
const;
143 inline virtual const void*
ptr ()
const {
return buffer;}
282 virtual void* toCFStringRef (
uint32 encoding = 0xFFFF,
bool mutableCFString =
false)
const;
322#if SMTG_CPP11_STDLIBSUPPORT
433 void take (
void* _buffer,
bool wide);
452 virtual bool fromCFStringRef (
const void*,
uint32 encoding = 0xFFFF);
458 bool resize (
uint32 newSize,
bool wide,
bool fill =
false);
634 const_cast<String&
> (*this).toWideString ();
653 const_cast<String&
> (*this).toWideString ();
726 using String::operator=;
uint8_t a
Definition Spc_Cpu.h:141
int32_t int32
Definition basics.h:89
uint32_t uint32
Definition basics.h:90
static bool isCharLower(char8 character)
Definition fstring.cpp:1743
virtual const char8 * text8() const
Returns pointer to string of type char8.
Definition fstring.h:492
int32 getFirstDifferent(const ConstString &str, CompareMode=kCaseSensitive) const
Returns position of first different character.
Definition fstring.cpp:1297
int64 getTrailingNumber(int64 fallback=0) const
Returns result of scanInt64 or the fallback.
Definition fstring.cpp:1790
bool testChar16(uint32 index, char16 c) const
Definition fstring.cpp:517
bool isAsciiString() const
Checks if all characters in string are in ascii range.
Definition fstring.cpp:1819
virtual const tchar * text() const
Returns pointer to string of type tchar.
Definition fstring.h:482
virtual char8 getChar8(uint32 index) const
Returns character of type char16 at 'index'.
Definition fstring.h:504
static bool scanUInt32_16(const char16 *text, uint32 &value, bool scanToEnd=true)
Converts string of type char16 to int32 value.
Definition fstring.h:597
int32 findFirst(char8 c, CompareMode m=kCaseSensitive, int32 endIndex=-1) const
Definition fstring.h:205
static bool scanInt32_8(const char8 *text, int32 &value, bool scanToEnd=true)
Converts string of type char8 to int32 value.
Definition fstring.h:549
static bool isCharSpace(char8 character)
Returns true if character is a space.
Definition fstring.cpp:1652
static bool scanUInt64_16(const char16 *text, uint64 &value, bool scanToEnd=true)
Converts string of type char16 to uint64 value.
Definition fstring.cpp:1463
static int32 wideStringToMultiByte(char8 *dest, const char16 *source, int32 char8Count, uint32 destCodePage=kCP_Default)
If dest is zero, this returns the maximum number of bytes needed to convert source.
Definition fstring.cpp:1924
CompareMode
Definition fstring.h:170
@ kCaseSensitive
Comparison is done with regard to character's case.
Definition fstring.h:171
@ kCaseInsensitive
Comparison is done without regard to character's case.
Definition fstring.h:172
int32 findLast(const ConstString &str, int32 n=-1, CompareMode m=kCaseSensitive) const
Find last occurrence of n characters of str in this (n=-1: all).
Definition fstring.h:221
tchar getCharAt(uint32 index) const
Returns character of type tchar at 'index', no conversion!
Definition fstring.h:530
bool endsWith(const ConstString &str, CompareMode m=kCaseSensitive) const
Check if this ends with str.
Definition fstring.cpp:883
int32 naturalCompare(const ConstString &str, CompareMode mode=kCaseSensitive) const
Definition fstring.cpp:801
bool isDigit(uint32 index) const
Returns true if character at position is a digit.
Definition fstring.cpp:1755
uint32 len
Definition fstring.h:295
static bool scanHex_16(const char16 *text, uint8 &value, bool scanToEnd=true)
Converts string of type char16 to hex/unit8 value.
Definition fstring.cpp:1513
uint32 hash(uint32 tsize) const
Definition fstring.h:162
int32 findFirst(char16 c, CompareMode m=kCaseSensitive, int32 endIndex=-1) const
Definition fstring.h:206
tchar operator[](short idx) const
Returns character at 'idx'.
Definition fstring.h:133
bool testChar8(uint32 index, char8 c) const
Returns true if character is equal at position 'index'.
Definition fstring.cpp:500
bool scanInt32(int32 &value, uint32 offset=0, bool scanToEnd=true) const
Converts string to int32 value starting at offset.
Definition fstring.cpp:1399
static bool scanHex_8(const char8 *text, uint8 &value, bool scanToEnd=true)
Converts string of type char8 to hex/unit8 value.
Definition fstring.cpp:1495
bool testChar(uint32 index, char16 c) const
Definition fstring.h:153
bool scanHex(uint8 &value, uint32 offset=0, bool scanToEnd=true) const
Converts string to hex/uint8 value starting at offset.
Definition fstring.cpp:1387
static bool isCharUpper(char8 character)
Definition fstring.cpp:1731
bool scanUInt32(uint32 &value, uint32 offset=0, bool scanToEnd=true) const
Converts string to uint32 value starting at offset.
Definition fstring.cpp:1411
bool extract(String &result, uint32 idx, int32 n=-1) const
Get n characters long substring starting at index (n=-1: until end).
Definition fstring.cpp:534
static char8 toLower(char8 c)
Converts to lower case.
Definition fstring.cpp:1624
static bool isCharAlphaNum(char8 character)
Returns true if character is an alphanumeric character.
Definition fstring.cpp:1695
int32 copyTo8(char8 *str, uint32 idx=0, int32 n=-1) const
Definition fstring.cpp:551
int32 countOccurences(char8 c, uint32 startIndex, CompareMode=kCaseSensitive) const
Counts occurences of c within this starting at index.
Definition fstring.cpp:1241
bool isWideString() const
Returns true if string is wide.
Definition fstring.h:276
bool startsWith(const ConstString &str, CompareMode m=kCaseSensitive) const
Check if this starts with str.
Definition fstring.cpp:834
char8 * buffer8
Definition fstring.h:292
int32 getTrailingNumberIndex(uint32 width=0) const
Returns start index of trailing number.
Definition fstring.cpp:1767
int32 copyTo(tchar *str, uint32 idx=0, int32 n=-1) const
Definition fstring.cpp:607
bool scanUInt64(uint64 &value, uint32 offset=0, bool scanToEnd=true) const
Converts string to uint64 value starting at offset.
Definition fstring.cpp:1375
int32 findLast(char16 c, CompareMode m=kCaseSensitive) const
Definition fstring.h:223
ConstString(const char8 *str, int32 length=-1)
Assign from string of type char8 (length=-1: all).
Definition fstring.cpp:439
ConstString()
Definition fstring.cpp:492
bool isEmpty() const
Return true if string is empty.
Definition fstring.h:129
tchar getChar(uint32 index) const
Returns character of type tchar at 'index'.
Definition fstring.h:520
int64 getNumber() const
Returns result of scanInt64.
Definition fstring.h:541
static int32 multiByteToWideString(char16 *dest, const char8 *source, int32 wcharCount, uint32 sourceCodePage=kCP_Default)
If dest is zero, this returns the maximum number of bytes needed to convert source.
Definition fstring.cpp:1858
int32 findLast(char8 c, CompareMode m=kCaseSensitive) const
Definition fstring.h:222
bool contains(const ConstString &str, CompareMode m=kCaseSensitive) const
Check if this contains str.
Definition fstring.cpp:932
bool testChar(uint32 index, char8 c) const
Definition fstring.h:152
void toVariant(FVariant &var) const
Definition fstring.cpp:1806
virtual ~ConstString()
Destructor.
Definition fstring.h:125
static bool scanInt64_8(const char8 *text, int64 &value, bool scanToEnd=true)
Converts string of type char8 to int64 value.
Definition fstring.cpp:1423
static bool isCharAscii(char8 character)
Returns true if character is in ASCII range.
Definition fstring.cpp:1719
int32 findNext(int32 startIndex, const ConstString &str, int32 n=-1, CompareMode=kCaseSensitive, int32 endIndex=-1) const
Definition fstring.cpp:938
int32 findFirst(const ConstString &str, int32 n=-1, CompareMode m=kCaseSensitive, int32 endIndex=-1) const
Definition fstring.h:204
static bool scanInt64_16(const char16 *text, int64 &value, bool scanToEnd=true)
Converts string of type char16 to int64 value.
Definition fstring.cpp:1437
static bool isCharDigit(char8 character)
Returns true if character is a number.
Definition fstring.cpp:1707
static bool isCharAlpha(char8 character)
Returns true if character is an alphabetic character.
Definition fstring.cpp:1683
bool isNormalized(UnicodeNormalization=kUnicodeNormC)
On PC only kUnicodeNormC is working.
Definition fstring.cpp:2007
int32 findPrev(int32 startIndex, const ConstString &str, int32 n=-1, CompareMode=kCaseSensitive) const
Definition fstring.cpp:1173
bool scanFloat(double &value, uint32 offset=0, bool scanToEnd=true) const
Converts string to double value starting at offset.
Definition fstring.cpp:1535
bool scanInt64(int64 &value, uint32 offset=0, bool scanToEnd=true) const
Converts string to int64 value starting at offset.
Definition fstring.cpp:1363
int32 copyTo16(char16 *str, uint32 idx=0, int32 n=-1) const
Definition fstring.cpp:579
virtual char16 getChar16(uint32 index) const
Returns character of type char8 at 'index'.
Definition fstring.h:512
static bool scanUInt64_8(const char8 *text, uint64 &value, bool scanToEnd=true)
Converts string of type char8 to uint64 value.
Definition fstring.cpp:1449
int32 compareAt(uint32 index, const ConstString &str, int32 n=-1, CompareMode m=kCaseSensitive) const
Compare n characters of str with n characters of this starting at index (return: see above).
Definition fstring.cpp:709
int32 compare(const ConstString &str, int32 n, CompareMode m=kCaseSensitive) const
Compare n characters of str with n characters of this (return: see above).
Definition fstring.cpp:651
static bool scanUInt32_8(const char8 *text, uint32 &value, bool scanToEnd=true)
Converts string of type char8 to int32 value.
Definition fstring.h:585
virtual const void * ptr() const
Returns pointer to string of type void.
Definition fstring.h:143
virtual const char16 * text16() const
Returns pointer to string of type char16.
Definition fstring.h:498
virtual int32 length() const
Return length of string.
Definition fstring.h:128
char16 * buffer16
Definition fstring.h:293
static char8 toUpper(char8 c)
Converts to upper case.
Definition fstring.cpp:1638
void * buffer
Definition fstring.h:291
uint32 isWide
Definition fstring.h:296
static bool scanInt32_16(const char16 *text, int32 &value, bool scanToEnd=true)
Converts string of type char16 to int32 value.
Definition fstring.h:561
FObject()
default constructor...
Definition fobject.h:85
Definition ipersistent.h:80
Definition istringresult.h:50
Definition istringresult.h:32
String & printf(const char8 *format,...)
Print formatted data into string.
Definition fstring.cpp:3314
char8 getChar8(uint32 index) const SMTG_OVERRIDE
Returns character of type char16 at 'index'.
Definition fstring.h:640
String & assign(const ConstString &str, int32 n=-1)
Assign n characters of str (-1: all).
Definition fstring.cpp:2500
CharGroup
Definition fstring.h:396
@ kNotAlphaNum
Definition fstring.h:396
@ kNotAlpha
Definition fstring.h:396
@ kSpace
Definition fstring.h:396
bool checkToMultiByte(uint32 destCodePage=kCP_Default) const
Definition fstring.cpp:2181
bool replaceChars8(const char8 *toReplace, char8 toReplaceBy)
Returns true when any replacement was done.
Definition fstring.cpp:2992
const char8 * text8() const SMTG_OVERRIDE
Returns pointer to string of type char8.
Definition fstring.h:621
void swapContent(String &s)
Swaps ownership of the strings pointed to.
Definition fstring.cpp:3633
void toUpper()
Upper case the string.
Definition fstring.cpp:3540
bool normalize(UnicodeNormalization=kUnicodeNormC)
On PC only kUnicodeNormC is working.
Definition fstring.cpp:2262
bool fromAttributes(IAttributes *a, IAttrID attrID)
Assigns string from FAttributes.
Definition fstring.cpp:3613
bool fromVariant(const FVariant &var)
Assigns string from FVariant.
Definition fstring.cpp:3573
~String()
Definition fstring.cpp:2103
String & operator+=(const String &str)
Definition fstring.h:368
bool replaceChars(const char16 *toReplace, char16 toReplaceBy)
Definition fstring.h:391
String & vprintf(const char8 *format, va_list args)
Definition fstring.cpp:3339
bool removeChars8(const char8 *which)
Remove all occurrences of each char in 'which'.
Definition fstring.cpp:3266
bool toAttributes(IAttributes *a, IAttrID attrID)
Definition fstring.cpp:3622
String()
Definition fstring.cpp:2038
bool replaceChars16(char16 toReplace, char16 toReplaceBy)
Definition fstring.h:387
bool removeChars(const char16 which)
Definition fstring.h:406
String & insertAt(uint32 idx, const ConstString &str, int32 n=-1)
Insert n characters of str at position idx (n=-1: all).
Definition fstring.cpp:2745
bool removeChars16(const char16 *which)
Remove all occurrences of each char in 'which'.
Definition fstring.cpp:3290
const String & fromPascalString(const unsigned char *buf)
Pascal string conversion.
Definition fstring.cpp:3734
void * pass()
Definition fstring.cpp:3667
bool setChar16(uint32 index, char16 c)
Definition fstring.cpp:2451
bool toWideString(uint32 sourceCodePage=kCP_Default)
Converts to wide string according to sourceCodePage.
Definition fstring.cpp:2141
bool toMultiByte(uint32 destCodePage=kCP_Default)
Definition fstring.cpp:2225
bool removeChars8(const char8 which)
Definition fstring.h:401
void take(String &str)
Take ownership of the string of 'str'.
Definition fstring.cpp:3647
String & printFloat(double value)
Definition fstring.cpp:3372
bool replaceChars(const char8 *toReplace, char8 toReplaceBy)
Definition fstring.h:390
char16 getChar16(uint32 index) const SMTG_OVERRIDE
Returns character of type char8 at 'index'.
Definition fstring.h:649
unsigned char * toPascalString(unsigned char *buf)
Pascal string conversion.
Definition fstring.cpp:3704
bool replaceChars8(char8 toReplace, char8 toReplaceBy)
Definition fstring.h:386
String & printInt64(int64 value)
Definition fstring.cpp:3357
bool replaceChars(char16 toReplace, char16 toReplaceBy)
Definition fstring.h:389
String & append(const ConstString &str, int32 n=-1)
Append n characters of str to this (n=-1: all).
Definition fstring.cpp:2597
bool removeChars(const char16 *which)
Definition fstring.h:404
String & operator=(const char8 *str)
Assign from a string of type char8.
Definition fstring.h:341
const char16 * text16() const SMTG_OVERRIDE
Returns pointer to string of type char16.
Definition fstring.h:630
bool removeChars(const char8 which)
Definition fstring.h:405
bool incrementTrailingNumber(uint32 width=2, tchar separator=STR(' '), uint32 minNumber=1, bool applyOnlyFormat=false)
Definition fstring.cpp:3424
bool removeChars(const char8 *which)
Definition fstring.h:403
bool resize(uint32 newSize, bool wide, bool fill=false)
Definition fstring.cpp:2329
void toVariant(FVariant &var) const
Definition fstring.cpp:3600
bool replaceChars(char8 toReplace, char8 toReplaceBy)
Definition fstring.h:388
String & remove(uint32 index=0, int32 n=-1)
Remove n characters from string starting at index (n=-1: until end).
Definition fstring.cpp:3053
bool setChar8(uint32 index, char8 c)
Definition fstring.cpp:2399
void fromUTF8(const char8 *utf8String)
Assigns from UTF8 string.
Definition fstring.cpp:2255
void passToVariant(FVariant &var)
Pass ownership of buffer to Variant - sets Variant ownership.
Definition fstring.cpp:3676
bool trim(CharGroup mode=kSpace)
Trim lead/trail.
Definition fstring.cpp:3129
void tryFreeBuffer()
Definition fstring.cpp:2319
String & insertAt(uint32 idx, char8 c)
Definition fstring.h:365
bool removeSubString(const ConstString &subString, bool allOccurences=true)
Definition fstring.cpp:3079
bool replaceChars16(const char16 *toReplace, char16 toReplaceBy)
Definition fstring.cpp:3019
String & insertAt(uint32 idx, char16 c)
Definition fstring.h:366
void updateLength()
Call this when the string is truncated outside (not recommended though).
Definition fstring.cpp:2132
bool setChar(uint32 index, char16 c)
Definition fstring.h:337
void toLower()
Lower case the string.
Definition fstring.cpp:3495
String & replace(uint32 idx, int32 n1, const ConstString &str, int32 n2=-1)
Replace n1 characters of this (starting at idx) with n2 characters of str (n1,n2=-1: until end).
Definition fstring.cpp:2824
bool removeChars16(const char16 which)
Definition fstring.h:402
bool setChar(uint32 index, char8 c)
Definition fstring.h:336
void removeChars(CharGroup mode=kSpace)
Removes all of group.
Definition fstring.cpp:3192
const char8 *PLUGIN_API getText8() SMTG_OVERRIDE
Definition fstring.cpp:3967
void PLUGIN_API take(void *s, bool _isWide) SMTG_OVERRIDE
Definition fstring.cpp:3979
StringObject(const FVariant &var)
Definition fstring.h:724
void PLUGIN_API setText8(const char8 *text) SMTG_OVERRIDE
Definition fstring.cpp:3955
StringObject(const StringObject &str, int32 n=-1)
Definition fstring.h:722
StringObject(const char16 *str, int32 n=-1, bool isTerminated=true)
Definition fstring.h:720
const char16 *PLUGIN_API getText16() SMTG_OVERRIDE
Definition fstring.cpp:3973
void PLUGIN_API setText(const char8 *text) SMTG_OVERRIDE
Definition fstring.cpp:3949
StringObject()
Definition fstring.h:719
StringObject(const String &str, int32 n=-1)
Definition fstring.h:723
void PLUGIN_API setText16(const char16 *text) SMTG_OVERRIDE
Definition fstring.cpp:3961
bool PLUGIN_API isWideString() const SMTG_OVERRIDE
Definition fstring.cpp:3985
StringObject(const char8 *str, int32 n=-1, bool isTerminated=true)
Definition fstring.h:721
unsigned * m
Definition inflate.c:1559
unsigned s
Definition inflate.c:1555
#define OBJ_METHODS(className, baseClass)
Definition fobject.h:339
#define FUNKNOWN_METHODS2(InterfaceName1, InterfaceName2, BaseClass)
Definition fobject.h:458
#define STR(x)
Definition fstrdefs.h:39
static PuglViewHint int value
Definition pugl.h:1708
static int width
Definition pugl.h:1593
Definition baseiids.cpp:43
unsigned long long uint64
Definition ftypes.h:67
int16 char16
Definition ftypes.h:101
int int32
Definition ftypes.h:50
FIDString IAttrID
Definition ipersistent.h:62
static const char16 kEmptyString16[]
Definition fstrdefs.h:104
char char8
Definition ftypes.h:93
static const bool kWideStringDefault
Definition fstring.h:57
unsigned short uint16
Definition ftypes.h:44
int32 strnatcmp(const tchar *s1, const tchar *s2, bool caseSensitive=true)
Definition fstring.h:698
static const char8 kEmptyString8[]
Definition fstrdefs.h:103
long long int64
Definition ftypes.h:66
static const uint16 kBomUtf16
UTF16 Byte Order Mark.
Definition fstring.h:60
bool operator>=(const ConstString &s1, const ConstString &s2)
Definition fstring.h:664
int32 strnatcmp16(const char16 *s1, const char16 *s2, bool caseSensitive)
Definition fstring.cpp:3941
char16 tchar
Definition ftypes.h:105
bool operator!=(const ConstString &s1, const ConstString &s2)
Definition fstring.h:666
uint32 hashString8(const char8 *s, uint32 m)
Definition fstring.cpp:3835
MBCodePage
Definition fstring.h:66
@ kCP_MAC_ROMAN
Default Mac codepage.
Definition fstring.h:68
@ kCP_ShiftJIS
Shifted Japan Industrial Standard Encoding.
Definition fstring.h:73
@ kCP_US_ASCII
US-ASCII (7-bit).
Definition fstring.h:74
@ kCP_Default
Default ANSI codepage.
Definition fstring.h:76
@ kCP_MAC_CEE
Mac Central European Encoding.
Definition fstring.h:71
@ kCP_ANSI_WEL
West European Latin Encoding.
Definition fstring.h:70
@ kCP_ANSI
Default ANSI codepage.
Definition fstring.h:67
@ kCP_Utf8
UTF8 Encoding.
Definition fstring.h:72
unsigned char uint8
Definition ftypes.h:40
bool operator>(const ConstString &s1, const ConstString &s2)
Definition fstring.h:663
uint32 hashString(const tchar *s, uint32 m)
Definition fstring.h:92
UnicodeNormalization
Definition fstring.h:80
@ kUnicodeNormKD
Unicode normalization form KD, compatibility decomposition.
Definition fstring.h:84
@ kUnicodeNormKC
Unicode normalization form KC, compatibility composition.
Definition fstring.h:83
@ kUnicodeNormD
Unicode normalization Form D, canonical decomposition.
Definition fstring.h:82
@ kUnicodeNormC
Unicode normalization Form C, canonical composition.
Definition fstring.h:81
static const char8 *const kBomUtf8
UTF8 Byte Order Mark.
Definition fstring.h:61
uint32 hashString16(const char16 *s, uint32 m)
Definition fstring.cpp:3847
bool operator<(const ConstString &s1, const ConstString &s2)
Definition fstring.h:661
String operator+(const ConstString &s1, const ConstString &s2)
Definition fstring.h:466
static const int32 kBomUtf8Length
Definition fstring.h:62
int32 strnatcmp8(const char8 *s1, const char8 *s2, bool caseSensitive)
Definition fstring.cpp:3935
unsigned int uint32
Definition ftypes.h:51
bool operator==(const ConstString &s1, const ConstString &s2)
Definition fstring.h:665
bool operator<=(const ConstString &s1, const ConstString &s2)
Definition fstring.h:662
#define true
Definition ordinals.h:82
png_structrp int mode
Definition png.h:1139
const char * text
Definition swell-functions.h:167
int n
Definition crypt.c:458
return c
Definition crypt.c:175
int result
Definition process.c:1455
_WDL_CSTRING_PREFIX void INT_PTR const char * format
Definition wdlcstring.h:263
#define const
Definition zconf.h:137