#ifndef PYTHON_CONSOLE_UTILS_H #define PYTHON_CONSOLE_UTILS_H #include #include /** 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 >= (int)str.size() || str[j] != str0[j]) endIndex = j - 1; } } return (endIndex > 0)? str0.substr(0, endIndex + 1) : ""; } #endif // PYTHON_CONSOLE_UTILS_H