Fix warnings reported by clang
[oweals/minetest.git] / src / util / string.h
index 1cb4ae8d8da6bbf2900a194a27cca3880568957d..6e2db0af46cbe58e1e037375239b59b509d92dec 100644 (file)
@@ -26,6 +26,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include <cstring>
 #include <vector>
 #include <sstream>
+#include <cctype>
+
+#define STRINGIFY(x) #x
+#define TOSTRING(x) STRINGIFY(x)
 
 struct FlagDesc {
        const char *name;
@@ -163,6 +167,12 @@ inline s32 mystoi(const std::string &s, s32 min, s32 max)
        return i;
 }
 
+inline s64 stoi64(const std::string &s) {
+       std::stringstream tmp(s);
+       s64 t;
+       tmp >> t;
+       return t;
+}
 
 // MSVC2010 includes it's own versions of these
 //#if !defined(_MSC_VER) || _MSC_VER < 1600
@@ -200,6 +210,12 @@ inline std::string itos(s32 i)
        return o.str();
 }
 
+inline std::string i64tos(s64 i) {
+       std::ostringstream o;
+       o<<i;
+       return o.str();
+}
+
 inline std::string ftos(float f)
 {
        std::ostringstream o;
@@ -295,7 +311,7 @@ inline std::string unescape_string(std::string &s)
 {
        std::string res;
        
-       for (size_t i = 0; i <= s.length(); i++) {
+       for (size_t i = 0; i < s.length(); i++) {
                if (s[i] == '\\')
                        i++;
                res += s[i];
@@ -304,11 +320,25 @@ inline std::string unescape_string(std::string &s)
        return res;
 }
 
+inline bool is_number(const std::string& tocheck)
+{
+       std::string::const_iterator iter = tocheck.begin();
+
+       while (iter != tocheck.end() && std::isdigit(*iter)) {
+               ++iter;
+       }
+
+       return ((!tocheck.empty()) && (iter == tocheck.end()));
+}
+
 std::string translatePassword(std::string playername, std::wstring password);
-size_t curl_write_data(char *ptr, size_t size, size_t nmemb, void *userdata);
-u32 readFlagString(std::string str, FlagDesc *flagdesc);
-std::string writeFlagString(u32 flags, FlagDesc *flagdesc);
+std::string urlencode(std::string str);
+std::string urldecode(std::string str);
+u32 readFlagString(std::string str, FlagDesc *flagdesc, u32 *flagmask);
+std::string writeFlagString(u32 flags, FlagDesc *flagdesc, u32 flagmask);
+size_t mystrlcpy(char *dst, const char *src, size_t size);
 char *mystrtok_r(char *s, const char *sep, char **lasts);
+u64 read_seed(const char *str);
 
 #endif