/usr/include/gtextutils/text_line_reader.h is in libgtextutils-dev 0.7-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | /*
Gordon's Text-Utilities Library
Copyright (C) 2009-2013 Assaf Gordon (assafgordon@gmail.com)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>
*/
#ifndef __TEXT_FILE_READER__
#define __TEXT_FILE_READER__
#include <string>
#include <istream>
#include <sstream>
class TextLineReader
{
private:
std::istream& input_stream ;
size_t current_line_number;
std::string current_line_string ;
std::istringstream current_line_stream ;
bool unget_line_active ;
TextLineReader(const TextLineReader&);
TextLineReader& operator=(const TextLineReader&);
public:
TextLineReader(std::istream& _input_stream) ;
size_t line_number() const { return current_line_number ; }
bool next_line() ;
void unget_line ( const std::string& line )
{
unget_line_active = true ;
current_line_string = line ;
}
void unget_current_line () { unget_line_active = true; }
//explicit conversions
const std::string& line_string() const { return current_line_string; }
std::istringstream& line_stream() { return current_line_stream; }
//implicit conversions
operator const std::string& () const { return line_string() ; }
operator std::string() const { return line_string(); }
operator std::istream& () { return line_stream(); }
};
#endif
|