File MopacAuxReaderFix.patch of Package avogadro

From 933ae95d4e759cd83387fc16596fe6bb8df69dd2 Mon Sep 17 00:00:00 2001
From: "David C. Lonie" <david.lonie@kitware.com>
Date: Sun, 3 Feb 2013 11:17:05 -0500
Subject: [PATCH] Mark basis set as invalid if no atoms parsed from MOPAC .aux
 file.

Change-Id: I6cfcf6cb65aa8f4ac4457e25ce7d36b2bcc46c12
---
 libavogadro/src/extensions/surfaces/openqube/mopacaux.cpp |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/libavogadro/src/extensions/surfaces/openqube/mopacaux.cpp b/libavogadro/src/extensions/surfaces/openqube/mopacaux.cpp
index 275428a..a7f8f4d 100644
--- a/libavogadro/src/extensions/surfaces/openqube/mopacaux.cpp
+++ b/libavogadro/src/extensions/surfaces/openqube/mopacaux.cpp
@@ -122,6 +122,11 @@ void MopacAux::processLine()
 
 void MopacAux::load(SlaterSet* basis)
 {
+  if (m_atomPos.size() == 0) {
+    qWarning() << "No atoms found in .aux file. Bailing out.";
+    basis->setIsValid(false);
+    return;
+  }
   // Now load up our basis set
   basis->addAtoms(m_atomPos);
   basis->addSlaterIndices(m_atomIndex);
@@ -140,10 +145,12 @@ void MopacAux::load(SlaterSet* basis)
       mol.addAtom(m_atomPos[i], m_atomNums[i]);
     }
   }
-  else
+  else {
     qWarning() << "Number of atomic numbers (" << m_atomNums.size()
                << ") does not equal the number of atomic positions ("
                << m_atomPos.size() << "). Not populating molecule.";
+    basis->setIsValid(false);
+  }
 }
 
 vector<int> MopacAux::readArrayI(unsigned int n)
-- 
1.7.10

openSUSE Build Service is sponsored by