diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2005-04-21 16:36:46 +0000 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2005-04-21 16:36:46 +0000 |
commit | 387f8471f1dd61ee6cb74e41f97f7d226bd5a7b2 (patch) | |
tree | c3ee5d7aed5b9e585904465dfc61d9dddb520cb1 | |
parent | Removed XMLOutput.java (diff) | |
download | ice-387f8471f1dd61ee6cb74e41f97f7d226bd5a7b2.tar.bz2 ice-387f8471f1dd61ee6cb74e41f97f7d226bd5a7b2.tar.xz ice-387f8471f1dd61ee6cb74e41f97f7d226bd5a7b2.zip |
Removed from CVS
-rw-r--r-- | cpp/src/Ice/StringUtil.cpp | 265 | ||||
-rw-r--r-- | cpp/src/Ice/StringUtil.h | 42 |
2 files changed, 0 insertions, 307 deletions
diff --git a/cpp/src/Ice/StringUtil.cpp b/cpp/src/Ice/StringUtil.cpp deleted file mode 100644 index 23488c8a84e..00000000000 --- a/cpp/src/Ice/StringUtil.cpp +++ /dev/null @@ -1,265 +0,0 @@ -// ********************************************************************** -// -// Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved. -// -// This copy of Ice is licensed to you under the terms described in the -// ICE_LICENSE file included in this distribution. -// -// ********************************************************************** - -#include <Ice/Config.h> -#include <Ice/StringUtil.h> - -using namespace std; - -static string -toOctalString(unsigned int n) -{ - string s; - s.resize(32); - string::size_type charPos = 32; - const int radix = 1 << 3; - int mask = radix - 1; - do - { - s[--charPos] = '0' + (n & mask); - n >>= 3; - } - while(n != 0); - - return string(s, charPos, (32 - charPos)); -} - -static void -encodeChar(string::value_type b, string& s, const string& special) -{ - switch(b) - { - case '\\': - { - s.append("\\\\"); - break; - } - case '\'': - { - s.append("\\'"); - break; - } - case '"': - { - s.append("\\\""); - break; - } - case '\b': - { - s.append("\\b"); - break; - } - case '\f': - { - s.append("\\f"); - break; - } - case '\n': - { - s.append("\\n"); - break; - } - case '\r': - { - s.append("\\r"); - break; - } - case '\t': - { - s.append("\\t"); - break; - } - default: - { - if(static_cast<signed char>(b) <= 31 || b == 127) - { - s.push_back('\\'); - string octal = toOctalString(b); - // - // Add leading zeroes so that we avoid problems during - // decoding. For example, consider the encoded string - // \0013 (i.e., a character with value 1 followed by - // the character '3'). If the leading zeroes were omitted, - // the result would be incorrectly interpreted by the - // decoder as a single character with value 11. - // - for(string::size_type j = octal.size(); j < 3; j++) - { - s.push_back('0'); - } - s.append(octal); - } - else if(special.find(b) != string::npos) - { - s.push_back('\\'); - encodeChar(b, s, ""); - } - else - { - s.push_back(b); - } - } - } -} - -// -// Encodes a string into UTF8, escaping all characters outside the range [32-126] -// as well as any special characters determined by the caller. -// -string -IceInternal::encodeString(const string& s, const string& special) -{ - string result; - result.reserve(s.size()); - - for(string::size_type i = 0; i < s.size(); i++) - { - encodeChar(s[i], result, special); - } - - return result; -} - -// -// Decodes a UTF8 string. Decoding starts at the given start position -// (inclusive) and stops at the given end position (exclusive). Upon success, -// the result parameter holds the decoded string and true is returned. -// A return value of false indicates an error was detected in the encoding. -// -bool -IceInternal::decodeString(const string& s, string::size_type start, string::size_type end, string& result) -{ - assert(end <= s.size()); - assert(start <= end); - - while(start < end) - { - char ch = s[start]; - if(ch == '\\') - { - start++; - if(start == end) - { - return false; // Missing character. - } - ch = s[start]; - switch(ch) - { - case '\\': - { - result.push_back('\\'); - break; - } - case '\'': - case '"': - { - result.push_back(ch); - break; - } - case 'b': - { - result.push_back('\b'); - break; - } - case 'f': - { - result.push_back('\f'); - break; - } - case 'n': - { - result.push_back('\n'); - break; - } - case 'r': - { - result.push_back('\r'); - break; - } - case 't': - { - result.push_back('\t'); - break; - } - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - { - int count = 0; - int val = 0; - while(count < 3 && start < end && s[start] >= '0' && s[start] <= '9') - { - val <<= 3; - val |= s[start] - '0'; - start++; - count++; - } - if(val > 255) - { - return false; // Octal value out of range. - } - result.push_back((string::value_type)val); - continue; // Don't increment start. - } - default: - { - if(static_cast<signed char>(ch) <= 31 || ch == 127) - { - return false; // Malformed encoding. - } - else - { - result.push_back(ch); - } - } - } - } - else - { - result.push_back(ch); - } - start++; - } - - return true; -} - -// -// If a single or double quotation mark is found at the start position, -// then the position of the matching closing quote is returned. If no -// quotation mark is found at the start position, then 0 is returned. -// If no matching closing quote is found, then -1 is returned. -// -string::size_type -IceInternal::checkQuote(const string& s, string::size_type start) -{ - string::value_type quoteChar = s[start]; - if(quoteChar == '"' || quoteChar == '\'') - { - start++; - string::size_type pos; - while(start < s.size() && (pos = s.find(quoteChar, start)) != string::npos) - { - if(s[pos - 1] != '\\') - { - return pos; - } - start = pos + 1; - } - return string::npos; // Unmatched quote. - } - return 0; // Not quoted. -} diff --git a/cpp/src/Ice/StringUtil.h b/cpp/src/Ice/StringUtil.h deleted file mode 100644 index 3e6be58cd9b..00000000000 --- a/cpp/src/Ice/StringUtil.h +++ /dev/null @@ -1,42 +0,0 @@ -// ********************************************************************** -// -// Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved. -// -// This copy of Ice is licensed to you under the terms described in the -// ICE_LICENSE file included in this distribution. -// -// ********************************************************************** - -#ifndef ICE_STRING_UTIL_H -#define ICE_STRING_UTIL_H - -namespace IceInternal -{ - -// -// Encodes a string into UTF8, escaping all characters outside the range [32-126] -// as well as any special characters determined by the caller. -// -std::string encodeString(const std::string&, const std::string&); - -// -// Decodes a UTF8 string. Decoding starts at the given start position -// (inclusive) and stops at the given end position (exclusive). If the end -// position is zero, then the remainder of the string is used. Upon success, -// the result parameter holds the decoded string and true is returned. -// A return value of false indicates an error was detected in the encoding. -// -bool decodeString(const std::string&, std::string::size_type, std::string::size_type, std::string&); - -// -// If a single or double quotation mark is found at the start position, -// then the position of the matching closing quote is returned. If no -// quotation mark is found at the start position, then 0 is returned. -// If no matching closing quote is found, then std::string::npos is -// returned. -// -std::string::size_type checkQuote(const std::string&, std::string::size_type = 0); - -} - -#endif |