From 0ca4c92d6a153511f7e15601cb0cd6636970a347 Mon Sep 17 00:00:00 2001 From: Stefan Bienert <stefan.bienert@unibas.ch> Date: Mon, 11 Jul 2011 14:16:06 +0200 Subject: [PATCH] Solved BZDNG-282 by adding a new case in ParseLoop(). (Just checking for lines starting with a '_') --- modules/io/src/mol/star_parser.cc | 4 +++- modules/io/tests/test_star_parser.cc | 3 ++- modules/io/tests/testfiles/data-item.cif | 7 +++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/io/src/mol/star_parser.cc b/modules/io/src/mol/star_parser.cc index 45d349071..049b026a2 100644 --- a/modules/io/src/mol/star_parser.cc +++ b/modules/io/src/mol/star_parser.cc @@ -171,6 +171,8 @@ void StarParser::ParseLoop() if (StringRef("loop_", 5)==tline) { return; } + case '_': + return; default: if (process_rows) { int before=columns.size(); @@ -270,7 +272,7 @@ void StarParser::ParseData() if (tline.empty()) { this->ConsumeLine(); continue; - } + } switch (tline[0]) { case '_': if (skip) { diff --git a/modules/io/tests/test_star_parser.cc b/modules/io/tests/test_star_parser.cc index 6a1996775..0b31e3dd8 100644 --- a/modules/io/tests/test_star_parser.cc +++ b/modules/io/tests/test_star_parser.cc @@ -134,9 +134,10 @@ BOOST_AUTO_TEST_CASE(star_split3) BOOST_REQUIRE(parts.size()==1); BOOST_CHECK_EQUAL(parts[0], StringRef("1 2", 3)); } - + BOOST_AUTO_TEST_CASE(star_data_item) { + BOOST_MESSAGE(" Running star_data_item tests..."); std::ifstream s("testfiles/data-item.cif"); DataItemTestParser star_p(s); star_p.Parse(); diff --git a/modules/io/tests/testfiles/data-item.cif b/modules/io/tests/testfiles/data-item.cif index 11933c37f..2753f4d0d 100644 --- a/modules/io/tests/testfiles/data-item.cif +++ b/modules/io/tests/testfiles/data-item.cif @@ -1,4 +1,11 @@ data_data-item +# this file covers BZDNG-282 +loop_ +_loop.s1 +_loop.s2 +_loop.s3 +_loop.s4 +1 2 3 4 _data-item.s1 a _data-item.s2 'a b c' -- GitLab