From 24c5748d7c8867928f23135143ffe00dc00f1867 Mon Sep 17 00:00:00 2001
From: Stefan Bienert <stefan.bienert@unibas.ch>
Date: Thu, 7 May 2015 13:47:41 +0200
Subject: [PATCH] Allow new blank character in citation.year for mmCIF

---
 modules/io/src/mol/mmcif_reader.cc    | 2 +-
 modules/io/tests/test_mmcif_reader.cc | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/modules/io/src/mol/mmcif_reader.cc b/modules/io/src/mol/mmcif_reader.cc
index a4c9ca313..b6d90fc75 100644
--- a/modules/io/src/mol/mmcif_reader.cc
+++ b/modules/io/src/mol/mmcif_reader.cc
@@ -805,7 +805,7 @@ void MMCifReader::ParseCitation(const std::vector<StringRef>& columns)
     }
   }
   if (indices_[YEAR] != -1) {
-    if (columns[indices_[YEAR]][0]!='?') {
+    if (!is_undef(columns[indices_[YEAR]])) {
       cit.SetYear(this->TryGetInt(columns[indices_[YEAR]], "citation.year"));
     }
   }
diff --git a/modules/io/tests/test_mmcif_reader.cc b/modules/io/tests/test_mmcif_reader.cc
index 6f6866622..3a1906df9 100644
--- a/modules/io/tests/test_mmcif_reader.cc
+++ b/modules/io/tests/test_mmcif_reader.cc
@@ -584,16 +584,20 @@ BOOST_AUTO_TEST_CASE(mmcif_citation_tests)
 
   tmmcif_h.SetCategory(StringRef("citation", 8));
   tmmcif_h.Add(StringRef("id", 2));
+  tmmcif_h.Add(StringRef("year", 4));
   tmmcif_h.Add(StringRef("book_title", 10));
   tmmcif_h.Add(StringRef("journal_abbrev", 14));
   tmmcif_p.OnBeginLoop(tmmcif_h);
 
   columns.push_back(StringRef("Foo", 3));
+  columns.push_back(StringRef("1979", 4));
   columns.push_back(StringRef("The Guide", 9));
   columns.push_back(StringRef(".", 1));
 
   BOOST_CHECK_NO_THROW(tmmcif_p.ParseCitation(columns));
 
+  BOOST_CHECK(tmmcif_p.GetInfo().GetCitations().back().GetYear() == 1979);
+
   columns.pop_back();
   columns.pop_back();
   columns.push_back(StringRef(".", 1));
-- 
GitLab