From 087e00b87a5a11b999616c3718d34533c9de20eb Mon Sep 17 00:00:00 2001 From: Night12138 Date: Sat, 12 Feb 2022 01:06:32 +0800 Subject: [PATCH] fix: using stream operator not set eofbit --- picojson.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/picojson.h b/picojson.h index 76742fe..b6c4e19 100644 --- a/picojson.h +++ b/picojson.h @@ -1132,7 +1132,12 @@ inline std::string parse(value &out, const std::string &s) { inline std::string parse(value &out, std::istream &is) { std::string err; - parse(out, std::istreambuf_iterator(is.rdbuf()), std::istreambuf_iterator(), &err); + const auto &beg = std::istreambuf_iterator(is.rdbuf()); + const auto &end = std::istreambuf_iterator(); + parse(out, beg, end, &err); + if (beg == end) { + is.setstate(std::ios_base::eofbit); + } return err; }