]> git.mxchange.org Git - simgear.git/blobdiff - simgear/misc/strutils.hxx
Part of fixing bug 1055.
[simgear.git] / simgear / misc / strutils.hxx
index eeb1bfaaa406cd9de583407b7cb88e3e82cf58bb..c9aa525c4b4f8389e2983bb84517478cb6a44533 100644 (file)
@@ -33,6 +33,7 @@
 #include <vector>
 #include <cstdlib>
 
+typedef std::vector < std::string > string_list;
 
 namespace simgear {
   namespace strutils {
@@ -93,11 +94,17 @@ namespace simgear {
         * resulting in at most maxsplit+1 words.
         * @return Array of words.
         */
-       std::vector<std::string>
+       string_list
        split( const std::string& s,
               const char* sep = 0,
               int maxsplit = 0 );
 
+       /**
+        * create a single string by joining the elements of a list with
+        * another string.
+        */
+       std::string join(const string_list& l, const std::string& joinWith = "");
+
        /**
         * Test if a string starts with a string 
         *
@@ -123,7 +130,31 @@ namespace simgear {
      */
     std::string simplify(const std::string& s);
     
-    int to_int(const std::string& s);
+    /**
+     * convert a string representing a decimal number, to an int
+     */
+    int to_int(const std::string& s, int base = 10);
+    
+    /**
+     * Like strcmp(), but for dotted versions strings NN.NN.NN
+     * any number of terms are support.
+     * @return 0 if versions match, -ve number if v1 is lower, +ve if v1
+     * is greater
+     */
+    int compare_versions(const std::string& v1, const std::string& v2);
+
+    /**
+     * Convert a string to upper case.
+     * @return upper case string
+     */
+    std::string uppercase(const std::string &s);
+
+       /**
+     * convert a string in the local Windows 8-bit encoding to UTF-8
+     * (no-op on other platforms)
+     */
+    std::string convertWindowsLocal8BitToUtf8(const std::string& a);
+
   } // end namespace strutils
 } // end namespace simgear