closeEnough
- Implemented closeEnough, which does a truncated, caseless compare between two strings. For example, "FoO" is cloneEnough to "food." to be a match. Used to allow mixed case and abbreviated arguments.
This commit is contained in:
12
src/text.cpp
12
src/text.cpp
@@ -617,6 +617,18 @@ bool compare (
|
||||
return left == right;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
bool closeEnough (const std::string& reference, const std::string& attempt)
|
||||
{
|
||||
if (compare (reference, attempt, false))
|
||||
return true;
|
||||
|
||||
if (attempt.length () < reference.length ())
|
||||
return compare (reference.substr (0, attempt.length ()), attempt, false);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
std::string::size_type find (
|
||||
const std::string& text,
|
||||
|
||||
@@ -62,6 +62,7 @@ bool isWordStart (const std::string&, std::string::size_type);
|
||||
bool isWordEnd (const std::string&, std::string::size_type);
|
||||
bool isPunctuation (char);
|
||||
bool compare (const std::string&, const std::string&, bool sensitive = true);
|
||||
bool closeEnough (const std::string&, const std::string&);
|
||||
std::string::size_type find (const std::string&, const std::string&, bool sensitive = true);
|
||||
std::string::size_type find (const std::string&, const std::string&, std::string::size_type, bool sensitive = true);
|
||||
int strippedLength (const std::string&);
|
||||
|
||||
Reference in New Issue
Block a user