//
EachLine::EachLine( std::istream & str_r, unsigned lineNo_r )
: _str( str_r )
+ , _lineStart( -1 )
, _lineNo( lineNo_r )
, _valid( true )
{
return(_valid = false);
}
+ _lineStart = _str.tellg();
_line = iostr::getline( _str );
+ ++_lineNo;
if ( _str.fail() || _str.bad() )
{
_line.clear();
return(_valid = false);
}
- ++_lineNo;
return(_valid = true);
}
unsigned lineNo() const
{ return _lineNo; }
+ std::streamoff lineStart() const
+ { return _lineStart; };
+
/** Set current line number. */
void setLineNo( unsigned lineNo_r )
{ _lineNo = lineNo_r; }
private:
std::istream & _str;
- std::string _line;
- unsigned _lineNo;
- bool _valid;
+ std::string _line;
+ std::streamoff _lineStart;
+ unsigned _lineNo;
+ bool _valid;
};
///////////////////////////////////////////////////////////////////