This is an automated email from the ASF dual-hosted git repository. swebb2066 pushed a commit to branch fix_logchar_unichar in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git
commit a68bca371a917881045f83dc93b45b6f2eedb184 Author: Stephen Webb <[email protected]> AuthorDate: Mon Jun 8 16:13:19 2026 +1000 Fix compilation errors when using LOG4CXX_CHAR=unicode --- .github/workflows/log4cxx-ubuntu.yml | 5 +++-- src/main/cpp/asyncbuffer.cpp | 4 +++- src/main/cpp/smtpappender.cpp | 2 +- src/main/cpp/threadutility.cpp | 8 ++++---- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.github/workflows/log4cxx-ubuntu.yml b/.github/workflows/log4cxx-ubuntu.yml index 71899d10..56faadac 100644 --- a/.github/workflows/log4cxx-ubuntu.yml +++ b/.github/workflows/log4cxx-ubuntu.yml @@ -37,7 +37,7 @@ jobs: multithread: OFF exitevents: OFF fuzzers: OFF - logchar: utf-8 + logchar: unicode next_abi: OFF - name: ubuntu22-clang os: ubuntu-22.04 @@ -107,6 +107,7 @@ jobs: run: | ROOT=`pwd` set -x + [ ${{ matrix.logchar }} == unicode ] && OPTIONAL_API=-DLOG4CXX_UNICHAR=1 cmake \ -DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \ -DLOG4CXX_TEST_ONLY_BUILD=1 \ @@ -116,7 +117,7 @@ jobs: -DLOG4CXX_MULTIPROCESS_ROLLING_FILE_APPENDER=${{ matrix.multiprocess }} \ -DLOG4CXX_EVENTS_AT_EXIT=${{ matrix.exitevents }} \ -DBUILD_FUZZERS=${{ matrix.fuzzers }} \ - -DLOG4CXX_CHAR=${{ matrix.logchar }} \ + -DLOG4CXX_CHAR=${{ matrix.logchar }} $OPTIONAL_API \ -DLOG4CXX_BUILD_NEXT_ABI=${{ matrix.next_abi }} \ -DCMAKE_INSTALL_PREFIX=$ROOT/lib \ -S $ROOT/main \ diff --git a/src/main/cpp/asyncbuffer.cpp b/src/main/cpp/asyncbuffer.cpp index 56c6d425..54d72708 100644 --- a/src/main/cpp/asyncbuffer.cpp +++ b/src/main/cpp/asyncbuffer.cpp @@ -159,7 +159,7 @@ void AsyncBuffer::renderMessage(LogCharMessageBuffer& msg) const LOG4CXX_DECODE_WCHAR(lsMsg, wideBuf.extract_str(wideBuf)); msg << lsMsg; } -#else // !LOG4CXX_LOGCHAR_IS_UTF8 +#elif LOG4CXX_LOGCHAR_IS_WCHAR if (auto pRenderer = std::get_if<WideMessageBufferAppender>(&renderer)) (*pRenderer)(msg); else @@ -169,6 +169,8 @@ void AsyncBuffer::renderMessage(LogCharMessageBuffer& msg) const LOG4CXX_DECODE_CHAR(lsMsg, narrowBuf.extract_str(narrowBuf)); msg << lsMsg; } +#else + msg << LOG4CXX_STR("Unichar is not supported"); #endif // !LOG4CXX_LOGCHAR_IS_UTF8 } #else // !LOG4CXX_CONCEPTS diff --git a/src/main/cpp/smtpappender.cpp b/src/main/cpp/smtpappender.cpp index 496c3d53..079d85fa 100644 --- a/src/main/cpp/smtpappender.cpp +++ b/src/main/cpp/smtpappender.cpp @@ -54,7 +54,7 @@ namespace // owns SMTP wire-format sanitization (see SMTPSession::toAscii, which silently // rewrites non-ASCII to '?'); strip CR/LF in the public setters so the same // boundary is enforced regardless of how the value reaches the appender. -LogString stripSmtpControl(const LogString& value, const logchar* field) +LogString stripSmtpControl(const LogString& value, const LogString& field) { if (value.find_first_of(LOG4CXX_STR("\r\n")) == LogString::npos) { diff --git a/src/main/cpp/threadutility.cpp b/src/main/cpp/threadutility.cpp index 4ea4c078..acdd57e4 100644 --- a/src/main/cpp/threadutility.cpp +++ b/src/main/cpp/threadutility.cpp @@ -189,7 +189,7 @@ void ThreadUtility::preThreadBlockSignals() if ( pthread_sigmask(SIG_SETMASK, &set, &old_mask) < 0 ) { - LOGLOG_ERROR( LOG4CXX_STR("Unable to set thread sigmask") ); + LogLog::error( LOG4CXX_STR("Unable to set thread sigmask") ); sigmask_valid = false; } else @@ -207,7 +207,7 @@ void ThreadUtility::threadStartedNameThread(LogString threadName, #if LOG4CXX_HAS_PTHREAD_SETNAME && !(defined(_WIN32) && defined(_LIBCPP_VERSION)) LOG4CXX_ENCODE_CHAR(sthreadName, threadName); if (pthread_setname_np(static_cast<pthread_t>(nativeHandle), sthreadName.c_str()) < 0) { - LOGLOG_ERROR(LOG4CXX_STR("unable to set thread name")); + LogLog::error(LOG4CXX_STR("Unable to set thread name")); } #elif defined(_WIN32) typedef HRESULT (WINAPI *TSetThreadDescription)(HANDLE, PCWSTR); @@ -227,7 +227,7 @@ void ThreadUtility::threadStartedNameThread(LogString threadName, { LOG4CXX_ENCODE_WCHAR(wthreadName, threadName); if(FAILED(win32Func.SetThreadDescription(static_cast<HANDLE>(nativeHandle), wthreadName.c_str()))) - LOGLOG_ERROR( LOG4CXX_STR("unable to set thread name") ); + LogLog::error( LOG4CXX_STR(Unable to set thread name") ); } #endif } @@ -241,7 +241,7 @@ void ThreadUtility::postThreadUnblockSignals() { if ( pthread_sigmask(SIG_SETMASK, &old_mask, nullptr) < 0 ) { - LOGLOG_ERROR( LOG4CXX_STR("Unable to set thread sigmask") ); + LogLog::error( LOG4CXX_STR("Unable to set thread sigmask") ); } }
