diff options
author | Jose <jose@zeroc.com> | 2009-07-29 21:50:06 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2009-07-29 21:50:06 +0200 |
commit | db9adf0e14f01d0aa8eb288a172995847c006f57 (patch) | |
tree | 9690b02e0f0c85377c0feedb18b3a203d73928fb /cpp/src/Ice/Initialize.cpp | |
parent | bug 4003 - update bindist READMEs for bzip2 (diff) | |
download | ice-db9adf0e14f01d0aa8eb288a172995847c006f57.tar.bz2 ice-db9adf0e14f01d0aa8eb288a172995847c006f57.tar.xz ice-db9adf0e14f01d0aa8eb288a172995847c006f57.zip |
Changes for bug 3962 and 4714
Diffstat (limited to 'cpp/src/Ice/Initialize.cpp')
-rw-r--r-- | cpp/src/Ice/Initialize.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/cpp/src/Ice/Initialize.cpp b/cpp/src/Ice/Initialize.cpp index e950b960bb1..da9027b5061 100644 --- a/cpp/src/Ice/Initialize.cpp +++ b/cpp/src/Ice/Initialize.cpp @@ -50,6 +50,35 @@ Ice::argsToStringSeq(int argc, char* argv[]) return result; } +#ifdef _WIN32 + +StringSeq +Ice::argsToStringSeq(int argc, wchar_t* argv[]) +{ + return argsToStringSeq(argc, argv, 0); +} + +StringSeq +Ice::argsToStringSeq(int argc, wchar_t* argv[], const StringConverterPtr& converter) +{ + StringSeq args; + for(int i=0; argv[i] != 0; i++) + { + string value = IceUtil::wstringToString(argv[i]); + if(converter) + { + string tmp; + converter->fromUTF8(reinterpret_cast<const Byte*>(value.data()), + reinterpret_cast<const Byte*>(value.data() + value.size()), tmp); + value.swap(tmp); + } + args.push_back(value); + } + return args; +} + +#endif + void Ice::stringSeqToArgs(const StringSeq& args, int& argc, char* argv[]) { |