From 1161c5817059464ab511632c0ce5d14593ced1a3 Mon Sep 17 00:00:00 2001 From: Jose Date: Fri, 2 May 2014 19:56:38 +0200 Subject: ICE-4851 - Use wstrings for input and output data that contain non-ASCII characters? --- cpp/src/Ice/Application.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'cpp/src/Ice/Application.cpp') diff --git a/cpp/src/Ice/Application.cpp b/cpp/src/Ice/Application.cpp index 39175648f73..1519683d440 100644 --- a/cpp/src/Ice/Application.cpp +++ b/cpp/src/Ice/Application.cpp @@ -316,7 +316,7 @@ Ice::Application::main(int argc, char* argv[], const char* configFile) if(argc > 0 && argv[0] && LoggerIPtr::dynamicCast(getProcessLogger())) { - setProcessLogger(new LoggerI(argv[0], "")); + setProcessLogger(new LoggerI(argv[0], "", true, IceUtil::getProcessStringConverter())); } InitializationData initData; @@ -358,7 +358,7 @@ Ice::Application::main(int argc, wchar_t* argv[], const Ice::InitializationData& // On Windows the given wchar_t* strings are UTF16 and therefore // needs to be converted to native narow string encoding. // - return main(argsToStringSeq(argc, argv, initData.stringConverter), initData); + return main(argsToStringSeq(argc, argv), initData); } #endif @@ -368,7 +368,10 @@ Ice::Application::main(int argc, char* argv[], const InitializationData& initial { if(argc > 0 && argv[0] && LoggerIPtr::dynamicCast(getProcessLogger())) { - setProcessLogger(new LoggerI(argv[0], "")); + const bool convert = initializationData.properties ? + initializationData.properties->getPropertyAsIntWithDefault("Ice.LogStdErr.Convert", 1) == 1 && + initializationData.properties->getProperty("Ice.StdErr").empty() : true; + setProcessLogger(new LoggerI(argv[0], "", convert, IceUtil::getProcessStringConverter())); } if(IceInternal::Application::_communicator != 0) @@ -385,7 +388,7 @@ Ice::Application::main(int argc, char* argv[], const InitializationData& initial InitializationData initData = initializationData; try { - initData.properties = createProperties(argc, argv, initData.properties, initData.stringConverter); + initData.properties = createProperties(argc, argv, initData.properties); } catch(const std::exception& ex) { @@ -656,7 +659,12 @@ Ice::Application::doMain(int argc, char* argv[], const InitializationData& initD // if(initData.properties->getProperty("Ice.ProgramName") != "" && LoggerIPtr::dynamicCast(getProcessLogger())) { - setProcessLogger(new LoggerI(initData.properties->getProperty("Ice.ProgramName"), "")); + const bool convert = + initData.properties->getPropertyAsIntWithDefault("Ice.LogStdErr.Convert", 1) == 1 && + initData.properties->getProperty("Ice.StdErr").empty(); + + setProcessLogger(new LoggerI(initData.properties->getProperty("Ice.ProgramName"), "", convert, + IceUtil::getProcessStringConverter())); } IceInternal::Application::_communicator = initialize(argc, argv, initData); -- cgit v1.2.3