Only consider continuation tokens at end of line

pull/3543/head
Martin 2020-12-15 12:16:22 +01:00 committed by GitHub
parent 2f1ff974fd
commit 3718980c09
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 14 deletions

View File

@ -254,25 +254,16 @@ bool IOStreamBuffer<T>::getNextDataLine( std::vector<T> &buffer, T continuationT
} }
} }
bool continuationFound( false );
size_t i = 0; size_t i = 0;
for( ;; ) { for( ;; ) {
if ( continuationToken == m_cache[ m_cachePos ] ) { if ( continuationToken == m_cache[ m_cachePos ] && IsLineEnd( m_cache[ m_cachePos + 1 ] ) ) {
continuationFound = true;
++m_cachePos; ++m_cachePos;
}
if ( IsLineEnd( m_cache[ m_cachePos ] ) ) {
if ( !continuationFound ) {
// the end of the data line
break;
} else {
// skip line end
while (m_cache[m_cachePos] != '\n') { while (m_cache[m_cachePos] != '\n') {
++m_cachePos; ++m_cachePos;
} }
++m_cachePos; ++m_cachePos;
continuationFound = false; } else if ( IsLineEnd ( m_cache[ m_cachePos ] ) ) {
} break;
} }
buffer[ i ] = m_cache[ m_cachePos ]; buffer[ i ] = m_cache[ m_cachePos ];