From 8b3ae14d9aa616079b1ca8d9d70c6fc53f3b7f97 Mon Sep 17 00:00:00 2001 From: Tomasz Sowa Date: Sat, 24 Nov 2018 10:47:13 +0000 Subject: [PATCH] fixed: FileLog didn't save an utf8 sequence git-svn-id: svn://ttmath.org/publicrep/pikotools/trunk@1155 e52654a7-88a9-db11-a3e9-0013d4bc506e --- log/filelog.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/log/filelog.cpp b/log/filelog.cpp index 3d11359..579a3ca 100644 --- a/log/filelog.cpp +++ b/log/filelog.cpp @@ -103,20 +103,21 @@ void FileLog::open_file() void FileLog::PutBuffer(PT::WTextStream * buffer, std::ostream & out_stream) { char utf8_buffer[256]; + std::size_t buffer_len = sizeof(utf8_buffer) / sizeof(char); + std::size_t utf8_sequence_max_length = 10; std::size_t index = 0; PT::WTextStream::const_iterator i = buffer->begin(); while( i != buffer->end() ) { - utf8_buffer[index++] = *i; - - if( index + 10 > sizeof(utf8_buffer) / sizeof(char) ) + if( index + utf8_sequence_max_length > buffer_len ) { out_stream.write(utf8_buffer, index); index = 0; } + index += PT::IntToUTF8(*i, utf8_buffer + index, buffer_len - index); ++i; }