From a877fc24fbd7371994aea44567075962cf83b1c5 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 8 Jun 2016 19:12:23 +0200 Subject: [PATCH] (libretro-common/stdstring) Add string_trim_whitespace_left/string_trim_whitespace_right --- libretro-common/include/string/stdstring.h | 6 +++ libretro-common/string/stdstring.c | 50 ++++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/libretro-common/include/string/stdstring.h b/libretro-common/include/string/stdstring.h index 604d66d488..e483435fb5 100644 --- a/libretro-common/include/string/stdstring.h +++ b/libretro-common/include/string/stdstring.h @@ -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 diff --git a/libretro-common/string/stdstring.c b/libretro-common/string/stdstring.c index 3ea2b4b812..3c59c6196b 100644 --- a/libretro-common/string/stdstring.c +++ b/libretro-common/string/stdstring.c @@ -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; + } + } +}