diff options
Diffstat (limited to '3rdparty/python-console/Utils.h')
-rw-r--r-- | 3rdparty/python-console/Utils.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/3rdparty/python-console/Utils.h b/3rdparty/python-console/Utils.h new file mode 100644 index 00000000..ebd4234f --- /dev/null +++ b/3rdparty/python-console/Utils.h @@ -0,0 +1,33 @@ +#ifndef PYTHON_CONSOLE_UTILS_H +#define PYTHON_CONSOLE_UTILS_H +#include <string> +#include <vector> + +/** +InputIterator has value type of std::string. +*/ +template < class InputIterator > +std::string LongestCommonPrefix( InputIterator begin, InputIterator end ) +{ + if ( begin == end ) + return ""; + + const std::string& str0 = *begin; + if ( ! str0.size() ) + return ""; + + int endIndex = str0.size() - 1; + InputIterator it = begin; ++it; + for (; it != end; ++it) + { + const std::string& str = *it; + for (int j = 0; j <= endIndex; ++j) + { + if (j >= str.size() || str[j] != str0[j]) + endIndex = j - 1; + } + } + return (endIndex > 0)? str0.substr(0, endIndex + 1) : ""; +} + +#endif // PYTHON_CONSOLE_UTILS_H |