diff --git a/modules/io/src/mol/star_parser.cc b/modules/io/src/mol/star_parser.cc index 33e235d0930a69aa038ed8dbf4e96c2e261ab4a0..b6f370d8e2321e68cd94a57d4ccb795a96895b53 100644 --- a/modules/io/src/mol/star_parser.cc +++ b/modules/io/src/mol/star_parser.cc @@ -247,7 +247,9 @@ void StarParser::ParseLoop() this->ParseMultilineValue(s, true); } break; - case 'd': + case '_': + return; + case 'd': if (tline.length()>=5 && StringRef("data_", 5)==tline.substr(0, 5)) { return; } @@ -255,8 +257,6 @@ void StarParser::ParseLoop() if (StringRef("loop_", 5)==tline) { return; } - case '_': - return; default: if (process_rows) { int before=columns.size(); diff --git a/modules/io/tests/test_star_parser.cc b/modules/io/tests/test_star_parser.cc index 871740c045ceb87f8374f4fc71db73271187d976..e72edb632d81900330f36beec23b835ed179396c 100644 --- a/modules/io/tests/test_star_parser.cc +++ b/modules/io/tests/test_star_parser.cc @@ -284,10 +284,11 @@ BOOST_AUTO_TEST_CASE(star_multi) BOOST_AUTO_TEST_CASE(star_loop) { + BOOST_MESSAGE(" Running star_loop tests..."); std::ifstream s("testfiles/loop.cif"); LoopTestParser star_p(s); star_p.Parse(); - BOOST_CHECK_EQUAL(star_p.lines[0][0], "1"); + BOOST_CHECK_EQUAL(star_p.lines[0][0], "d"); BOOST_CHECK_EQUAL(star_p.lines[0][1], "2"); BOOST_CHECK_EQUAL(star_p.lines[0][2], "3"); @@ -306,12 +307,15 @@ BOOST_AUTO_TEST_CASE(star_loop) BOOST_CHECK_EQUAL(star_p.lines[4][0], "13"); BOOST_CHECK_EQUAL(star_p.lines[4][1], "14"); BOOST_CHECK_EQUAL(star_p.lines[4][2], "15"); + BOOST_MESSAGE(" done."); } BOOST_AUTO_TEST_CASE(star_items_as_row) { + BOOST_MESSAGE(" Running star_items_as_row tests..."); std::ifstream s("testfiles/items-as-row.cif"); ItemsAsRowTestParser star_p(s); + BOOST_MESSAGE(" checking parsing abilities..."); star_p.Parse(); BOOST_CHECK_EQUAL(star_p.s1, "a"); BOOST_CHECK_EQUAL(star_p.s2, "a b c"); @@ -330,6 +334,8 @@ BOOST_AUTO_TEST_CASE(star_items_as_row) BOOST_CHECK_EQUAL(star_p.s6, "1.22"); BOOST_CHECK_EQUAL(star_p.s7, "1.33"); BOOST_CHECK_EQUAL(star_p.s8, "1.44"); + BOOST_MESSAGE(" done."); + BOOST_MESSAGE(" done."); } BOOST_AUTO_TEST_CASE(star_missing_data) diff --git a/modules/io/tests/testfiles/loop.cif b/modules/io/tests/testfiles/loop.cif index b7c069da4248c2697fec9469813d1c945f0d3b2e..4846d28eee429c098a53a8b046507d5437e2963b 100644 --- a/modules/io/tests/testfiles/loop.cif +++ b/modules/io/tests/testfiles/loop.cif @@ -4,7 +4,8 @@ loop_ _loop.s1 _loop.s2 _loop.s3 -1 2 3 +# the 'd' is needed to test for BZDNG-298 +d 2 3 '4 x' 5 6 7 8 ; @@ -17,4 +18,4 @@ _loop.s3 13 ;14 ; -15 \ No newline at end of file +15