diff options
author | madmaxoft <github@xoft.cz> | 2014-08-09 22:34:59 +0200 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2014-08-09 22:56:06 +0200 |
commit | dcef688ccc0ae60b001ce40fd591a2dfafbac294 (patch) | |
tree | 3494115d8618d19516350b809ec6264e0b4818fe /src/WebAdmin.cpp | |
parent | Merge pull request #1295 from mc-server/crystal (diff) | |
download | cuberite-dcef688ccc0ae60b001ce40fd591a2dfafbac294.tar cuberite-dcef688ccc0ae60b001ce40fd591a2dfafbac294.tar.gz cuberite-dcef688ccc0ae60b001ce40fd591a2dfafbac294.tar.bz2 cuberite-dcef688ccc0ae60b001ce40fd591a2dfafbac294.tar.lz cuberite-dcef688ccc0ae60b001ce40fd591a2dfafbac294.tar.xz cuberite-dcef688ccc0ae60b001ce40fd591a2dfafbac294.tar.zst cuberite-dcef688ccc0ae60b001ce40fd591a2dfafbac294.zip |
Diffstat (limited to '')
-rw-r--r-- | src/WebAdmin.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/WebAdmin.cpp b/src/WebAdmin.cpp index f5dc6fde7..ab6925e55 100644 --- a/src/WebAdmin.cpp +++ b/src/WebAdmin.cpp @@ -444,6 +444,38 @@ AString cWebAdmin::GetHTMLEscapedString(const AString & a_Input) +AString cWebAdmin::GetURLEncodedString(const AString & a_Input) +{ + // Translation table from nibble to hex: + static const char Hex[] = "0123456789abcdef"; + + // Preallocate the output to match input: + AString dst; + size_t len = a_Input.length(); + dst.reserve(len); + + // Loop over input and substitute whatever is needed: + for (size_t i = 0; i < len; i++) + { + char ch = a_Input[i]; + if (isalnum(ch) || (ch == '-') || (ch == '_') || (ch == '.') || (ch == '~')) + { + dst.push_back(ch); + } + else + { + dst.push_back('%'); + dst.push_back(Hex[(ch >> 4) & 0x0f]); + dst.push_back(Hex[ch & 0x0f]); + } + } // for i - a_Input[] + return dst; +} + + + + + AString cWebAdmin::GetBaseURL(const AStringVector & a_URLSplit) { AString BaseURL = "./"; |