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