aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2021-12-09 20:34:22 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2021-12-16 17:21:51 +0300
commit0fd1f6d05779eb51c90360751c9a61933120a4de (patch)
tree97d7e630770488b3696723ebf15c8f00a036f251
parent405dfa3e28ab71d4f6b5210faba0e3600070a0f3 (diff)
Add column argument to char_scanner constructor
-rw-r--r--libbutl/char-scanner.hxx8
-rw-r--r--libbutl/char-scanner.ixx6
-rw-r--r--libbutl/char-scanner.txx3
3 files changed, 11 insertions, 6 deletions
diff --git a/libbutl/char-scanner.hxx b/libbutl/char-scanner.hxx
index b7ea14b..24865b7 100644
--- a/libbutl/char-scanner.hxx
+++ b/libbutl/char-scanner.hxx
@@ -47,19 +47,21 @@ namespace butl
// includes a number of optimizations that assume nobody else is messing
// with the stream.
//
- // The line and position arguments can be used to override the start line
- // and position in the stream (useful when re-scanning data saved with the
- // save_* facility).
+ // The line, column, and position arguments can be used to override the
+ // start line, column, and position in the stream (useful when re-scanning
+ // data saved with the save_* facility).
//
char_scanner (std::istream&,
bool crlf = true,
std::uint64_t line = 1,
+ std::uint64_t column = 1,
std::uint64_t position = 0);
char_scanner (std::istream&,
validator_type,
bool crlf = true,
std::uint64_t line = 1,
+ std::uint64_t column = 1,
std::uint64_t position = 0);
char_scanner (const char_scanner&) = delete;
diff --git a/libbutl/char-scanner.ixx b/libbutl/char-scanner.ixx
index 57aefc2..2dc41de 100644
--- a/libbutl/char-scanner.ixx
+++ b/libbutl/char-scanner.ixx
@@ -5,8 +5,10 @@ namespace butl
{
template <typename V, std::size_t N>
inline char_scanner<V, N>::
- char_scanner (std::istream& is, bool crlf, std::uint64_t l, std::uint64_t p)
- : char_scanner (is, validator_type (), crlf, l, p)
+ char_scanner (std::istream& is,
+ bool crlf,
+ std::uint64_t l, std::uint64_t c, std::uint64_t p)
+ : char_scanner (is, validator_type (), crlf, l, c, p)
{
}
diff --git a/libbutl/char-scanner.txx b/libbutl/char-scanner.txx
index 6e0063a..75ea189 100644
--- a/libbutl/char-scanner.txx
+++ b/libbutl/char-scanner.txx
@@ -11,9 +11,10 @@ namespace butl
validator_type v,
bool crlf,
std::uint64_t l,
+ std::uint64_t c,
std::uint64_t p)
: line (l),
- column (1),
+ column (c),
position (p),
is_ (is),
val_ (std::move (v)),