aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/bfc/string/url.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Wasabi/bfc/string/url.h')
-rw-r--r--Src/Wasabi/bfc/string/url.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/Src/Wasabi/bfc/string/url.h b/Src/Wasabi/bfc/string/url.h
new file mode 100644
index 00000000..49c72e80
--- /dev/null
+++ b/Src/Wasabi/bfc/string/url.h
@@ -0,0 +1,33 @@
+#ifndef _URL_H
+#define _URL_H
+
+#include <bfc/common.h>
+#include <bfc/string/StringW.h>
+
+//#define URLENCODE_NOTHING 1 // encode nothing (add some flags!), default is to start with everything
+#define URLENCODE_EXCLUDEALPHANUM 2 // do not encode characters that are alphanumeric (a-z,0-1) or _ - and .
+#define URLENCODE_EXCLUDESLASH 4 // don't encode '/' or ':'
+//#define URLENCODE_EXCLUDEHTTPPREFIX 8 // don't encode "http://"
+//#define URLENCODE_EXCLUDE_8BIT 16 // do not encode > 127
+#define URLENCODE_EXCLUDE_ABOVEEQ32 32 // do not encode >= 32
+//#define URLENCODE_ENCODESPACE 64 // force encoding space
+//#define URLENCODE_ENCODEXML 128 // force encoding '>' and '<'
+
+#define URLENCODE_DEFAULT URLENCODE_EXCLUDEALPHANUM
+//#define URLENCODE_FULLURL (URLENCODE_DEFAULT|URLENCODE_EXCLUDEHTTPPREFIX|URLENCODE_EXCLUDESLASH|URLENCODE_EXCLUDE_7BIT_ABOVEEQ32|URLENCODE_ENCODESPACE)
+
+class Url {
+public:
+ static void encode(StringW &dest, int use_plus_for_space = FALSE, int encoding = URLENCODE_DEFAULT, int style=URLENCODE_STYLE_PERCENT);
+ static void encode(String &dest, int use_plus_for_space = FALSE, int encoding = URLENCODE_DEFAULT, int style=URLENCODE_STYLE_PERCENT);
+ static void decode(StringW &str, int use_plus_for_space = FALSE);
+ static void decode(wchar_t *str); // in place url decode
+
+ enum {
+ URLENCODE_STYLE_PERCENT = 0, // %AB
+ URLENCODE_STYLE_ANDPOUND = 1, // &#171;
+ URLENCODE_STYLE_ANDPOUNDX = 2, // &#xAB;
+ };
+};
+
+#endif