--- trunk/src/utils/ElementsTable.cpp 2008/09/18 21:51:20 1296 +++ branches/development/src/utils/ElementsTable.cpp 2013/05/15 15:09:35 1874 @@ -1,7 +1,7 @@ This basic Periodic Table class was originally taken f /********************************************************************** This basic Periodic Table class was originally taken from the data.cpp -file in OpenBabel. The code has been modified to match the OOPSE coding style. +file in OpenBabel. The code has been modified to match the OpenMD coding style. We have retained the OpenBabel copyright and GPL license on this class: @@ -25,24 +25,26 @@ GNU General Public License for more details. * @file ElementsTable.cpp * @author gezelter * @date 12/21/2007 - * @time 11:30am * @version 1.0 */ -#include #include "config.h" + +#include #include #include #include #include #include "utils/ElementsTable.hpp" #include "utils/simError.h" -#include "io/basic_ifstrstream.hpp" +#include "io/ifstrstream.hpp" -#if !HAVE_STRNCASECMP -extern "C" int strncasecmp(const char *s1, const char *s2, size_t n); +#ifdef _MSC_VER +#define strncasecmp _strnicmp +#define strcasecmp _stricmp #endif + #ifdef WIN32 #define FILE_SEP_CHAR "\\" #else @@ -53,26 +55,26 @@ extern "C" int strncasecmp(const char *s1, const char #define BUFF_SIZE 32768 #endif -namespace oopse { +namespace OpenMD { ElementsTable etab; ElementsTable::ElementsTable() { init_ = false; - STR_DEFINE(dir_, FRC_PATH ); + dir_ = std::string("TO_STRING(FRC_PATH)"); envvar_ = "FORCE_PARAM_PATH"; filename_ = "element.txt"; } ElementsTable::~ElementsTable() { std::vector::iterator i; - for (i = elements_.begin(); i != elements_.end(); i++) + for (i = elements_.begin(); i != elements_.end(); ++i) delete *i; } void ElementsTable::ParseLine(const char *line) { int num, maxbonds; - char symbol[5]; + char symbol[6]; char name[256]; RealType Rcov,Rvdw,mass, elNeg, ionize, elAffin; RealType red, green, blue; @@ -109,7 +111,7 @@ namespace oopse { return elements_.size(); } - char *ElementsTable::GetSymbol(int atomicnum) { + const char *ElementsTable::GetSymbol(int atomicnum) { if (!init_) Init(); @@ -267,7 +269,7 @@ namespace oopse { Init(); std::vector::iterator i; - for (i = elements_.begin();i != elements_.end();i++) + for (i = elements_.begin();i != elements_.end(); ++i) if (!strncasecmp(sym,(*i)->GetSymbol(),2)) return((*i)->GetAtomicNum()); @@ -324,11 +326,12 @@ namespace oopse { simError(); } - char charBuffer[BUFF_SIZE]; + if ((*ifsP)) { + char charBuffer[BUFF_SIZE]; while(ifsP->getline(charBuffer,BUFF_SIZE)) ParseLine(charBuffer); - + if (ifs1) ifs1.close(); if (ifs2)