49#ifdef _KVI_STRING_CPP_
52#define __KVI_EXTERN extern
66#define kvi_strEqualNoLocaleCI(str1, str2) kvi_strEqualCI(str1, str2)
67#define kvi_strEqualNoLocaleCIN(str1, str2, len) kvi_strEqualCIN(str1, str2, len)
68#define kvi_strLen(str) strlen(str)
131 KviCString(KviFormatConstructorTag tag,
const char * fmt, ...);
163 char *
ptr()
const {
return m_ptr; };
165 int len()
const {
return m_len; };
169 operator const char *()
const {
return m_ptr; };
171 bool isEmpty()
const {
return (m_len == 0); };
172 bool hasData()
const {
return (m_len != 0); };
178 bool hasNonWhiteSpaceData()
const;
181 char &
at(
int idx)
const {
return ((idx < m_len) ? m_ptr[idx] : m_ptr[m_len]); };
184 bool lastCharIs(
char ch)
const {
return (m_len > 0) ? (*(m_ptr + m_len - 1) == ch) :
false; };
199 KviCString leftToFirst(
char c,
bool bIncluded =
false)
const;
200 KviCString leftToLast(
char c,
bool bIncluded =
false)
const;
208 KviCString & setStr(
const char * str,
int len = -1);
210 void extractFromString(
const char *
begin,
const char *
end);
220 void append(
const QString & str);
222 void append(
const char * str);
223 void append(
const char * str,
int len);
224 void append(KviFormatConstructorTag dummy,
const char * fmt, ...);
228 void prepend(
const char * str);
229 void prepend(
const char * str,
int len);
239 void toUpperISO88591();
241 void toLowerISO88591();
249 KviCString & operator=(
const QByteArray & str);
276 if(m_len != other.
m_len)
282 if(m_len != other.
m_len)
293 void bufferToHex(
const char * buffer,
int len);
298 int hexToBuffer(
char ** buffer,
bool bNullToNewlines =
false);
300 void bufferToBase64(
const char * buffer,
int len);
302 int base64ToBuffer(
char ** buffer,
bool bNullToNewlines =
false);
305 static void freeBuffer(
char * buffer);
312 KviCString & cutToFirst(
char c,
bool bIncluded =
true);
313 KviCString & cutToLast(
char c,
bool bIncluded =
true);
314 KviCString & cutFromFirst(
char c,
bool bIncluded =
true);
315 KviCString & cutFromLast(
char c,
bool bIncluded =
true);
316 KviCString & cutToFirst(
const char * c,
bool bIncluded =
true);
317 KviCString & cutToLast(
const char * c,
bool bIncluded =
true);
318 KviCString & cutFromFirst(
const char * c,
bool bIncluded =
true);
319 KviCString & cutFromLast(
const char * c,
bool bIncluded =
true);
321 KviCString & insert(
int idx,
const char * data);
324 KviCString & replaceAll(
const char c,
const char * str);
326 KviCString & replaceAll(
const char * toFind,
const char * str,
bool bCaseS =
true);
328 KviCString & transliterate(
const char * szToFind,
const char * szReplacement);
345 KviCString & padRight(
int iLen,
const char c =
'\0');
352 bool getToken(
KviCString & str,
char sep,
bool skipEmpty =
false);
355 KviCString getToken(
char sep,
bool skipEmpty =
false);
362 KviCString ** splitToArray(
char sep,
int max,
int * realCount)
const;
369 void joinFromArray(
KviCString ** strings,
const char * sep =
nullptr,
bool bLastSep =
false);
374 KviCString & hexEncodeWithTable(
const unsigned char table[256]);
381 bool contains(
const char * str,
bool caseS =
true)
const;
383 bool contains(
char c,
bool caseS =
true)
const;
386 int occurrences(
const char * str,
bool caseS =
true)
const;
388 int occurrences(
char c,
bool caseS =
true)
const;
394 int findFirstIdx(
char c)
const;
398 int findFirstIdx(
const char * str,
bool caseS =
true)
const;
401 int findLastIdx(
char c)
const;
405 int findLastIdx(
const char * str,
bool caseS =
true)
const;
407 int find(
char c,
int startIdx)
const;
408 int find(
const char * str,
int startIdx,
bool caseS =
true)
const;
409 int findRev(
const char * str,
int startIdx,
bool caseS =
true)
const;
413 long toLong(
bool * bOk =
nullptr)
const;
414 unsigned long toULong(
bool * bOk =
nullptr)
const;
415 long long toLongLong(
bool * bOk =
nullptr)
const;
416 unsigned long long toULongLong(
bool * bOk =
nullptr)
const;
417 char toChar(
bool * bOk =
nullptr)
const {
return (
char)toLong(bOk); };
418 unsigned char toUChar(
bool * bOk =
nullptr)
const {
return (
unsigned char)toULong(bOk); };
419 int toInt(
bool * bOk =
nullptr)
const {
return (
int)toLong(bOk); };
420 unsigned int toUInt(
bool * bOk =
nullptr)
const {
return (
unsigned int)toULong(bOk); };
421 short toShort(
bool * bOk =
nullptr)
const {
return (
short)toLong(bOk); };
422 unsigned short toUShort(
bool * bOk =
nullptr)
const {
return (
unsigned short)toLong(bOk); };
439 bool isUnsignedNum()
const;
442 long toLongExt(
bool * bOk =
nullptr,
int base = 0);
459 static bool ext_contains(
const char * data,
const char * item,
bool caseS =
true);
495 const char ** r1,
const char ** r2);
499#define kvi_matchString kvi_matchStringCI
bool kvi_strEqualCI(const char *str1, const char *str2)
Definition KviCString.cpp:875
bool kvi_strEqualCIN(const char *str1, const char *str2, int len)
Definition KviCString.cpp:860
bool kvi_strEqualCS(const char *str1, const char *str2)
Definition KviCString.cpp:829
bool kvi_strEqualCSN(const char *str1, const char *str2, int len)
Definition KviCString.cpp:843
__KVI_EXTERN KVILIB_API bool kvi_strEqualCS(const char *str1, const char *str2)
Definition KviCString.cpp:829
__KVI_EXTERN KVILIB_API bool kvi_matchWildExpr(const char *m1, const char *m2)
Definition KviCString.cpp:256
__KVI_EXTERN KVILIB_API int kvi_strcmpCS(const char *str1, const char *str2)
Definition KviCString.cpp:921
__KVI_EXTERN KVILIB_API int kvi_vsnprintf(char *buffer, int len, const char *fmt, kvi_va_list list)
Definition KviCString.cpp:537
__KVI_EXTERN KVILIB_API int kvi_strMatchRevCS(const char *str1, const char *str2, int index=-1)
Definition KviCString.cpp:937
__KVI_EXTERN KVILIB_API bool kvi_strEqualCIN(const char *str1, const char *str2, int len)
Definition KviCString.cpp:860
kvi_u16_t kvi_wchar_t
Definition KviCString.h:85
__KVI_EXTERN KVILIB_API kvi_wslen_t kvi_wstrlen(const kvi_wchar_t *str)
Definition KviCString.cpp:36
int kvi_compare(const KviCString *p1, const KviCString *p2)
Definition KviCString.h:572
__KVI_EXTERN bool operator==(const KviCString &left, const KviCString &right)
Definition KviCString.h:516
__KVI_EXTERN KVILIB_API int kvi_irc_vsnprintf(char *buffer, const char *fmt, kvi_va_list list, bool *bTruncated)
Definition KviCString.cpp:696
kvi_u32_t kvi_wslen_t
Definition KviCString.h:86
__KVI_EXTERN KVILIB_API bool kvi_matchStringCS(const char *exp, const char *str)
Definition KviCString.cpp:120
#define __KVI_EXTERN
Definition KviCString.h:50
__KVI_EXTERN KVILIB_API bool kvi_qstringEqualCI(const QString &s1, const QString &s2)
Definition KviCString.cpp:44
__KVI_EXTERN KVILIB_API bool kvi_strEqualCI(const char *str1, const char *str2)
Definition KviCString.cpp:875
__KVI_EXTERN KVILIB_API const char * kvi_extractToken(KviCString &str, const char *aux_ptr, char sep=' ')
Definition KviCString.cpp:507
__KVI_EXTERN KVILIB_API int kvi_strcmpCI(const char *str1, const char *str2)
Definition KviCString.cpp:896
__KVI_EXTERN KviCString operator+(const KviCString &left, const KviCString &right)
Definition KviCString.h:541
__KVI_EXTERN KVILIB_API bool kvi_matchStringWithTerminator(const char *exp, const char *str, char terminator, const char **r1, const char **r2)
Definition KviCString.cpp:182
__KVI_EXTERN KVILIB_API bool kvi_matchStringCI(const char *exp, const char *str)
Definition KviCString.cpp:58
__KVI_EXTERN KVILIB_API bool kvi_matchWildExprWithTerminator(const char *m1, const char *m2, char terminator, const char **r1, const char **r2)
Definition KviCString.cpp:409
__KVI_EXTERN bool operator!=(const KviCString &left, const KviCString &right)
Definition KviCString.h:528
__KVI_EXTERN KVILIB_API int kvi_wvsnprintcf(kvi_wchar_t *buffer, kvi_wslen_t len, const char *fmt, kvi_va_list list)
__KVI_EXTERN KVILIB_API int kvi_wvsnprintf(kvi_wchar_t *buffer, kvi_wslen_t len, const kvi_wchar_t *fmt, kvi_va_list list)
__KVI_EXTERN KVILIB_API bool kvi_strEqualCSN(const char *str1, const char *str2, int len)
Definition KviCString.cpp:843
__KVI_EXTERN KVILIB_API const char * kvi_extractUpTo(KviCString &str, const char *aux_ptr, char sep=' ')
Definition KviCString.cpp:524
KviPtrListIterator< T > end(KviPointerList< T > *ptrList)
Definition KviPtrListIterator.h:68
KviPtrListIterator< T > begin(KviPointerList< T > *ptrList)
Definition KviPtrListIterator.h:62
Definition KviCString.h:102
bool equalsCIN(const char *other, int len) const
Definition KviCString.h:288
int toInt(bool *bOk=nullptr) const
Definition KviCString.h:419
KviCString & setNum(unsigned short num)
Definition KviCString.h:430
bool hasData() const
Definition KviCString.h:172
char * ptr() const
Definition KviCString.h:163
bool equalsCS(const char *other) const
Definition KviCString.h:287
bool equalsCI(const char *other) const
Definition KviCString.h:286
unsigned char toUChar(bool *bOk=nullptr) const
Definition KviCString.h:418
KviFormatConstructorTag
Definition KviCString.h:108
@ Format
Definition KviCString.h:109
bool equalsCSN(const char *other, int len) const
Definition KviCString.h:289
KviCString & setNum(char num)
Definition KviCString.h:431
bool equalsCS(const KviCString &other) const
Definition KviCString.h:280
int len() const
Definition KviCString.h:165
KviCString & hexDecode()
Definition KviCString.h:377
void ensureLastCharIs(char ch)
Definition KviCString.h:232
char toChar(bool *bOk=nullptr) const
Definition KviCString.h:417
char & at(int idx) const
Definition KviCString.h:181
unsigned int toUInt(bool *bOk=nullptr) const
Definition KviCString.h:420
bool lastCharIs(char ch) const
Definition KviCString.h:184
int m_len
Definition KviCString.h:157
bool isEmpty() const
Definition KviCString.h:171
bool equalsCI(const KviCString &other) const
Definition KviCString.h:274
short toShort(bool *bOk=nullptr) const
Definition KviCString.h:421
KviCString & setNum(short num)
Definition KviCString.h:429
KviCString & setNum(unsigned char num)
Definition KviCString.h:432
KviCString & operator+=(const QString &str)
Definition KviCString.h:267
KviCString & operator+=(const KviCString &str)
Definition KviCString.h:252
KviCString & operator+=(const char *str)
Definition KviCString.h:257
char * m_ptr
Definition KviCString.h:156
KviCString & operator+=(char c)
Definition KviCString.h:262
bool firstCharIs(char ch) const
Definition KviCString.h:185
KviCString & setNum(unsigned int num)
Definition KviCString.h:428
unsigned short toUShort(bool *bOk=nullptr) const
Definition KviCString.h:422
KviCString & setNum(int num)
Definition KviCString.h:427
Definition KviHeapObject.h:125
This file contains compile time settings.
#define KVILIB_API
Definition kvi_settings.h:124
#define kvi_va_list
Definition kvi_stdarg.h:30