From 8b04dff23972cfd23d703824a6e261068a54f4cc Mon Sep 17 00:00:00 2001
From: marco <marco@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Tue, 20 Apr 2010 10:03:00 +0000
Subject: [PATCH] Fix embarassing thinko in PDBReader

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2061 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 modules/io/src/mol/pdb_reader.cc | 9 +++++----
 modules/io/src/mol/pdb_writer.cc | 2 +-
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/modules/io/src/mol/pdb_reader.cc b/modules/io/src/mol/pdb_reader.cc
index ec0dbaccb..fa0357bed 100644
--- a/modules/io/src/mol/pdb_reader.cc
+++ b/modules/io/src/mol/pdb_reader.cc
@@ -105,14 +105,15 @@ bool PDBReader::HasNext()
   // a HELIX/SHEET entry implies a next model.
   while (std::getline(in_, curr_line_) && ++line_num_) {
      StringRef curr_line(curr_line_.c_str(), curr_line_.length());
-     if (IEquals(curr_line.substr(0, 6), StringRef("ATOM  ", 6)) ||
+     if (curr_line.size()>5 && 
+         (IEquals(curr_line.substr(0, 6), StringRef("ATOM  ", 6)) ||
          (!(flags_ & PDB::NO_HETATMS) &&
           IEquals(curr_line.substr(0, 6),StringRef("HETATM ", 6))) ||
           IEquals(curr_line.substr(0, 6),StringRef("ANISOU ", 6)) ||
          IEquals(curr_line.substr(0, 6), StringRef("SHEET ", 6)) ||
-         IEquals(curr_line.substr(0, 6), StringRef("HELIX ", 6))) {
+         IEquals(curr_line.substr(0, 6), StringRef("HELIX ", 6)))) {
        return true;
-     } else if (IEquals(curr_line.substr(0, 3), StringRef("END", 3))) {
+     } else if (IEquals(curr_line.rtrim(), StringRef("END", 3))) {
        hard_end_=true;
        return false;
      }
@@ -153,7 +154,7 @@ void PDBReader::Import(mol::EntityHandle& ent,
         if (curr_line.size()<3) {
           continue;
         }
-        if (IEquals(curr_line.substr(0, 3), StringRef("END", 3))) {
+        if (IEquals(curr_line.rtrim(), StringRef("END", 3))) {
           hard_end_=true;
           go_on=false;
           break;
diff --git a/modules/io/src/mol/pdb_writer.cc b/modules/io/src/mol/pdb_writer.cc
index 9251f42b2..8e461a56e 100644
--- a/modules/io/src/mol/pdb_writer.cc
+++ b/modules/io/src/mol/pdb_writer.cc
@@ -207,7 +207,7 @@ void PDBWriter::Write(const mol::AtomHandleList& atoms)
   
 PDBWriter::~PDBWriter()
 {
-  outstream_ << "END";
+  outstream_ << "END   ";
 }
 
 }}
-- 
GitLab