diff --git a/lib/proto.cc b/lib/proto.cc index c35eabe7..a14ea801 100644 --- a/lib/proto.cc +++ b/lib/proto.cc @@ -172,7 +172,8 @@ void setProtoByString(google::protobuf::Message* message, const std::string& pat std::set iterate(const RangeProto& range) { std::set set; - for (unsigned i=range.start(); i<=range.end(); i+=range.step()) + int end = range.has_end()? range.end() : range.start(); + for (unsigned i=range.start(); i<=end; i+=range.step()) set.insert(i); return set; } diff --git a/tests/proto.cc b/tests/proto.cc index c57f2add..cf341063 100644 --- a/tests/proto.cc +++ b/tests/proto.cc @@ -125,6 +125,13 @@ static void test_range(void) AssertThat(iterate(r), Equals(std::set{1})); } + { + RangeProto r; + r.set_start(1); + + AssertThat(iterate(r), Equals(std::set{1})); + } + { RangeProto r; setRange(&r, "1-3");