From 579e48edbb3d897e04bcf50ef630cab597fe6d84 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 17 Feb 2014 22:37:43 +0100 Subject: [PATCH] util/StringUtil: add function Strip() Replaces g_strstrip(). --- src/db/update/ExcludeList.cxx | 4 ++-- src/tag/TagConfig.cxx | 5 ++--- src/tag/TagId3.cxx | 3 ++- src/util/StringUtil.cxx | 14 ++++++++++++++ src/util/StringUtil.hxx | 7 +++++++ 5 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/db/update/ExcludeList.cxx b/src/db/update/ExcludeList.cxx index 7b691b36b..0a5fbac9f 100644 --- a/src/db/update/ExcludeList.cxx +++ b/src/db/update/ExcludeList.cxx @@ -1,4 +1,3 @@ - /* * Copyright (C) 2003-2014 The Music Player Daemon Project * http://www.musicpd.org @@ -27,6 +26,7 @@ #include "ExcludeList.hxx" #include "fs/Path.hxx" #include "fs/FileSystem.hxx" +#include "util/StringUtil.hxx" #include "util/Domain.hxx" #include "Log.hxx" @@ -58,7 +58,7 @@ ExcludeList::LoadFile(Path path_fs) if (p != nullptr) *p = 0; - p = g_strstrip(line); + p = Strip(line); if (*p != 0) patterns.emplace_front(p); } diff --git a/src/tag/TagConfig.cxx b/src/tag/TagConfig.cxx index 3e941c8d9..00f20d1c0 100644 --- a/src/tag/TagConfig.cxx +++ b/src/tag/TagConfig.cxx @@ -26,8 +26,7 @@ #include "system/FatalError.hxx" #include "util/Alloc.hxx" #include "util/ASCII.hxx" - -#include +#include "util/StringUtil.hxx" #include @@ -54,7 +53,7 @@ TagLoadConfig() quit = true; *s = '\0'; - c = g_strstrip(c); + c = Strip(c); if (*c == 0) continue; diff --git a/src/tag/TagId3.cxx b/src/tag/TagId3.cxx index 4ecd4baa6..d2d84a1bf 100644 --- a/src/tag/TagId3.cxx +++ b/src/tag/TagId3.cxx @@ -22,6 +22,7 @@ #include "TagHandler.hxx" #include "TagTable.hxx" #include "TagBuilder.hxx" +#include "util/StringUtil.hxx" #include "util/Error.hxx" #include "util/Domain.hxx" #include "Log.hxx" @@ -116,7 +117,7 @@ import_id3_string(bool is_id3v1, const id3_ucs4_t *ucs4) } id3_utf8_t *utf8_stripped = (id3_utf8_t *) - g_strdup(g_strstrip((gchar *)utf8)); + g_strdup(Strip((char *)utf8)); free(utf8); return utf8_stripped; diff --git a/src/util/StringUtil.cxx b/src/util/StringUtil.cxx index 57fc5188b..dfe436fd8 100644 --- a/src/util/StringUtil.cxx +++ b/src/util/StringUtil.cxx @@ -33,6 +33,20 @@ strchug_fast(const char *p) return p; } +char * +Strip(char *p) +{ + p = strchug_fast(p); + + size_t length = strlen(p); + while (length > 0 && IsWhitespaceNotNull(p[length - 1])) + --length; + + p[length] = 0; + + return p; +} + bool StringStartsWith(const char *haystack, const char *needle) { diff --git a/src/util/StringUtil.hxx b/src/util/StringUtil.hxx index 933d82c16..a48e2abc9 100644 --- a/src/util/StringUtil.hxx +++ b/src/util/StringUtil.hxx @@ -40,6 +40,13 @@ strchug_fast(char *p) return const_cast(strchug_fast((const char *)p)); } +/** + * Skip whitespace at the beginning and terminate the string after the + * last non-whitespace character. + */ +char * +Strip(char *p); + gcc_pure bool StringStartsWith(const char *haystack, const char *needle);