diff --git a/src/text.cpp b/src/text.cpp index a32688d7d..e53ddab88 100644 --- a/src/text.cpp +++ b/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, diff --git a/src/text.h b/src/text.h index 073917fe6..346877f04 100644 --- a/src/text.h +++ b/src/text.h @@ -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&);