util/StringUtil: reorder functions

This commit is contained in:
Max Kellermann
2015-03-04 20:22:05 +01:00
parent 39825c6622
commit 250332a8d5
2 changed files with 73 additions and 73 deletions

View File

@@ -26,6 +26,51 @@
#include <assert.h>
#include <string.h>
bool
StringStartsWith(const char *haystack, const char *needle)
{
const size_t length = strlen(needle);
return memcmp(haystack, needle, length) == 0;
}
bool
StringEndsWith(const char *haystack, const char *needle)
{
const size_t haystack_length = strlen(haystack);
const size_t needle_length = strlen(needle);
return haystack_length >= needle_length &&
memcmp(haystack + haystack_length - needle_length,
needle, needle_length) == 0;
}
const char *
FindStringSuffix(const char *p, const char *suffix)
{
const size_t p_length = strlen(p);
const size_t suffix_length = strlen(suffix);
if (p_length < suffix_length)
return nullptr;
const char *q = p + p_length - suffix_length;
return memcmp(q, suffix, suffix_length) == 0
? q
: nullptr;
}
char *
CopyString(char *gcc_restrict dest, const char *gcc_restrict src, size_t size)
{
size_t length = strlen(src);
if (length >= size)
length = size - 1;
char *p = std::copy_n(src, length, dest);
*p = '\0';
return p;
}
const char *
StripLeft(const char *p)
{
@@ -78,51 +123,6 @@ Strip(char *p)
return p;
}
bool
StringStartsWith(const char *haystack, const char *needle)
{
const size_t length = strlen(needle);
return memcmp(haystack, needle, length) == 0;
}
bool
StringEndsWith(const char *haystack, const char *needle)
{
const size_t haystack_length = strlen(haystack);
const size_t needle_length = strlen(needle);
return haystack_length >= needle_length &&
memcmp(haystack + haystack_length - needle_length,
needle, needle_length) == 0;
}
const char *
FindStringSuffix(const char *p, const char *suffix)
{
const size_t p_length = strlen(p);
const size_t suffix_length = strlen(suffix);
if (p_length < suffix_length)
return nullptr;
const char *q = p + p_length - suffix_length;
return memcmp(q, suffix, suffix_length) == 0
? q
: nullptr;
}
char *
CopyString(char *gcc_restrict dest, const char *gcc_restrict src, size_t size)
{
size_t length = strlen(src);
if (length >= size)
length = size - 1;
char *p = std::copy_n(src, length, dest);
*p = '\0';
return p;
}
bool
string_array_contains(const char *const* haystack, const char *needle)
{