diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2006-06-14 16:00:59 +0000 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2006-06-14 16:00:59 +0000 |
commit | 1f01cdb052af4e7b7192f39bd6e8eb4e39ca0381 (patch) | |
tree | ff018c6defd3faa67d1599bfca5c12e9eded1fb9 /cppe/src | |
parent | - IceSSL assembly is now build into the bin directory. (diff) | |
download | ice-1f01cdb052af4e7b7192f39bd6e8eb4e39ca0381.tar.bz2 ice-1f01cdb052af4e7b7192f39bd6e8eb4e39ca0381.tar.xz ice-1f01cdb052af4e7b7192f39bd6e8eb4e39ca0381.zip |
bug 923 - run string converter on properties red frmo file
Diffstat (limited to 'cppe/src')
-rw-r--r-- | cppe/src/IceE/Initialize.cpp | 12 | ||||
-rw-r--r-- | cppe/src/IceE/Properties.cpp | 29 |
2 files changed, 28 insertions, 13 deletions
diff --git a/cppe/src/IceE/Initialize.cpp b/cppe/src/IceE/Initialize.cpp index 0948d00a2b9..6bf6fe9e678 100644 --- a/cppe/src/IceE/Initialize.cpp +++ b/cppe/src/IceE/Initialize.cpp @@ -61,22 +61,22 @@ Ice::stringSeqToArgs(const StringSeq& args, int& argc, char* argv[]) } PropertiesPtr -Ice::createProperties() +Ice::createProperties(const StringConverterPtr& converter) { - return new Properties(); + return new Properties(converter); } PropertiesPtr -Ice::createProperties(StringSeq& args, const PropertiesPtr& defaults) +Ice::createProperties(StringSeq& args, const PropertiesPtr& defaults, const StringConverterPtr& converter) { - return new Properties(args, defaults); + return new Properties(args, defaults, converter); } PropertiesPtr -Ice::createProperties(int& argc, char* argv[], const PropertiesPtr& defaults) +Ice::createProperties(int& argc, char* argv[], const PropertiesPtr& defaults, const StringConverterPtr& converter) { StringSeq args = argsToStringSeq(argc, argv); - PropertiesPtr properties = createProperties(args, defaults); + PropertiesPtr properties = createProperties(args, defaults, converter); stringSeqToArgs(args, argc, argv); return properties; } diff --git a/cppe/src/IceE/Properties.cpp b/cppe/src/IceE/Properties.cpp index fad542e583a..69d98ec3dad 100644 --- a/cppe/src/IceE/Properties.cpp +++ b/cppe/src/IceE/Properties.cpp @@ -159,7 +159,7 @@ Ice::Properties::parseCommandLineOptions(const string& prefix, const StringSeq& opt += "=1"; } - parseLine(opt.substr(2)); + parseLine(opt.substr(2), 0); } else { @@ -190,7 +190,7 @@ Ice::Properties::load(const std::string& file) char line[1024]; while(fgets(line, 1024, in) != NULL) { - parseLine(line); + parseLine(line, _converter); } fclose(in); } @@ -203,15 +203,18 @@ Ice::Properties::clone() } Ice::Properties::Properties(const Properties* p) : - _properties(p->_properties) + _properties(p->_properties), + _converter(p->_converter) { } -Ice::Properties::Properties() +Ice::Properties::Properties(const StringConverterPtr& converter) : + _converter(converter) { } -Ice::Properties::Properties(StringSeq& args, const PropertiesPtr& defaults) +Ice::Properties::Properties(StringSeq& args, const PropertiesPtr& defaults, const StringConverterPtr& converter) : + _converter(converter) { if(defaults != 0) { @@ -242,7 +245,7 @@ Ice::Properties::Properties(StringSeq& args, const PropertiesPtr& defaults) { s += "=1"; } - parseLine(s.substr(2)); + parseLine(s.substr(2), 0); loadConfigFiles = true; } else @@ -270,7 +273,7 @@ Ice::Properties::Properties(StringSeq& args, const PropertiesPtr& defaults) } void -Ice::Properties::parseLine(const string& line) +Ice::Properties::parseLine(const string& line, const StringConverterPtr& converter) { const string delim = " \t\r\n"; string s = line; @@ -315,6 +318,18 @@ Ice::Properties::parseLine(const string& line) end = s.length(); value = s.substr(beg, end - beg); } + + if(converter) + { + string tmp; + converter->fromUTF8(reinterpret_cast<const Byte*>(key.data()), + reinterpret_cast<const Byte*>(key.data() + key.size()), tmp); + key.swap(tmp); + + converter->fromUTF8(reinterpret_cast<const Byte*>(value.data()), + reinterpret_cast<const Byte*>(value.data() + value.size()), tmp); + value.swap(tmp); + } setProperty(key, value); } |