Hi all, I am currently implementing some changes to the MOPAC file format reader which requires use of the tokenize() function (the variant that takes 3 inputs) in tokenst.cpp.
However, this appears to contain a bug where the last token is sometimes not parsed: tokenize(vs, "a.b.", ".") results in vs.size()=2, vs[0] = "a", vs[1] = "b" but tokenize(vs, "a.b", ".") results in vs.size()=1, vs[0] = "a" only. I have a patch that will fix this behavior sufficiently for my purposes. I would like to commit this upstream, but I thought I would ask first since this would modify a core utility function and could very well break code that expects this behavior. =================================================================== --- tokenst.cpp (revision 4519) +++ tokenst.cpp (working copy) @@ -43,14 +43,20 @@ string s(buf); s += "\n"; size_t startpos=0,endpos=0; + size_t s_size = s.size(); for (;;) { startpos = s.find_first_not_of(delimstr,startpos); endpos = s.find_first_of(delimstr,startpos); - if (endpos <= s.size() && startpos <= s.size()) + if (endpos <= s_size && startpos <= s_size) vcr.push_back(s.substr(startpos,endpos-startpos)); + else if (startpos < s_size) //process last token - cjh 2011-07-02 + { + vcr.push_back(s.substr(startpos,s_size-startpos)); + break; + } else break; Thanks, · Jiahao Chen · MIT Chemistry · ------------------------------------------------------------------------------ All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2d-c2 _______________________________________________ OpenBabel-Devel mailing list OpenBabel-Devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbabel-devel