(libretro-common/stdstring) Add string_trim_whitespace_left/string_trim_whitespace_right

This commit is contained in:
twinaphex 2016-06-08 19:12:23 +02:00
parent ac29a2acc2
commit a877fc24fb
2 changed files with 56 additions and 0 deletions

View File

@ -47,6 +47,12 @@ char *string_ucwords(char* s);
char *string_replace_substring(const char *in, const char *pattern,
const char *by);
/* Remove whitespace from beginning of string */
void string_trim_whitespace_left(char *string);
/* Remove whitespace from end of string */
void string_trim_whitespace_right(char *string);
RETRO_END_DECLS
#endif

View File

@ -117,3 +117,53 @@ char *string_replace_substring(const char *in,
return out;
}
/* Remove whitespace from beginning of string */
void string_trim_whitespace_left(char *string)
{
bool in_whitespace = true;
int32_t si = 0;;
int32_t di = 0;
while(string[si])
{
bool test = in_whitespace &&
(string[si] == ' ' ||
string[si] == '\r' ||
string[si] == '\n' ||
string[si] == '\t' ||
string[si] == 0x0b);
if(!test)
{
in_whitespace = false;
string[di] = string[si];
di++;
}
si++;
}
string[di] = 0;
}
/* Remove whitespace from end of string */
void string_trim_whitespace_right(char *string)
{
int32_t len = strlen(string);
if(len)
{
int32_t x;
for(x = len - 1; x >= 0; x--)
{
bool test = string[x] == ' ' || string[x] == '\r'
|| string[x] == '\n' || string[x] == '\t'
|| string[x] == 0x0b;
if (!test)
break;
string[x] = 0;
}
}
}