#include <cstring>
#include <vector>
#include <sstream>
+#include <cctype>
+
+#define STRINGIFY(x) #x
+#define TOSTRING(x) STRINGIFY(x)
struct FlagDesc {
const char *name;
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
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;
{
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];
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