aboutsummaryrefslogtreecommitdiffstats
path: root/3rdparty/python-console/Utils.h
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/python-console/Utils.h')
-rw-r--r--3rdparty/python-console/Utils.h33
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