From b148bc31697698959ab02c95e45f87e3b31fa565 Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Wed, 17 Sep 2025 23:09:18 +0200 Subject: fixup! uline: Add unicode line reader --- src/uline.cc | 23 ++++++++--------------- src/uline.hh | 16 ++++------------ test/uio.cc | 2 +- 3 files changed, 13 insertions(+), 28 deletions(-) diff --git a/src/uline.cc b/src/uline.cc index 21927b3..7d4c7c7 100644 --- a/src/uline.cc +++ b/src/uline.cc @@ -3,6 +3,7 @@ #include "check.hh" #include +#include #include #include #include @@ -108,7 +109,7 @@ class UnicodeReader { std::expected fill() { auto ret = reader_->read(wptr_, (end_ - wptr_) * sizeof(T)); if (ret.has_value()) - wptr_ += ret.value() / sizeof(T); + wptr_ += ret.value() / sizeof(T); // NOLINT(bugprone-sizeof-expression) return ret; } @@ -125,9 +126,7 @@ class UnicodeReader { } // namespace -namespace u8 { - -namespace line { +namespace u8::line { namespace { @@ -154,16 +153,12 @@ class ReaderImpl : public UnicodeReader, [[nodiscard]] std::unique_ptr open(std::unique_ptr reader, size_t max_len) { - return std::make_unique(std::move(reader), std::move(max_len)); + return std::make_unique(std::move(reader), max_len); } -} // namespace line - -} // namespace u8 +} // namespace u8::line -namespace u16 { - -namespace line { +namespace u16::line { namespace { @@ -190,9 +185,7 @@ class ReaderImpl : public UnicodeReader, [[nodiscard]] std::unique_ptr open(std::unique_ptr reader, size_t max_len) { - return std::make_unique(std::move(reader), std::move(max_len)); + return std::make_unique(std::move(reader), max_len); } -} // namespace line - -} // namespace u16 +} // namespace u16::line diff --git a/src/uline.hh b/src/uline.hh index a3bcef3..28e2936 100644 --- a/src/uline.hh +++ b/src/uline.hh @@ -9,9 +9,7 @@ #include #include -namespace u8 { - -namespace line { +namespace u8::line { class Reader { public: @@ -35,13 +33,9 @@ class Reader { [[nodiscard]] std::unique_ptr open(std::unique_ptr reader, size_t max_len = 8192); -} // namespace line - -} // namespace u8 +} // namespace u8::line -namespace u16 { - -namespace line { +namespace u16::line { class Reader { public: @@ -65,8 +59,6 @@ class Reader { [[nodiscard]] std::unique_ptr open(std::unique_ptr reader, size_t max_len = 8192); -} // namespace line - -} // namespace u16 +} // namespace u16::line #endif // ULINE_HH diff --git a/test/uio.cc b/test/uio.cc index 7c8d175..47646e0 100644 --- a/test/uio.cc +++ b/test/uio.cc @@ -40,7 +40,7 @@ TEST(uio_u8, sample) { TEST(uio_u16, sample_be) { auto uio = - u16::open(io::memory("\x00\x24\xD8\x01\xDC\x37"s), + u16::open(io::memory("\x00\x24\xD8\x01\xDC\x37"s), // NOLINT u::ReaderConfig{.input = u::ReaderInputFormat::UTF16_BE}); std::u16string tmp; auto ret = uio->repeat_read(tmp, 5); -- cgit v1.3