You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4cxx-dev@logging.apache.org by ca...@apache.org on 2007/04/04 21:18:34 UTC
svn commit: r525584 - in /logging/log4cxx/trunk: src/charsetencoder.cpp
tests/src/minimumtestcase.cpp
Author: carnold
Date: Wed Apr 4 12:18:33 2007
New Revision: 525584
URL: http://svn.apache.org/viewvc?view=rev&rev=525584
Log:
LOGCXX-178: Recognize 646 as ASCII, avoid conflict with ERR
Modified:
logging/log4cxx/trunk/src/charsetencoder.cpp
logging/log4cxx/trunk/tests/src/minimumtestcase.cpp
Modified: logging/log4cxx/trunk/src/charsetencoder.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/src/charsetencoder.cpp?view=diff&rev=525584&r1=525583&r2=525584
==============================================================================
--- logging/log4cxx/trunk/src/charsetencoder.cpp (original)
+++ logging/log4cxx/trunk/src/charsetencoder.cpp Wed Apr 4 12:18:33 2007
@@ -22,6 +22,7 @@
#include <log4cxx/helpers/stringhelper.h>
#include <log4cxx/helpers/unicodehelper.h>
#include <log4cxx/private/log4cxx_private.h>
+#include <apr_portable.h>
using namespace log4cxx;
@@ -44,11 +45,9 @@
APRCharsetEncoder(const char* topage) {
#if LOG4CXX_LOGCHAR_IS_WCHAR
const char* frompage = "WCHAR_T";
-#define FROMPAGE "WCHAR_T"
#endif
#if LOG4CXX_LOGCHAR_IS_UTF8
const char* frompage = "UTF-8";
-#define FROMPAGE "UTF-8"
#endif
apr_status_t stat = apr_pool_create(&pool, NULL);
if (stat != APR_SUCCESS) {
@@ -62,7 +61,18 @@
if (topage == APR_DEFAULT_CHARSET) {
throw IllegalArgumentException("APR_DEFAULT_CHARSET");
} else if (topage == APR_LOCALE_CHARSET) {
- throw IllegalArgumentException("APRCharsetEncoder(" FROMPAGE ",APR_LOCALE_CHARSET)");
+ const char* localeEncoding =
+ apr_os_locale_encoding(pool);
+ // Solaris likes returning 646 if nl_langinfo has not been called
+ if(localeEncoding != NULL && strcmp("646", localeEncoding) == 0) {
+ stat = apr_xlate_open(&convset,
+ "ASCII",
+ frompage,
+ pool);
+ }
+ if (stat != APR_SUCCESS) {
+ throw IllegalArgumentException("APR_LOCALE_CHARSET");
+ }
} else {
throw IllegalArgumentException(topage);
}
Modified: logging/log4cxx/trunk/tests/src/minimumtestcase.cpp
URL: http://svn.apache.org/viewvc/logging/log4cxx/trunk/tests/src/minimumtestcase.cpp?view=diff&rev=525584&r1=525583&r2=525584
==============================================================================
--- logging/log4cxx/trunk/tests/src/minimumtestcase.cpp (original)
+++ logging/log4cxx/trunk/tests/src/minimumtestcase.cpp Wed Apr 4 12:18:33 2007
@@ -128,8 +128,8 @@
// In the lines below, the category names are chosen as an aid in
// remembering their level values. In general, the category names
// have no bearing to level values.
- LoggerPtr ERR = Logger::getLogger(LOG4CXX_TEST_STR("ERR"));
- ERR->setLevel(Level::getError());
+ LoggerPtr ERRlogger = Logger::getLogger(LOG4CXX_TEST_STR("ERR"));
+ ERRlogger->setLevel(Level::getError());
LoggerPtr INF = Logger::getLogger(LOG4CXX_TEST_STR("INF"));
INF->setLevel(Level::INFO);
@@ -150,9 +150,9 @@
Pool pool;
// These should all log.----------------------------
- LOG4CXX_FATAL(ERR, createMessage(i, pool));
+ LOG4CXX_FATAL(ERRlogger, createMessage(i, pool));
i++; //0
- LOG4CXX_ERROR(ERR, createMessage(i, pool));
+ LOG4CXX_ERROR(ERRlogger, createMessage(i, pool));
i++;
LOG4CXX_FATAL(INF, createMessage(i, pool));
@@ -208,11 +208,11 @@
// -------------------------------------------------
// The following should not log
- LOG4CXX_WARN(ERR, createMessage(i, pool));
+ LOG4CXX_WARN(ERRlogger, createMessage(i, pool));
i++;
- LOG4CXX_INFO(ERR, createMessage(i, pool));
+ LOG4CXX_INFO(ERRlogger, createMessage(i, pool));
i++;
- LOG4CXX_DEBUG(ERR, createMessage(i, pool));
+ LOG4CXX_DEBUG(ERRlogger, createMessage(i, pool));
i++;
LOG4CXX_DEBUG(INF, createMessage(i, pool));