fixed: FileLog didn't save an utf8 sequence
git-svn-id: svn://ttmath.org/publicrep/pikotools/trunk@1155 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
parent
e971e1ef9b
commit
8b3ae14d9a
|
@ -103,20 +103,21 @@ void FileLog::open_file()
|
||||||
void FileLog::PutBuffer(PT::WTextStream * buffer, std::ostream & out_stream)
|
void FileLog::PutBuffer(PT::WTextStream * buffer, std::ostream & out_stream)
|
||||||
{
|
{
|
||||||
char utf8_buffer[256];
|
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;
|
std::size_t index = 0;
|
||||||
|
|
||||||
PT::WTextStream::const_iterator i = buffer->begin();
|
PT::WTextStream::const_iterator i = buffer->begin();
|
||||||
|
|
||||||
while( i != buffer->end() )
|
while( i != buffer->end() )
|
||||||
{
|
{
|
||||||
utf8_buffer[index++] = *i;
|
if( index + utf8_sequence_max_length > buffer_len )
|
||||||
|
|
||||||
if( index + 10 > sizeof(utf8_buffer) / sizeof(char) )
|
|
||||||
{
|
{
|
||||||
out_stream.write(utf8_buffer, index);
|
out_stream.write(utf8_buffer, index);
|
||||||
index = 0;
|
index = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
index += PT::IntToUTF8(*i, utf8_buffer + index, buffer_len - index);
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue