diff options
author | Max Kellermann <max@duempel.org> | 2014-08-07 14:44:31 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2014-08-07 16:08:02 +0200 |
commit | f860a2fbd693cc9ce166cdba7491cdd5071ca34a (patch) | |
tree | 8295f561439bd87b1d8d39a356a93afa1fee4bd7 /src | |
parent | 87bcf739ee6a3e8ac5b400b35b61b72b9d8bd802 (diff) | |
download | mpd-f860a2fbd693cc9ce166cdba7491cdd5071ca34a.tar.gz mpd-f860a2fbd693cc9ce166cdba7491cdd5071ca34a.tar.xz mpd-f860a2fbd693cc9ce166cdba7491cdd5071ca34a.zip |
util/StringUtil: move code to StripRight()
Diffstat (limited to 'src')
-rw-r--r-- | src/util/StringUtil.cxx | 23 | ||||
-rw-r--r-- | src/util/StringUtil.hxx | 14 |
2 files changed, 31 insertions, 6 deletions
diff --git a/src/util/StringUtil.cxx b/src/util/StringUtil.cxx index 153846e9b..e68c98444 100644 --- a/src/util/StringUtil.cxx +++ b/src/util/StringUtil.cxx @@ -35,17 +35,28 @@ StripLeft(const char *p) return p; } -char * -Strip(char *p) +size_t +StripRight(const char *p, size_t length) { - p = StripLeft(p); - - size_t length = strlen(p); while (length > 0 && IsWhitespaceNotNull(p[length - 1])) --length; - p[length] = 0; + return length; +} + +void +StripRight(char *p) +{ + size_t old_length = strlen(p); + size_t new_length = StripRight(p, old_length); + p[new_length] = 0; +} +char * +Strip(char *p) +{ + p = StripLeft(p); + StripRight(p); return p; } diff --git a/src/util/StringUtil.hxx b/src/util/StringUtil.hxx index 6bccbeffe..abed3b45b 100644 --- a/src/util/StringUtil.hxx +++ b/src/util/StringUtil.hxx @@ -40,6 +40,20 @@ StripLeft(char *p) } /** + * Determine the string's length as if it was stripped on the right + * side. + */ +gcc_pure +size_t +StripRight(const char *p, size_t length); + +/** + * Strip trailing whitespace by null-terminating the string. + */ +void +StripRight(char *p); + +/** * Skip whitespace at the beginning and terminate the string after the * last non-whitespace character. */ |