summaryrefslogtreecommitdiffstats
path: root/src/misc_functions.cpp
diff options
context:
space:
mode:
authorErik Andersson <erik@packy.se>2016-11-22 23:39:22 +0100
committerErik Andersson <erik@packy.se>2016-11-22 23:39:22 +0100
commite44ac0da6b8a57f56bbd97f816812294649d88f3 (patch)
tree5a23cfa814e8aab194557325b78abcf7a0fef9cf /src/misc_functions.cpp
parent5075582f37121bf6dc092ef1574a296086bdb13e (diff)
downloadocelot-e44ac0da6b8a57f56bbd97f816812294649d88f3.zip
ocelot-e44ac0da6b8a57f56bbd97f816812294649d88f3.tar.gz
ocelot-e44ac0da6b8a57f56bbd97f816812294649d88f3.tar.bz2
Ocelot v0.1-alphav0.1-alpha
Diffstat (limited to 'src/misc_functions.cpp')
-rw-r--r--src/misc_functions.cpp58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/misc_functions.cpp b/src/misc_functions.cpp
new file mode 100644
index 0000000..0e00bdf
--- /dev/null
+++ b/src/misc_functions.cpp
@@ -0,0 +1,58 @@
+#include <string>
+#include <iostream>
+#include <sstream>
+
+long strtolong(const std::string& str) {
+ std::istringstream stream (str);
+ long i = 0;
+ stream >> i;
+ return i;
+}
+
+long long strtolonglong(const std::string& str) {
+ std::istringstream stream (str);
+ long long i = 0;
+ stream >> i;
+ return i;
+}
+
+
+std::string inttostr(const int i) {
+ std::string str;
+ std::stringstream out;
+ out << i;
+ str = out.str();
+ return str;
+}
+
+std::string hex_decode(const std::string &in) {
+ std::string out;
+ out.reserve(20);
+ unsigned int in_length = in.length();
+ for(unsigned int i = 0; i < in_length; i++) {
+ unsigned char x = '0';
+ if(in[i] == '%' && (i + 2) < in_length) {
+ i++;
+ if(in[i] >= 'a' && in[i] <= 'f') {
+ x = static_cast<unsigned char>((in[i]-87) << 4);
+ } else if(in[i] >= 'A' && in[i] <= 'F') {
+ x = static_cast<unsigned char>((in[i]-55) << 4);
+ } else if(in[i] >= '0' && in[i] <= '9') {
+ x = static_cast<unsigned char>((in[i]-48) << 4);
+ }
+
+ i++;
+ if(in[i] >= 'a' && in[i] <= 'f') {
+ x += static_cast<unsigned char>(in[i]-87);
+ } else if(in[i] >= 'A' && in[i] <= 'F') {
+ x += static_cast<unsigned char>(in[i]-55);
+ } else if(in[i] >= '0' && in[i] <= '9') {
+ x += static_cast<unsigned char>(in[i]-48);
+ }
+ } else {
+ x = in[i];
+ }
+ out.push_back(x);
+ }
+ return out;
+}