22 #ifndef COMMON_STRING_H 23 #define COMMON_STRING_H 25 #include "common/scummsys.h" 26 #include "common/str-enc.h" 27 #include "common/ustr.h" 28 #include "common/str-base.h" 95 String &operator=(
const char *str);
99 String &operator+=(
const char *str);
101 String &operator+=(
char c);
103 bool equalsIgnoreCase(
const String &x)
const;
104 int compareToIgnoreCase(
const String &x)
const;
106 bool equalsIgnoreCase(
const char *x)
const;
107 int compareToIgnoreCase(
const char *x)
const;
108 int compareDictionary(
const String &x)
const;
109 int compareDictionary(
const char *x)
const;
111 bool hasSuffix(
const String &x)
const;
112 bool hasSuffix(
const char *x)
const;
113 bool hasSuffixIgnoreCase(
const String &x)
const;
114 bool hasSuffixIgnoreCase(
const char *x)
const;
116 bool hasPrefix(
const String &x)
const;
117 bool hasPrefix(
const char *x)
const;
118 bool hasPrefixIgnoreCase(
const String &x)
const;
119 bool hasPrefixIgnoreCase(
const char *x)
const;
122 bool contains(
const String &x)
const;
123 bool contains(
const char *x)
const;
150 bool matchString(
const char *pat,
bool ignoreCase =
false,
const char *wildcardExclusions = NULL)
const;
151 bool matchString(
const String &pat,
bool ignoreCase =
false,
const char *wildcardExclusions = NULL)
const;
177 StringEncodingResult encodeUTF8(
const U32String &src,
char errorChar);
178 StringEncodingResult encodeWindows932(
const U32String &src,
char errorChar);
179 StringEncodingResult encodeWindows936(
const U32String &src,
char errorChar);
180 StringEncodingResult encodeWindows949(
const U32String &src,
char errorChar);
181 StringEncodingResult encodeWindows950(
const U32String &src,
bool translit,
char errorChar);
182 StringEncodingResult encodeJohab(
const U32String &src,
char errorChar);
183 StringEncodingResult encodeOneByte(
const U32String &src, CodePage page,
bool translit,
char errorChar);
184 StringEncodingResult encodeInternal(
const U32String &src, CodePage page,
char errorChar);
185 StringEncodingResult translitChar(U32String::value_type point,
char errorChar);
200 bool operator==(
const char *x,
const String &y);
201 bool operator!=(
const char *x,
const String &y);
204 extern char *ltrim(
char *t);
205 extern char *rtrim(
char *t);
206 extern char *
trim(
char *t);
277 bool matchString(
const char *str,
const char *pat,
bool ignoreCase =
false,
const char *wildcardExclusions = NULL);
310 void strcpy_s(
char *dst,
size_t size,
const char *src);
322 template<
typename T,
size_t N>
323 FORCEINLINE
void strcpy_s(T (&dst)[N],
const char *src) {
324 STATIC_ASSERT(
sizeof(T) ==
sizeof(
char), T_is_not_compatible_with_char);
340 void strcat_s(
char *dst,
size_t size,
const char *src);
353 template<
typename T,
size_t N>
354 FORCEINLINE
void strcat_s(T (&dst)[N],
const char *src) {
355 STATIC_ASSERT(
sizeof(T) ==
sizeof(
char), T_is_not_compatible_with_char);
375 template<
typename T,
size_t N>
377 STATIC_ASSERT(
sizeof(T) ==
sizeof(
char), T_is_not_compatible_with_char);
378 return vsprintf_s((
char *)dst, N, format, ap);
388 int sprintf_s(
char *dst,
size_t size, MSVC_PRINTF
const char *format, ...)
GCC_PRINTF(3, 4);
397 template<
typename T,
size_t N>
399 STATIC_ASSERT(
sizeof(T) ==
sizeof(
char), T_is_not_compatible_with_char);
402 va_start(ap, format);
423 size_t strlcpy(
char *dst,
const char *src,
size_t size);
443 size_t strlcat(
char *dst,
const char *src,
size_t size);
454 size_t strnlen(
const char *src,
size_t maxSize);
461 #define tag2str(x) Common::tag2string(x).c_str() 468 #define tag2strP(x) Common::tag2string(x, true).c_str() 489 extern int scumm_stricmp(
const char *s1,
const char *s2);
490 extern int scumm_strnicmp(
const char *s1,
const char *s2, uint n);
491 extern char *scumm_strdup(
const char *in);
493 extern int scumm_compareDictionary(
const char *s1,
const char *s2);
494 extern const char *scumm_skipArticle(
const char *s1);
496 extern const char *scumm_strcasestr(
const char *s,
const char *
find);
String percentEncodeString(const String &src)
String lastPathComponent(const String &path, const char sep)
String(String &&str)
Definition: str.h:84
static String format(MSVC_PRINTF const char *fmt,...) GCC_PRINTF(1
bool matchString(const char *pat, bool ignoreCase=false, const char *wildcardExclusions=NULL) const
constexpr String(value_type c)
Definition: str.h:87
size_t strlcat(char *dst, const char *src, size_t size)
size_t strlcpy(char *dst, const char *src, size_t size)
constexpr String()
Definition: str.h:69
String forEachLine(String(*func)(const String, va_list args),...) const
uint32 find(value_type x, uint32 pos=0) const
Definition: str-base.h:32
int sprintf_s(char *dst, size_t size, MSVC_PRINTF const char *format,...) GCC_PRINTF(3
static String static String vformat(const char *fmt, va_list args)
String firstPathComponents(const String &path, const char sep)
int FORCEINLINE GCC_PRINTF(2, 0) int vsprintf_s(T(&dst)[N]
String toPrintable(const String &src, bool keepNewLines=true)
String normalizePath(const String &path, const char sep)
String(const char *str)
Definition: str.h:72
int vsprintf_s(char *dst, size_t size, const char *format, va_list ap) GCC_PRINTF(3
Definition: algorithm.h:29
String(const char *beginP, const char *endP)
Definition: str.h:78
DBCSString operator+(const DBCSString &x, const DBCSString &y)
String(const String &str)
Definition: str.h:81
String substr(size_t pos=0, size_t len=npos) const
String(const char *str, uint32 len)
Definition: str.h:75
void replace(uint32 pos, uint32 count, const BaseString &str)
String tag2string(uint32 tag, bool nonPrintable=false)
void strcpy_s(char *dst, size_t size, const char *src)
size_t strnlen(const char *src, size_t maxSize)
U32String decode(CodePage page=kUtf8) const
void strcat_s(char *dst, size_t size, const char *src)
String(size_t n, value_type c)
Definition: str.h:90
unsigned char unsigned_type
Definition: str.h:66