Fix trim() in lib/Preprocessor.cpp

Currently, if its argument is all spaces and tabs,
trim() returns it without actually trimming it.
Fix this by returning an empty string in this case.
Also, drop a useless test: if we did not return ""
then beg is not equal to std::string::npos, and in
that case, neither is end.
This commit is contained in:
Albert ARIBAUD (3ADEV) 2016-01-04 16:08:02 +01:00
parent 1db9cf4d09
commit df91caafa1
1 changed files with 2 additions and 3 deletions

View File

@ -2414,16 +2414,15 @@ static void skipstring(const std::string &line, std::string::size_type &pos)
/**
* Remove heading and trailing whitespaces from the input parameter.
* If string is all spaces/tabs, return empty string.
* @param s The string to trim.
*/
static std::string trim(const std::string& s)
{
const std::string::size_type beg = s.find_first_not_of(" \t");
if (beg == std::string::npos)
return s;
return "";
const std::string::size_type end = s.find_last_not_of(" \t");
if (end == std::string::npos)
return s.substr(beg);
return s.substr(beg, end - beg + 1);
}