TextInputStream: don't ignore unterminated last line

This commit is contained in:
Max Kellermann 2014-10-28 22:10:47 +01:00
parent 394e3be482
commit 217d88f21f
2 changed files with 17 additions and 4 deletions

1
NEWS
View File

@ -1,5 +1,6 @@
ver 0.19.2 (not yet released)
* playlist
- m3u: don't ignore unterminated last line
- m3u: recognize the file suffix ".m3u8"
* decoder
- faad: remove workaround for ancient libfaad2 ABI bug

View File

@ -38,8 +38,8 @@ TextInputStream::ReadLine()
while (true) {
auto dest = buffer.Write();
if (dest.size < 2) {
/* end of file (or line too long): terminate
the current line */
/* line too long: terminate the current
line */
assert(!dest.IsEmpty());
dest[0] = 0;
@ -66,7 +66,19 @@ TextInputStream::ReadLine()
if (line != nullptr)
return line;
if (nbytes == 0)
return nullptr;
if (nbytes == 0) {
/* end of file: see if there's an unterminated
line */
dest = buffer.Write();
assert(!dest.IsEmpty());
dest[0] = 0;
auto r = buffer.Read();
buffer.Clear();
return r.IsEmpty()
? nullptr
: r.data;
}
}
}