From e71262463f8fd2d9509b5646b4e08cfa09fc2889 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Sun, 25 Mar 2012 12:48:14 +0300 Subject: Add removeStringEnd() --- src/utility_string.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/utility_string.h') diff --git a/src/utility_string.h b/src/utility_string.h index f29057ad7..df283ba69 100644 --- a/src/utility_string.h +++ b/src/utility_string.h @@ -31,5 +31,20 @@ static inline std::string padStringRight(std::string s, size_t len) return s; } +// ends: NULL- or ""-terminated array of strings +// Returns "" if no end could be removed. +static inline std::string removeStringEnd(const std::string &s, const char *ends[]) +{ + const char **p = ends; + for(; (*p) && (*p)[0] != '\0'; p++){ + std::string end = *p; + if(s.size() < end.size()) + continue; + if(s.substr(s.size()-end.size(), end.size()) == end) + return s.substr(0, s.size() - end.size()); + } + return ""; +} + #endif -- cgit v1.2.3