input/TextInputStream: move ReadBufferedLine() to util/TextFile.hxx

This commit is contained in:
Max Kellermann
2014-08-07 19:07:03 +02:00
parent 8278a12af9
commit 5ac2a69940
3 changed files with 55 additions and 22 deletions

View File

@@ -21,31 +21,15 @@
#include "TextInputStream.hxx"
#include "InputStream.hxx"
#include "util/Error.hxx"
#include "util/TextFile.hxx"
#include "Log.hxx"
#include <assert.h>
#include <string.h>
char *
TextInputStream::ReadBufferedLine()
{
auto r = buffer.Read();
char *newline = reinterpret_cast<char*>(memchr(r.data, '\n', r.size));
if (newline == nullptr)
return nullptr;
buffer.Consume(newline + 1 - r.data);
if (newline > r.data && newline[-1] == '\r')
--newline;
*newline = 0;
return r.data;
}
char *
TextInputStream::ReadLine()
{
char *line = ReadBufferedLine();
char *line = ReadBufferedLine(buffer);
if (line != nullptr)
return line;
@@ -76,7 +60,7 @@ TextInputStream::ReadLine()
return nullptr;
}
line = ReadBufferedLine();
line = ReadBufferedLine(buffer);
if (line != nullptr)
return line;

View File

@@ -47,9 +47,6 @@ public:
* @return a pointer to the line, or nullptr on end-of-file or error
*/
char *ReadLine();
private:
char *ReadBufferedLine();
};
#endif