Files
openbabel/ChangeLog
Geoffrey Hutchison 24f1385d99 * configure.in, configure, src/config.h.in: Update to include
#define's for OBERROR, OBFPTR, and OBCOMMON as below.
2006-05-08 18:38:13 +00:00

3330 lines
120 KiB
Plaintext

2006-05-08 Geoffrey Hutchison <babel@geoffhutchison.net>
* configure.in, configure, src/config.h.in: Update to include
#define's for OBERROR, OBFPTR, and OBCOMMON as below.
* scripts/*: Regenerate using SWIG.
* test/wrapper.sh: Update to include export for BABEL_DATADIR.
2006-05-08 Chris Morley <ob@gaseq.co.uk>
* src/formats/xml/cmlformat.cpp(WriteMolecule): since the id
must start with letter, add "id" if it doesn't and write a <name>
element.
* src/generic.h: add virtual GetValue function for OBGenericData
and also definitions in OBComment and OBPairData. Hopefully will
solve bug 1483112.
* src/oberror.h: Add default define for OBERROR as nothing
2006-05-07 Chris Morley <ob@gaseq.co.uk>
* oberror.h: Change classes from OBAPI to new OBERROR
so that can be compiled separately.
* src/mol.h, src/bitvec.cpp, oberror.cpp, obconversion.cpp:
change to OBERROR extern OBMessageHandler obErrorLog;
* src/obconversion.h: add #include "oberror.h";
* src/obconversion.cpp: now that oberror can be accessed everywhere
change all cerr messages to use obErrorLog.
* src/fingerprint.h: replace OBAPI by OBFPTR to allow fingerprint
code to be separately compiled.
* src/formats/xml.h: add OBCOMMON so that XML classes can be
separately compiled. Add implementation of SkipObjects for
XMLBaseFormat and XMLConversion::SkipXML.
* src/formats/obmolecformat.cpp: Add ReadNameIndex to speed access
in files with many molecules. I wasn't going to commit this until
it was tested a bit more, but I must have misunderstood what
Tortoise SVN was doing.
* src/GUI/OBGUI.cpp: don't crash if there are no formats.
2006-05-06 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/formats/smilesformat.cpp (SmiToMol): Since SMILES sets
formal charges, turn off automatic updates. Some general cleanups
(removing commented-out code.)
2006-05-03 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/chains.h, src/chains.cpp: Initial work on documenting,
indentation, and general cleanup of chains.cpp.
(ConstrainBackbone): Check for valence of backbone atoms
should actually be for HvyValence() since all hydrogens are ignored.
Fixes PR#1442779.
2006-04-27 Geoffrey Hutchison <babel@geoffhutchison.net>
* Doxyfile: Add map of included files in headers to
documentation. Need to work on removing un-necessary #includes in
headers.
* src/math/*: Minimize #include headers.
* src/generic.h: Include obutil.h for triple class -- was included
indirectly by way of vector3.h.
* test/smartstest.cpp: Changed the way tests are counted -- per
molecule instead of per pattern AND per molecule (cuts drastically
down on the test overhead). Remove endl and sync with stio to
improve buffering.
* test/smartstest.txt, test/smartsresults.txt: Add additional
SMARTS pattern tests and results.
2006-04-24 Chris Morley <ob@gaseq.co.uk>
* src/formats/xml/cmlformat.cpp: Accept coordinate2 and
coordinate3 elements for CML1.
Laxer acceptance of atomRef?? which is sometimes misused - but added
warning. Converted cerr calls to obError.
Added option to read 2D rather than 3D coordinates.
Output formula only when no bonds AND no coordinates.
Ensured atoms from formula marked as having no H.
GetMolID() gets name or number for error messages.
* src/GUI/OBGUI.cpp: uncommented standard stream redirection.
Do we need some conditional compilation?
* src/formats.smilesformat.cpp, src/mol.cpp: Recent change in
ImplictHydrogenCount broke GetMolWt,GetExactMass,GetSpacedformula
and explicit H form of output in SMILES. But it is better that
ImplictHydrogenCount means what it says. Added in appropriate form
of GetExplicitHydrogens to these routines.
* src/formats/xml/xml/cpp(gettomatch): rewrite to allow stream to
be discarded up to next match.
2006-04-21 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/obconversion.cpp: Fix broken gzip-decoding of input
(PR#1473243) introduced by 2006-04-11 change. Fix bug when writing
multi-molecule files using WriteFile() (PR#1474265).
* src/atom.cpp, src/residue.cpp: Remove inadvertant debug messages.
2006-04-20 Chris Morley <ob@gaseq.co.uk>
* src/formats.xml/xml.h, src/formats/obmolecformat.h,
windows-2005/babelconfig.h: added OBCOMMON macro to aid DLL build.
(Usually empty).
* src/obconversion.cpp(AddChemObject): prevent formats with
WRITEONEONLY from writing more than once.
2006-04-19 Chris Morley <ob@gaseq.co.uk>
* src/formats/molecformat.h: added #ifdef _WIN32 around
experimental code which cause problems in unix build.
2006-04-16 Chris Morley <ob@gaseq.co.uk>
* src/transform.cpp, src/main.cpp, src/GUI/OBGUI.cpp: To avoid
messing up help output revert to original wording of OBMol::
ClassDescription, and pick out the last word for the conversion
info message.
* src/GUI/OBGUI.cpp, src/GUI/OBGUI.h: initialize HelpFile in
current folder at program start.
* src/formats/smilesformat.cpp(CreateSmiString): ensure unbonded [H]
e.g. from formula, is output.
* src/formats/thermoformat.cpp, src/formats/xml/cmlformat.cpp:
ensure formula are read in correctly by adding ForceNoH() and
calling Assign SpinMultiplicity in the right place.
2006-04-15 Geoffrey Hutchison <babel@geoffhutchison.net>
* test/Makefile.am, test/Makefile.in: Only run CML tests if XML
formats were compiled. (i.e., if libxml not available, can't test
CML)
* test/ringtest.sh, test/smartstest.sh, test/cmltest/test.sh:
Minor shell script portability fixes.
2006-04-13 Geoffrey Hutchison <babel@geoffhutchison.net>
* scripts/perl/META.yml, scripts/python/setup.py: Packaging
changes for the scripting wrappers.
* src/formats/mdlformat.cpp: Remove inadvertent debug statement
left from yesterday.
2006-04-12 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/formats/mdlformat.cpp (ReadMolecule): Add support for atom
stereo in v2000 format and OBChiralData. Partly addresses
PR#1463796.
* src/formats/smilesformat.cpp (GetChiralStereo): If we have a 2D
molecule and stereochemistry is unspecified, don't assume we have
a particular stereochemistry. Partly address PR#1463796.
Also fix a problem with writing chiral "H" designations with explicit
hydrogens, introduced with yesterday's fix to
OBAtom::ImplicitHydrogenCount.
2006-04-11 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/obconversion.h, src/obconversion.cpp: Added a test to be
sure that we do not check gzip encoding multiple times (much less
try to gzip repeatedly). Fix PR#1465586 where ReadString() or
ReadFile() followed by Read() will fail because input streams are
closed prematurely.
* src/atom.cpp (ImplicitHydrogenCount): Fix a bug where formulas
were calculated incorrectly -- explicit hydrogens should count
against an implicit hydrogen count too. Fixes part of PR#1463787.
(i.e., SMARTS 'h' token was matching total number of hydrogens)
* src/mol.cpp (AddBond): Fix a bug exposed by PDB parsing, where
code attempts to add a bond from one atom to itself.
* src/formats/mol2format.cpp: Fix residue parsing to remove
calls to create a residue when in fact, the molecule has no residues.
* src/formats/pdbformat.cpp: Fix CONECT record parsing to read
malformed records (e.g., created by very old Open Babel versions)
via splitting by spaces. Fixes PR#1468802.
* src/parsmart.cpp: Reformat indentation for clearer code
reading. Fix bug with syntax of 'H' token -- should refer to the
*total* number of hydrogens. PR#1463787.
* test/smartsresults.txt: Regenerate after above bug-fixes.
* src/formats/crkformat.cpp (ReadCRK): Change to correctly read
multi-molecule files, where the </Structure2D> tag would appear,
but parsing would continue, uncovered using roundtrip testing.
2006-04-08 Geoffrey Hutchison <babel@geoffhutchison.net>
* scripts/openbabel.i, scripts/*: Update to add Cygwin DLL headers.
* THANKS: Update with contributors to 2.0.1 release.
2006-04-06 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/dlhandler_unix.cpp: Upgrade to use the opendir/readdir
replacement for the non-portable scandir contributed by Mikael
Johansson.
* src/formats/Makefile.am, src/formats/Makefile.in: Fix error in
logic with building inchi, introduced yesterday. D'oh!
* src/formats/inchi/Makefile.am, src/formats/inchi/Makefile.in:
Add --no-undefined flag to produce proper compilation on Windows
(i.e., Cygwin).
2006-04-05 Geoffrey Hutchison <babel@geoffhutchison.net>
* NEWS: Update for 2.0.1 release notes.
* configure, configure.in, acinclude.m4: Add new configure options
for silent libtool use & compiler flags.
* scripts/Makefile.am, scripts/Makefile.in: Provide better
"distclean" target to remove python build targets and backup
files.
* src/mol.h: Update IsRotor() and NumRotors() documentation to
explain the current minimal definition of a rotatable
bond. Addresses PR#1463505.
* src/oberror.cpp: By default, retain a maximum of the 100 most
recent entries in the error log in memory. All errors will be
filtered and sent to output, but only retain some (not all). Fixes
PR#1439893.
* src/formats/inchi/Makefile.am, src/formats/inchi/Makefile.in:
Only install the inchi_api.h header.
* src/formats/xml/Makefile.am, src/formats/xml/Makefile.in: Turn
off optimization -- appears to fix crashes on FC4 and FC5,
PR#1447233.
* src/formats/xml/xml.h: Add std:: namespace declarations, solving
compilation problems on some GCC compiler versions.
* src/formats/Makefile.am, */Makefile.in: Changes to only build
libinchi when the library is not available on the system. Fixes
PR#146451.
2006-03-28 Geoffrey Hutchison <babel@geoffhutchison.net>
* test/aromatest.cpp: New test to check aromaticity. When supplied
with a test file, it checks to be sure all non-hydrogen atoms are
aromatic.
* scripts/*: Update scripting wrappers with SWIG 1.3.29.
* src/Makefile.am, src/Makefile.in : Add @LIBDL@ as
suggested by Michael Shigorin (PR#1458706). Make sure
babelconfig.h isn't included in dist tarball, as suggested by
Michael Banck.
2006-03-27 Michael Banck <mbanck@gmx.net>
* src/fingerprint.h: Fix compilation error with gcc-4.1.
Patch by <vlaaad@users.sourceforge.net>.
* src/formats/copyformat.cpp: Likewise.
* src/formats/crkformat.cpp: Likewise.
* src/formats/xml/cmlreactlformat.cpp: Likewise.
* src/formats/xml/xml.h: Likewise.
* src/formats/xml/xmlformat.cpp: Likewise.
* src/formats/fastaformat.cpp: Include babelconfig.h.
* src/rand.cpp: Include <time.h> and <sys/time.h>.
2006-03-18 Chris Morley <ob@gaseq.co.uk>
* src/obconversion.cpp, obconversion.h,
src/formats/molecformat.cpp, src/formats/rxnformat.cpp:
The ability to stop conversion on a write error has somehow
been removed. Restored this by changing the return of
AddChemObject() to a bool indicating any failure of
WriteChemObject(). I don't expect that many people are
programming at this depth for this change to matter.
* src/mol.cpp(AddHydrogens): Do not add hydrogens
when to a molecule which has no bonds and more than one atom. We
do need a review to clarify these functions, but they are generally
working ok.
* src/data.cpp, data.h: Added a global function OpenDatafile which
looks in the normal places for data files. It also starts in the
current directory. If this is acceptable, it could be used to collect
the code for this functionality in one place.
* src/formats/xml/xml.h: added std:: to a string
* src/GUI/OBGUI.cpp:Added warning when output extensions mixed.
* src/GUI/optswx.cpp: Be less restrictive with punctuation in options.
* src/formats/inchiformat.cpp: Now calculates InChI for C and CH.
* src/formats/thermoformat.cpp: minor parsing corrections
2006-03-16 Chris Morley <ob@gaseq.co.uk>
* data/atomtyp.txt: IMPVAL for halogen ions
* /src/formats/smilesformat.cpp(ParseComplex): Move hcount test
back again so that [C] is read as C not CH4
(GetSmilesElement): Restrict addition of implicit H by
resurrecting normalValence variable. Output [C], not [CH0].
2006-03-15 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/formats/xml/xml.h: Fix std:: namespace decl for type_info.
* src/Makefile.am: Temporarily disable compilation of src/GUI
until compile errors are all fixed.
* scripts/* : More changes to allow building, linking, and running
(again!) with current CVS tree.
* src/generic.h (OBTorsion): Add default code for SetData(OBBond*)
-- not sure what this *should* do. Allows compilation of script
wrappers.
* src/obutil.h, src/math/matrix3x3.h, src/math/vector3.h: Add
#ifndef SWIG portions to prevent SWIG from choking on some
non-class function declarations.
* */Makefile.in: Regenerate (get rid of bogus --gnu flags).
2006-03-14 Chris Morley <ob@gaseq.co.uk>
* src/GUI/OBGUI.cpp(Expand): Mods to avoid errors when filenames
are empty, have trailing paces, semicolons, etc.
* src/formats/obmolecformat.cpp, obmolecformat.h: Deferred
molecule routines (-C -j options) rewritten to ensure no memory leaks
under normal or error conditions. (Previously rather carelessly
written, I'm afraid.)
* src/formats/smilesformat.cpp: Corrected [CH0] extension on
input and made work on output.
* src/formats/thermoformat.cpp: Added SetDimension(0). Initialise
MidT. Added tdd extension.
* src/.mol.h: Comments on OBMol copy ctor and assignment saying
that OBGenericData is copied and on operator+= that it is not.
* src/base.h, kinetics.h: Mods consequent on OBGenericData changes
2006-03-13 Geoffrey Hutchison <babel@geoffhutchison.net>
* configure.in, configure, src/Makefile.am, src/config.h.in: Add
initial support for DLL builds on Cygwin. Seems to compile a
libopenbabel.dll, but still linking problems for
babel.exe.
Also add support for detecting wx widget library to build src/GUI.
* */Makefile.in: Regenerated using automake.
* src/GUI/OBGUI.cpp: First pass at removing compilation warnings
with GCC -- make sure all functions are passed correctly.
* src/GUI/stdwx.h: Use a new babel.xpm if needed (e.g., Mac, UNIX).
* src/formats/xml/cmlreactlformat.cpp: Add back missing
reaction.h.
* src/fingerprint.h, src/formats/xml/xml.h: Change static
declarations to avoid spurious memory leak warnings with
valgrind.
* src/base.h: Add #ifdef to remove non-implemented iterators for
SWIG.
* scripts/*: Build updates for Perl and Python wrappers.
* test/roundtrip.cpp: Update to remove spurious warnings with CML
(and other) format translation.
* test/smartsresults.txt: Update to reflect recent SMARTS updates.
2006-03-13 Chris Morley <ob@gaseq.co.uk>
* src/mol.cpp(GetSpacedFormula): I like the approach added by
Craig to be independent of implicit/explicit H without
changing the OBMol. But needs some mods.
Remove call to ExplicitHydrogenCount(); they are already
included in ImplicitHydrogenCount(). Add test to correctly
handle molecules with no bonds, hydrogen isotopes. Works with
SMILES C C[2H] C[H] (=carbene) [H][H] [2H][H]
Added support for D and T.
* src/mol.cpp(GetMolWt and GetExactMass): Mods similar to above
so that implicit or explicit H is handled.
* src/atom.cpp, atom.h(ExplicitHydrogenCount): Add extra parameter
to not count D and T. (Backward compatible)
* src/mol.cpp(AssignSpinMultiplicity): Exclude D and T so that
SMILES CC[2H] is interpreted as C2H5D. Previously was CH3CH:
* src.formats/smilesformat.cpp(OBMol2Smi::GetSmilesElement):
Reduce implicit H count by number of explicit H isotopes, which
already were output explicitly. CC[2H]=> add Hs => [CH3][CH2][2H]
(ParseComplex): [CH0] means explicitly there are no hydrogens.
* src/mol.h, atom.cpp: Added flag on OBAtom to indicate there
are no hydrogens. Added get and set methods.
* src/atom.cpp(ImplicitHydrogenCount), src/mol.cpp(AddHydrogens):
Add support for SpinMultiplicity>=4. As in molecule CH - the source
of ions in a flame ionization detector.
* src/mol.cpp(AssignSpinMultiplicity): Use positively set no Hs to
allow SMILES [CH0] = C atom.
* src/rotamer.cpp(PackCoodinates,UnpackCoordinates): Make cf double
rather than float to avoid compiler warnings.
* src/transform.cpp: Added --addformula option.
* src/mol.cpp:(operator=): OBGenericData objects now copied with
OBMol.
* src/generic.cpp, generic.h: Clone function given parameter
referring to new molecule, so that OBAtom pointers can be rebased.
Added documentation that using atom and bond pointer in
OBGenericData objects is a bad idea.
* src/rotamer.cpp, rotamer.h): Moved code for copying
OBRotatmeterData into Clone(). Significant rewriting required;
not tested yet.
* src/formats/obmolecformat.cpp(MakeCombinedMolecule): simplify code
because of GetFormula changes (don't need to make copy to compare
formulae) and OBMol copying changes.
* src/GUI: Small bug when selected format begins with t now corrected.
2006-03-10 Chris Morley <ob@gaseq.co.uk>
* /src/formats/smilesformat.cpp: make a default format so that
the default object is OBMol even when MOLformat (the other default
format) is not present.
* /src/formats/smilesformat.cpp(ParseRingBond): prevented crash
and give error message when parse failure (e.g. a line starting
with a number) - common and of long standing.
* /src/formats/obmolecformat.cpp(ReadChemObjImpl): another delete
for OBMol object when ReadMolecule returns false;
2006-03-09 Chris Morley <ob@gaseq.co.uk>
* src/reaction.h, src/format.rxnformat.cpp: revert to previous
versions, rxnformat.cpp from OB2.0.0. The boost dependent versions
were committed in error - work in progress on new some new
reaction formats.
* several formats, mainly output formats, converted to derive from
OBMoleculeFormat and their WriteChemObject functions deleted. I
don't think these were responsible for memory leaks, but it the
less code to maintain the better.
* src/formats/obmolecformat.cpp(WriteChemObjectImpl): OBMol
object not being deleted in the event of an error. Moved delete
statement so that it is.
* src/transform.cpp(DoTransformations): ensure OBMol deleted
in the event of an error.
* src/GUI/OBGUI.cpp: #include selformats.h: make lc
2006-03-09 Chris Morley <ob@gaseq.co.uk>
* src/bitvec.cpp, bond.cpp, bondtyper.cpp, chains.cpp,chiral.cpp,
generic.cpp,grid.cpp,kekulize.cpp,matrix.cpp,
mol.cpp,molchg.cpp,obiter.cpp,patty.cpp,phmodel.cpp,
rand.cpp,ring.cpp,rotamer.cpp, rotor.cpp,tokenst.cpp,transform.cpp
/src/formats/ most cpp files
/src/formats/xml/pubchem.cpp
/src/fingerprints/finger2.cpp, finger3.cpp
/src/math/matrix.cpp, vector.cpp
Add #include "babelconfig.h" at top of files. This eases my use
of pre-compiled headers and I thought (wrongly) that it would
assist memory in leak detection. Many cpp files already have this
header directly rather than relying on it through mol.h.
Not a very useful exercise, but I hope harmless.
* src/obconversion.cpp(FullConvert): Added extra test to remove an
extraneous error message under some circumatances. The bug was
introduced in when facility to use the same file for input and
output was added.
Reversed the memory leak related change of 2006-03-02 (see devel
forum discussion).
* /src/formats/xml/xml.cpp(ReadXML):Add continue shortcut for nodes
that are not elements. (SetUpWriter): remove extra writer creation.
* /src/dhandler_win32.cpp(findFiles): Rewritten, now handles * and *.*
Was getting confused by . and .. directories.
* /src/mol.h Remove unnecessary #include "reaction.h"
Added /src/GUI for OpenbabelGUI source files. Put here because
it is now potentially cross-platform.
2006-03-02 Craig James <cjames@emolecules.com>
* src/bitvec.cpp, src/bitvec.h: Added new operator<(bv1, bv2) that
returns true if the bits in bv1 are a subset of the bits in bv2.
* src/dlhandler_unix.cpp (findFiles): Fixed a memory leak. The
code to free the memory was there but had been commented out.
* src/mol.h, src/mol.cpp: Added functions UnsetUp(), UnsetDown().
Modified SetUp() and SetDown() to also invoke UnsetUp() and
UnsetDown(), respectively, so that both up and down flags aren't
set simultaneously. Changed UnsetAromatic() to use UnsetFlag().
* src/mol.cpp (GetSpacedFormula, GetFormula): Molecular Formula
was counting only explicit hydrogens, e.g. might report C20H2.
Changed to report the total (implicit plus explicit) hydrogen
count so that Molecular Formula is correct.
* src/obconversion.cpp (OptionParamArray): Fixed memory leak.
* src/formats/mdlformat.cpp (ReadMolecule): Fixed reference to
uninitialized memory that caused random behavior. Reformatted
file to correct indenting problems.
* src/math/vector3.cpp (Comments only): Added comments to
CalcTorsionAngle() explaining how it works.
2006-03-01 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/obconversion.cpp (ReadFile): Fix bug PR#1435777 for crash
when calling when only the input format was set -- code mistakenly
referenced pOutFormat.
* src/parsmart.h: Add #ifndef SWIG to prevent wrapping internal
struct's used to form the Pattern type.
* src/formats/mdlformat.cpp: Use old-style Trim() syntax to
prevent backwards-incompatibility. Remove final " 0" for REGNO from
v3000 COUNTS line. Fixes PR#1439475, as susggested by Ernst-Georg.
* test/smartsresults.txt: Update to match previous atom type changes.
2006-02-22 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/data.cpp (AssignBonds): Make sure that OBResidueData calls
Init() before starting and some minor cleanups to atom type
assignment, exposed by comparing PDB->Mol2 files from Babel and
Sybyl. Thanks to Kevin Parkes for the example file.
* src/formats/mol2format.cpp (WriteMolecule): Add back atom names
from residues, add a residue number to each residue name (e.g.,
THR1 vs. THR). Should better match mol2 files from Sybyl.
* data/atomtyp.txt; Add an implicit valence rule for phosphates to
fix PR#1403974.
2006-02-22 Chris Morley <ob@gaseq.co.uk>
* src/formats/mdlformat.cpp: Mod to read files with no M END.
Bug found by Hassan Mamdani.
2006-02-20 Chris Morley <ob@gaseq.co.uk>
* src/obconversion.cpp(Description): Make dependent on HAVE_LIBZ.
* src/parsmart.cpp: Rename STRICT to OB_PARSMART_STRICT because of
conflict in VC8. Not used anyway.
* src.typer.cpp(OBAromaticTyper::ParseLine): Ignore blank lines
to avoid error messages.
* src/formats/mdlformat.cpp: Add Trim() after a getline() to remove
erroneous CRs when Windows binary mode used. Add m option to
Description.
* src/xml/cmlformat.cpp(WriteFormula): Pass copy of OBMol so that
can add implicit hydrogen when molecule is an atom.
As suggested by Tappani Kinnunen:
Added test for NULL pointer in reading Nasa_OldThermo;
deleted erroneous xmlTextWriterStartElementNS(); but
have not yet added empty dictRef attribute to property
(needs more consideration).
* src/format/xml/xml.cpp(ReadXML):Skip over non-elements.
2006-02-20 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/parsmart.cpp (ParseComplexAtomPrimitive): Fix PR#1364604 for
no default value for "X" primative (should default to one
connection if no number is specified).
* ChangeLog.1.x: New file, contains changes for 1.x releases.
* Doxyfile: Update to allow 2.1 documentation generation.
* configure, configure.in, Makefile.*: Update to test for Perl and
"prove" used for new test harness.
* test/*: New test "harness" using Perl, if available to provide
summary output. Yields much better summary information and sets
BABEL_LIBDIR as needed to prevent user problems with the 2.0.0 release.
2006-02-19 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/formats/pdbformat.cpp: Fix PR#1368851 for PDB export with
large coordinates. Optionally shifts coordinates if needed.
* src/mol.h: Fix PR#1373650 -- return NULL if no coordinate array
is available. Prevents segfault.
* src/atom.cpp (GetResidue): Make sure to return NULL if chains
perception fails.
* src/chains.cpp: If only one residue is found, and it's UNK, it's
probably not a residue, so nuke it.
* src/formats/mol2format.cpp: Combined with two above fixes,
ensure atom labels are printed correctly for mol2 files. All three
fix PR#1371789.
* src/obconversion.cpp: Update documentation to point out
workaround for PR#1368969 with static members of OBConversion --
declare dummy variable to make sure LoadFormatFiles() has been called.
* tools/obxyz.cpp: New program to allow cartesian transformations
(translations, rotations).
2006-02-18 Geoffrey Hutchison <babel@geoffhutchison.net>
* residue.h, residue.cpp: Move residue property definitions into
new header to support biomolecule formats.
* src/formats/fastaformat.cpp: New format, contributed by Sangwoo
Shim. Resolves format request PR#902406.
* src/formats/mdlformat.cpp: Fix possible memory leak
with comment data and ensure comment is stored properly.
* src/math/matrix3x3.cpp, src/math/matrix3x3.h,
src/math/vector3.cpp: Fix documentation errors.
* src/obconversion.h, src/obconversion.cpp: Add option to
WriteString to omit any trailing whitespace. Resolves PR#1396953.
2006-01-25 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/zipstreamimpl.h (overflow): Patch calls to setp as
suggested by Rathann Mierzejewski.
* scripts/perl/* : Added more unit tests, fixed bug with
case-sensitive filesystems, and problems with dynamic loading on
Linux.
* scripts/python/*: Updated to fix problem with dynamic loading on
Linux.
* aclocal.m4, configure, configure.in, ltmain.sh, */Makefile.in
*/Makefile.am: Update to libtool-1.5.22 and ensure libxml2 is only
used if v2.6.5 or later.
* src/kinetics.h: Move from src/formats/xml/ for general utility.
* src/formats/xml/xcmlformat.cpp: Remove deprecated file.
2005-12-22 Chris Morley <ob@gaseq.co.uk>
* src/main.cpp (main): removed unsigned from pos to correct bug
found by Mikael Johansson.
* src/formats/turbomole.cpp: Updates by Mikael Johansson.
2005-12-19 Chris Morley <ob@gaseq.co.uk>
* src/molecformat.h, molecformat.cpp: Put most of code into static
functions which can be called from elsewhere.
Changed implementation of the -j option so that combining is done by
+= of OBMol so that useable with any format.
* src/formats/xml/xml.h(XMLMoleculeFormat): Reduced code duplication
by calling static OBMoleculeFormat functions.
* src/mol.cpp(operator+=): Combined molecule has a dimension equal
to the smallest of its constituents.
* src/chiral.h: added missing std:: and #include <vector>
2005-12-18 Chris Morley <ob@gaseq.co.uk>
* src/obconversion.h, obconversion.cpp (IsFirstInput())mod.
(OneObjectOnly) Added inverse call.
(Convert) Call WriteChemObject only at end with C option
(FullConvert) Can now have input and output files the same
#define ZEROATOMSOK
* src/generic.h, src/mol.h, tokenst.cpp(Trim): Now returns a reference
to the string to make it easier to use, esp in function parameters.
* src/generic.h: OBGenericData and derived classes: OBCommentData,
OBExternalBond, OBPairData,OBVirtualBond,OBRingData,OBUnitCell,
OBConformerData,OBSymmetryData,OBTorsionData,OBAngleData,OBChiralData,
OBSerialNums added virtual Clone() method to allow copying given a
polymorphic OBGenericData pointer.
* src/rotameter.h: ditto OBRotameterData
* src/residue.cpp: Commented out OBGenericData methods in OBResidue
and deletion of objects in destructor - now in base class.
* src/mol.h: OBResidue now derived from OBBase; comment out its
OBGenericData methods and _vdata. ditto OBAtom, OBBond, OBMol,
* src/mol.h, mol.cpp: I kept needing a more easily parsed
GetFormula(). Added GetSpacedFormula()and changed the implementation
(but not interface) of GetFormula().
Initialized and copied _dimension in constructors.
* src/parsmart.cpp: changed error message handling.
* src/transform.cpp: Added --title and --property options. Improved
handling or error conditions while doing options.
* src/main.cpp: Ensure that long options can take more than one
following text parameter. (Used for --property).
Make clog message describe the type of object converted, e.g.
"2 reactions converted" (when reaction.h is updated) Small
consequent change in help().
* src/formats/APIInterface.cpp, main.cpp: All long options are now
GENOPTIONS
* src/obmolecformat.h: Split out implementation into a new
src/formats/obmolecformat.cpp. Added code for -C option to defer
output of molecules so that molecular properties, defined in several
files can be combined. Move obmolecformat.h to src/formats/
* src/formats.mdlformat.cpp: Corrected bug #1370212 with code along
the lines suggested.
Attempt to reconcile bug #1368849 and earlier suggestions:
As before $$$$ is written between molecules but is now written at the
end only if any properties have been written (sdf) but not if they haven't
(mol). Add option -xm to not output any properties.
* src/formats/fastsearchformat.cpp: Added -u option for updating index.
* src/formats/: add thermoformat.cpp and titleformat.cpp.
* src/formats/xml/xml.h: remove SetFormatting; add missing std::
* src/formats/xml/xml.cpp: add option to have no xml formating
* src/formats/xml/xcmlformat.cpp: add option to output properties.
Read and write properties, read and write Nasa thermo data.
GetSpacedFormula() simplifies cml output!
Renamed to src/formats/xml/cmlformat.cpp
* src/formats/smilesformat.cpp: reads * as radical centre, as NIST is doing.
* src/formats/titleformat.cpp added.
* src/formats/xml/kinetics.h added, containing OBRateData and
OBNasaThermoData classes derived from OBGenericData.
2005-11-25 Chris Morley <c.morley@gaseq.co.uk>
* src/formats/mdlformat.cpp, rxnformat.cpp: Yesterdays change
broke rxnformat. Add option to supress $$$$.
* windows/obabel/OBabel.dsp: This config sees fingerprints ok.
* windows/OBRunTime.dsw: rename to OpenBabel.dsw
2005-11-24 Chris Morley <c.morley@gaseq.co.uk>
* windows-vc2005: upadtae files but struggling with wrong tags
on some files. Renamed as OpenBabel.sln
* src/INSTALL.WINDOWS: removed. (First draft 2004 by PMR)
* src/README: removed. (about 2003 oblib)
2005-11-23 Chris Morley <c.morley@gaseq.co.uk>
* src/fingerprint.h, fingerprint.cpp: rearrange so that FptIndex
has member functions.
* src/formats/fastsearchformat.cpp: Add -xu option to update
index.
* src/parsmart.cpp(SMARTSError): Error messages were being
writen by fprintf(stderr... and stdout. This made no difference
on console output but was not being picked up by the Windows GUI.
Changed to obErrorLog style.
* src/chains.cpp(GenerateByteCodes): Changed error messages to
obErrorLog style.
* zipstreamimpl.h(flush):Added test for NULL ostream, which had
been causing crashes (in Windows).
* kekulize.cpp: L152 bestorden was not being initialized (my new
debugger tells me) and the code was testing it. Moved the line
bestorden=99 to before the while loop. Not extensively tested but
seems to give the same as before for a few molecules.
* src/obconversion.cpp(Write): Added conditional compilation to
remove zipstream call in Windows. Started crashing with
---errorlevel. A kludge until we sort out the Windows compression
problems. Two other similar calls in obconversion are still there...
* src/obconversion.cpp(FullConvert): Added SetInStream and changed
the names of pInStream and pOutStream which were stupidly
given names which are also member variables! It's a bit late to
be altering core code like this but splitting, aggregation,
batch and normal all seem ok on Windows.
* src/finger3.cpp: Change name of FP3 file.
* data/SMARTS_InteLigand_051110.txt: replaced by
SMARTS_InteLigand.txt
*src/formats/mdlformat.cpp: Writes $$$$ for every molecule to
resolve bug #1362781
* INSTALL.windows: rewritten
windows-vc2005: Add DLL projects and update.
2005-11-18 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/formats/mdlformat.cpp: Correctly handle unspecified chiral
centers (CFG=3), fixes PR#1324929.
2005-11-15 Geoffrey Hutchison <babel@geoffhutchison.net>
* Makefile.am, Makefile.in: Make sure INSTALL.Windows is included
in dist.
* doc/babel.1: Update with recent format additions.
* src/formats/amberformat.cpp, src/formats/balstformat.cpp,
src/formats/smilesformat.cpp, src/formats/turbomoleformat.cpp:
Update specification URLs.
2005-11-16 Chris Morley <c.morley@gaseq.co.uk>
* src/obconversion.cpp(Convert): m_IsLast set more definitely
as part of solution to bug #1357957.
(FullConvert) Extra gzip code to solve bug #1357705.
[Windows builds are now reading gzip ok but not always writing it
properly.]
src/formats/fastsearchformat.cpp: Extra lines withconditional
SetMoreFilesToCome to solve bug #1357957. [There may possibly be
a gzip incompatibility here as well].
* src/fingerprint.h, src/fingerprint.cpp,
src/fingerprints/finger2.cpp, src/fingerprints/finger3.cpp:
Make bitsperint a private variable and provide a Get(). Not
worth doing - the bug was a missing USING_DYNAMIC_LIBS in
the settings for OBExtraFormats project.
Windows build files.
2005-11-15 Chris Morley <c.morley@gaseq.co.uk>
* src/obconversion.cpp: remove #include <dflcn.h>
* windows/OBGUIDlg.cpp (OnInitDialog): add dummy OBConversion
object to load format files.
2005-11-15 Geoffrey Hutchison <babel@geoffhutchison.net>
* Makefile.am, Makefile.in: Remove non-functional b32.mak file
from distribution.
* NEWS, THANKS: Further updates for 2.0 release.
* data/types.h, data/types.txt: Added PCM atom types.
* doc/Makefile.am, doc/Makefile.in: Removed defunct Migration.html
(from OELib).
* doc/FAQ.html, doc/OBTwoMigration.html, scripts/python/Examples.html:
Updated documentation (from the new website).
* src/formats/pcmodelformat.cpp: Initial support for PCModel
files. Possibly does not include all atom types, but does read all
the initial files I threw at it.
* src/formats/Makefile.am, src/formats/Makefile.in: Compile it.
* src/formats/freefracformat.cpp: Add support for reading files
with atomic symbol in 4th column, rather than first (i.e.,
PCModel-style "free form fractional").
2005-11-14 Geoffrey Hutchison <babel@geoffhutchison.net>
* data/atomtyp.h: Updated with Chris's recent changes.
* data/Makefile.am, data/Makefile.in: Add Christian's data file.
* scripts/perl/Makefile.PL, scripts/python/setup.py: Bump version
number for 1.0 release.
* src/obconversion.cpp: Patch from Jean Brefort to ensure dynamic
loading of modules occurs correctly on UNIX.
* src/fingerprints/finger3.cpp: Update to also check versioned
directories. Fixes bug reported by Chris Swain.
* src/formats/inchi/Makefile.am, src/formats/inchi/Makefile.in:
Fix capitalization errors pointed out by Jean Brefort.
* src/formats/xyzformat.cpp, src/formats/freefractformat.cpp: Add
specification URLs to point to Open Babel website. New format
database will give information on what OB reads/writes.
* src/formats/gaussformat.cpp: Fix error uncovered in roundtrip
test with graphite & 2D translation vectors. TV are reported as
atomic number -2.
* test/Makefile.am, test/Makefile.in: Clean-up of Makefile.am.
* tools/obdoc.cpp: Fix HTML -- there was a trailing </h2> tag.
2005-11-12 Chris Morley <c.morley@gaseq.co.uk>
* src/finger3.cpp: reads two formats of patterns file. Added FP4
with patterns in...
* data/SMARTS_InteLigand_051110.txt: from Christian Laggner with
extra LGPL line.
* data/patterns.txt: Added extra firstline to identify format.
* data/atomtyp.txt: Added additional IMPVAL lines for
atoms of F Cl Br I P S to allow implicit hydrogens(e.g.in SMILES)
and improve the reversibility of add/remove hydrogens. Needs to be
put into equiv .h file.
* src/formats/xml/xcmlformat.cpp: Now writes correct namespace uri
for CML1. Test for no bonds (for outputting a formula instead)
now made before removing hydrogens.
* src/formats/xml/xcmlformat.cpp, xml.h: Mods to allow nested
molecules.
* src/formats/xml/xml.cpp: XML programming notes added.
* src/formats/xml/xmlformat.cpp, xml.cpp, xml.h: files can now
contain objects of different types, e.g. molecules in cml and pubchem
* test-set/others/: added some cml files
* src/obconversion.cpp: minor changes to comments
Update Windows build files
2005-11-10 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/formats/bgfformat.cpp (ReadMolecule): Fix problem with atom
type translation uncovered during roundtrip testing -- atom type
was "cleaned" before assignment.
* src/formats/Makefile.am, src/formats/Makefile.in: Make sure
libinchi is correctly linked to inchiformat module.
* src/formats/PQSformat.cpp, src/formats/fastsearchformat.cpp,
src/formats/fingerprintformat.cpp, src/formats/inchiformat.cpp,
src/formats/rxnformat.cpp: Found a few remaining calls to
cerr. Updated to use OBMessageHandler framework, fixing PR#1281758.
2005-11-09 Geoffrey Hutchison <babel@geoffhutchison.net>
* Doxyfile: Update version number for 2.0 release.
* NEWS, THANKS: Updates for 2.0 release.
* data/patterns.txt: Updated with new version from Chris Morley
with corrected SMARTS patterns.
* doc/Makefile.am: Remove man.1 pages from target list for now -- new
versions are much better than doxygen generated versions.
* doc/api-header.html, doc/api-footer.html: Updated for new
website template.
* doc/*.1: Updated man pages by hand.
* configure, configure.in, src/config.h.in, */Makefile.in: Updated
to always build InChI now that the IUPAC code is distributed under
the GNU LGPL.
* src/formats/Makefile.am, src/formats/Makefile.in,
src/formats/inchi/*: Ditto.
* scripts/perl/Makefile.PL: Make sure to include libz in
compilation.
* src/bitvec.cpp, src/bondtyper.cpp, src/chains.cpp,
src/chiral.cpp, src/fingerprint.cpp, src/generic.cpp,
src/obconversion.cpp, src/patty.cpp, src/resdiue.cpp,
src/rotor.cpp: src/formats/mdlformat.cpp,
src/formats/mol2format.cpp, src/formats/smilesformat.cpp:
Updated to use OBMessageHandler framework for errors rather than
old ThrowError or cerr directly. Solves PR#1281758.
* src/parsmart.cpp: Actually implement up & down bond
primitives. Solves PR#1219329.
* src/formats/PQSformat.cpp: Remove calls to exit() which should
never be used in production code.
* src/formats/balstformat.cpp: Add specification URL.
* tools/Makefile.am, tools/obdoc.cpp: Add hint for "obdoc" tool
which creates the file format documentation.
* tools/obchiral.cpp, tools/obprop.cpp: Add Doxygen man page.
2005-11-01 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/formats/hinformat.cpp: Make sure to mark all aromatic bonds
as "a" in output. Fixes bug reported by Rajarshi Guha.
2005-10-21 Geoffrey Hutchison <babel@geoffhutchison.net>
* data/atomtyp.txt, data/atomtyp.h, data/types.txt, data/types.h:
Updated Dreiding atom types, contributed by Menno Deij.
2005-10-20 Geoffrey Hutchison <babel@geoffhutchison.net>
* Makefile.am, Makefile.in: Make sure both windows and
windows-vc2005 directories are included.
* src/data.cpp (OBTypeTableTranslate): Fix possible crashes when
translating atom types and one or both columns are out of range.
* src/freefractformat.cpp: Add TrimErrors routine to trim trailing
standard error notations in numbers. Now properly reads 1.234(56)
as input.
* test/ringresults.txt, test/smartsresults.txt: Updated to reflect
atom typing changes.
2005-10-19 Chris Morley <c.morley@gaseq.co.uk>
* src/formats/xcmlformat.cpp: Added reading and writing
of <crystal> xFract etc.
* src/formats/freefracformat.cpp: added kludge for
getline() in Windows(binary mode) possibly returning 0x0d
from a blank line.
Removed two unreferenced variables
* doc/OBTwoMigration.html: Replace example of Reaction SMILES
(sadly not yet done) by CMLReact. Couple of typos.
2005-10-18 Geoffrey Hutchison <babel@geoffhutchison.net>
* Doxyfile: Updated for new doxygen release (1.4.5).
* NEWS: Updated with initial release notes for 2.0.
* configure, configure.in: Fix problems with libz detection.
* doc/OBTwoMigration.html: Add a draft migration guide, touching
on four key code updates.
* doc/*.1: Updated manpages.
* scripts/*: New versions (1.0.0b5) using SWIG 1.3.27.
* src/atom.cpp, src/mol.cpp, src/molchrg.cpp: Documentation
updates (switching to new iterators).
* src/chains.h, src/chains.cpp: Updates from last OELib GPL
version, which were not previously incorporated.
2005-10-17 Geoffrey Hutchison <babel@geoffhutchison.net>
* COPYING: Updated FSF address.
* src/formats/Makefile.*: Add new copyformat code.
* src/atom.cpp, src/base.cpp, src/ring.cpp, src/patty.cpp,
src/mol.h, src/molchrg.cpp, src/oberror.h, src/oberror.cpp,
src/obiter.cpp: Documentation updates.
* src/obconversion.h, src/obmolecformat.h : Revert change of
std::type_info -- GCC requires the namespace declaration.
2005-10-17 Chris Morley <c.morley@gaseq.co.uk>
* src/formats/xml/xcmlformat.cpp: Added CML1 writing.
Corrected bug in writing "x","y" instead of "x2","y3" etc.
Corrected bug in x and z 3D coords in array mode.
2005-10-17 Chris Morley <c.morley@gaseq.co.uk>
* src/obconversion.h:Replaced std::type_info by type_info
in preparation for mods to ensure STL/VC6 compatibility.
I hope it will still compile in unix.
* src/obconversion.cpp,obconversion.h: Added GetInLen(), wInlen,
rInlen to provide the length of the object being written.
This simple operation is irritatingly complex because of object
queue.
* src/copyformat.cpp: simple new format which allows chemical
filtering from a multi-object file with no possibility of losing
content by OB's conversion, e.g. sdf or xml files.
* src/formats/exampleformat.cpp: Now a heavily commented
format template. Maybe should be put in another folder.
* src/formats/inchiformt.cpp(WriteMolecule): correct bug sometimes
causing crash when no 0Dstereo info.
* windows-vc2005: Added project files for Visual C++ 2005
2005-10-14 Geoffrey Hutchison <ghutchis@Alumina.local>
* Source-code documentation updates. Ensure all classes and struct
definitions have at least a brief description.
2005-10-14 Chris Morley <c.morley@gaseq.co.uk>
Update Windows build files and documentation. Remove unused files.
2005-10-13 Geoffrey Hutchison <babel@geoffhutchison.net>
* acinclude.m4: Fix bug in CHECK_ZLIB macro to correctly disable
zlib support if --without-zlib option is selected.
* src/data.h, src/typer.h, src/bondtyper.h, src/phmodel.h,
src/rotor.h: Add a GetSize() method to all OBGlobalDatabase
classes. Ensures a data table is not empty after calling Init().
* configure.in, configure, src/config.h.in: Update for a 2005-10-15
snapshot. Require libxml2 >= 2.6.0 (which adds the xmlwriter API).
* doc/api-header.html, doc/api-style.css: Update with new Doxygen
version (which adds "tabs" to organize sections).
* src/Makefile.am, src/Makefile.in: Update to zipstreamimpl.h
instead of zipstream.cpp.
* src/zipstream.h: Switch basic_zip_ostream and
basic_unzip_istream to using public base classes, which works
around a bug in some versions of GCC.
* src/formats/xml/Makefile.am, src/formats/xml/Makefile.in: Switch
from defining LDFLAGS to correct AM_LDFLAGS (which allows the user
to customize LDFLAGS as desired).
2005-10-11 Chris Morley <c.morley@gaseq.co.uk>
* src/obconversion.cpp(FormatFromExt): correct mistake
in last mod.
src/obconversion.h Add explicit copy constructor for
OBConversion (just so pAuxConv is set to NULL).
* src/generic.cpp, src/chiral.cpp: added return statements
etc to avoid compiler warnings.
* src/data.h: Added OBAPI to class OBResidueData (for DLL builds)
* src/mol.h, src/formats/pdbformat.h, src/data.cpp: Moved
global variable OBResidueData resdat to data.cpp and
treat it like other global variables. (This makes DLL builds
easier.) If its use is specific to pdb format, perhaps it
should be a a static variable in PDBFormat?
* windows/babelconfig.h: removed HAVE_LIBZ because in DLL
builds unzipping code was preventing input of any file. OK
in OBGUIs where is now defined in Settings.
Updated Windows build files.
2005-10-09 Chris Morley <c.morley@gaseq.co.uk>
* src/obconversion.cpp(FormatFromExt): test failure of
string::find, etc by return of string::npos
* src/obconversion.cpp(SetStartAndEnd):
If EndNumber < StartNumber output only one object
* src/mdlformat.cpp(SkipObjects): inverted test for "$$$"
which was causing -f and -l errors reported by Chris Swain.
* src/formats/inchiformat.cpp: Added 'test' format for
doing round trip, testing before and after with InChI
* src/zipstreamimpl.h: Name changed from zipstream.cpp
* src/zipsteam.h: consequent name change of #include
2005-10-07 Chris Morley <c.morley@gaseq.co.uk>
Update Windows build files.
* src/chiral.cpp(CalcSignedVolume): change name of second
loop variable from i to j (VC6 deficiency)
* src/data.cpp(OBElementTable::ParseLine); make symbol[5]
[3] wasn't enough. (Better debugger!)
* src/fingerprint.cpp: remove #if HAVE_CONFIG
2005-10-05 Chris Morley <c.morley@gaseq.co.uk>
* src/zipstream.cpp(add_footer): changed 2nd var n to m to
accomodate VC6 compiler. (But still not writing properly in VC6)
* src/obconversion.cpp: moved compression code from Convert()
to Convert((std::istream* is, std::ostream* os) and restored
pOutStream after conversion. Also in write();
* src/obconversion.cpp (FullConvert): moved call to
OneObjectOnly() inside loop in splitting section to cure bug
#1313201.
* src/formats/fastsearchformat.cpp: Changed Convert() to
Convert(NULL,NULL) (two places) so that compression code will
be called.
* src/formats/smilesformat.cpp (SmiToMol): removed call to
AddHydrogens().
2005-10-04 Geoffrey Hutchison <babel@geoffhutchison.net>
* tools/obgrep.cpp: Fix PR#1286797. Count of matching molecules
was stored as a char??. Corrected code to store as unsigned int
and output correctly. Thanks to Chris Swain for the bug report.
* src/zipstream.h, src/zipstream.cpp: Update to (hopefully) fix
syntax problems with VC++ experienced by Chris Morley.
* src/atom.cpp (GetType): Make sure to save and restore
OBTypeTable patterns -- otherwise higher-level code will see
unexpected type translations.
* src/data.h src/data.cpp (OBTypeTable): Set const on parameters
where needed, add error checking for GetToType and GetFromType()
methods.
* src/formats/*.cpp: Add code to move to ifs.eof() after reading
to ensure the multiple-molecule parsing doesn't attempt to add an
invalid empty molecule.
* src/formats/smilesformat.cpp: Add defensive code around chiral
search code -- ensure all pointers are valid before dereferencing.
* test/roundtrip.cpp: Ensure the filestream is not at EOF before
attempting to read another molecule (and complain that a format
has translated an incorrect number of molecules).
* tools/README: Remove comments about deprecated obtanimoto program.
2005-10-03 Geoffrey Hutchison <babel@geoffhutchison.net>
* configure, configure.in: Fix BUILD_SHARED condition to only
build dynamic file format modules when shared libraries are also
enabled.
* scripts/*: Update SWIG modules using SWIG 1.3.26rc1.
* src/formats/smilesformat.cpp: By default, add implicit hydrogens
when reading SMILES files.
* tools/obprop.cpp: No need to add hydrogens to SMILES files, as
above.
* src/formats/carformat.cpp: Modifications to better handle
multiple-molecule CAR files, as suggested by Jean Dessolin.
* test/roundtrip.cpp: Refined error messages to report molecule
number and file number (1 vs. 2).
2005-09-29 Geoffrey Hutchison <babel@geoffhutchison.net>
* data/types.h: Updated (as below).
* src/zipstream.h, src/zipstream.cpp: Updated with cleaned-up
versions from OpenSG project. Added method to add gzip header
after creating stream.
* src/obconversion.cpp: Clean up WriteString() and WriteFile()
methods to use Write() -- eliminates duplicated code. (Maybe
Convert should use Read() and Write() similarly.) Now works
correctly with gzip output.
* src/dlhandler_unix.cpp: Update to fix crashing bugs with global
loading of OBConversion::LoadFormatFiles().
* configure, configure.in, */Makefile.am, */Makefile.in: Update
for new snapshot, minor fixes for distribution.
* Doxyfile, src/base.cpp: Update for eventual 2.0.0 release.
2005-09-17 Chris Morley <c.morley@gaseq.co.uk>
* src/formats.mpdformat.cpp: Nick England's format for printing
atom types added (Slightly modifed option handling.)
* data/types.txt: Extended. types.h not yet updated.
2005-09-14 Chris Morley <c.morley@gaseq.co.uk>
* src/main.cpp(main): line 322 Mods to place * correctly
when file name has *.gz
* src/obconversion.cpp, obconversion.h: Removed dummy
instance which was causing trouble and called LoadFileFormats()
from the initialisation of a static variable. Removed call to
LoadFileFormats in constructor.
* src/obconversion.cpp: Added -z option and code for zipstream
output in Convert() and Write(). But ozipstream seems not to be
working properly at present.
Messed around with ReadString() and ReadFile().
2005-09-14 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/obconversion.cpp: Only use dummy instance on WIN32 or when
not using dynamic modules (e.g., CygWin).
* src/zipstream.cpp, src/zipstream.h: Changes to compile on
GCC. (Hopefully it will *still* compile on VC6.)
2005-09-14 Chris Morley <c.morley@gaseq.co.uk>
* src/obconversion.h, obconversion.cpp(Read): Make non-templated
and move to .cpp; Add zipstream code to Read and Convert,
* src/OBConversion.cpp: Add global dummy instance, so that format
files are loaded. (A better way to do this needs to be found.)
* src/zipstream h, zipstream.cpp: changed to compile on VC6!
2005-09-12 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/zipstream.h, src/zipstream.cpp: Modified classes (updated to
compile in GCC) to support gzip/zlib compression streams.
* configure.in, configure, src/Makefile.am, */Makefile.in: Add
support for conditional compilation of code depending on zlib. (i.e.,
zipstream.cpp).
* src/obconversion.cpp (FormatFromExt): Change to detect .gz
extension and look for previous extension.
2005-09-11 Geoffrey Hutchison <babel@geoffhutchison.net>
* configure.in, configure, src/config.h.in, Makefile.in,
*/Makefile.in: Update to detect libxml2 headers and libraries
using AM_PATH_XML2 and compile src/formats/xml directory.
* src/formats/Makefile.am: Remove cml.cpp and cmlformat.cpp old
code.
* data/bondtyp.txt, data/bondtyp.h: Updated porphyrin /
phthaloc. patterns with hand-written SMARTS and bond
orders. Ensures correct bond order assignment.
* src/data.h, src/data.cpp: Move OBResidueData from pdbformat.cpp,
so that other code can use residue data.
* src/generic.h: Move OBSerialNums from pdbformat.cpp.
* src/formats/pdbformat.cpp: Remove OBResidueData and OBSerialNums
as above.
* src/formats/smilesformat.cpp (OBSmilesParser): Make sure _mapcd
is cleared before reading a molecule -- would crash when
reading/writing multiple SMILES files.
* src/formats/yasaraformat.cpp: New format, contributed by Elmar.
* src/formats/xml/pubchem.cpp, src/formats/xml/xcmlformat.cpp:
Change OBMol::SetTitle() calls to be ISO C++ compilant.
* src/dlhandler_unix.cpp: Add support for multiple search paths
for shared format modules. Uses environmental variable
BABEL_LIBDIR which can be a colon separated list of paths
(e.g. /usr/lib/openbabel:/usr/local/lib/openbabel ...)
* test/ringresults.txt, test/smartsresults.txt: Regenerate after
recent SMARTS and atom typing changes.
2005-09-10 Chris Morley <c.morley@gaseq.co.uk>
* src/formats/libxml: Added libxml2 header files. I have
used a Windows DLL for libxml2 and haven't used the
source files, but I guess they should be added.
* src/formats/xml: Added classes for CML, CMLReact,
PubChem and a general XMLFormat which chooses based on
xmlnamespace.
xml.cpp amd xml.h contain an extended OBConversion
with libxml2xmlreader and xmlwriter, XMLBaseFormat and
XMLMoleculeFormat abstract classes.
This subfolder may not be the best place for
the format cpp files but are here for the moment because of
possible conflict with the existing cml.cpp and cmlformat.cpp
which they are intended to replace when their bugs have been
reduced.
2005-09-09 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/chiral.h, src/chiral.cpp: Updates from Nick England to
compute chiral volume and track the atoms used.
* tools/obchiral.cpp: New tool from Nick England to print
chirality information on molecules.
* src/formats/mdlformat.cpp, src/formats/smilesformat.cpp: Fixes
from Nick to properly interconvert MDL and SMILES chirality
flags. Solves PR#1257494.
* src/generic.h, src/generic.cpp: New class OBChiralData
contributed by Nick for above.
Removed obDataType enum, replacing with namespace
OBGenericDataType. Allows significantly larger range of "slots"
with room for future expansion without breaking
backwards-compatibility.
* src/atom.cpp, src/bond.cpp, src/mol.cpp, src/mol.h,
src/residue.cpp, src/ring.cpp, src/rotamer.h,
src/formats/cacaoformat.cpp, src/formats/cml.cpp,
src/formats/cssrformat.cpp, src/formats/dmolformat.cpp,
src/formats/freefracformat.cpp, src/format/mdlformat.cpp,
src/format/mol2format.cpp, src/formats/pdbformat.cpp,
src/formats/reportformat.cpp, src/formats/smilesformat.cpp:
Update to use new OBGenericDataType:: declarations.
* src/formats/Makefile.am, src/formats/Makefile.in: Remove
mm3format bits. Not correctly implemented.
2005-09-09 Chris Morley <c.morley@gaseq.co.uk>
* atom.cpp (operator=): _spinmultiplicity now copied
* obconversion.cpp (SetOneObjectOnly): Set _IsLast
* obmolecformat.h: Small comment change
2005-09-07 Geoffrey Hutchison <babel@geoffhutchison.net>
* Makefile.am: Add dist-hook to remove CVS directories from
included windows/ subdir.
* configure.in: Add test for libinchi -- compile InChI format if
libinchi is already available. (Acceptable under both GPL and
InChI terms.)
* src/formats/Makefile.am: Compile InChI format *ONLY* if libinchi
is available already.
* doc/Makefile.am: Build man pages for all obtools, only if
--enable-maintainer-mode was passed to configure.
* scripts/Makefile.am: Build SWIG wrappers only if
--enable-maintainer-mode was passed to configure.
* src/Makefile.am: Ensure headers are installed into
openbabel-2.0/openbabel directory and #include decl are re-written
on install.
* src/math/Makefile.am: Ditto.
* aclocal.m4, configure, config.guess, install-sh, ltmain.sh,
missing, mkinstalldirs, config.sub, */Makefile.in,
src/config.h.in: Updated with libtool-1.5.20 and automake-1.9.6
after above updates.
* openbabel-2.0.pc.in: Update to reflect new include path.
* scripts/openbabel.i: Wrap classes in data.h (OBElementTable,
etc.) too.
* scripts/*: Ditto. Renumber versions from 1.0 to separate from OB
release version numbers. (Scripting wrappers will likely change
more quickly.)
* src/data.h, src/main.cpp, tools/obgrep.cpp, tools/obrotate.cpp,
tools/obfit.cpp, tools/obprop.cpp: Documentation updates.
* src/rand.cpp (OBRandom::TimeSeed): If sranddev() is available
(i.e., BSD and Macintosh), use it -- higher quality results.
2005-09-05 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/data.cpp: Update documentation, perform more error checking
for ParseLine() methods -- report to obErrorLog if needed. Fixes
PR#1252607.
* src/phmodel.cpp, src/typer.cpp (ParseLine): Ditto.
* src/generic.h: Added additional types to enum obDataType, plus
documentation.
* src/bond.cpp: Switch IsDoubleBondGeometry to OBBond method.
* src/mol.cpp, src/mol.h: Update OBMol documentation for OBConversion
class. Add new PerceiveBondOrders() check for
IsDoubleBondGeometry, using patch PR#1275166, contributed by Elmar.
* src/residue.cpp: Update documentation on property namespaces.
* src/parsmart.cpp: Fix matching explicit hydrogen count 'H'
PR#1275176, contributed by Elmar.
2005-09-02 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/formats/cacaoformat.cpp (SetHilderbrandt): Mark a todo to
ensure this method is completely bulletproof -- still appears to
dereference atoms without checking for NULLs.
* src/fingerprint.h, src/fingerprint.cpp (SetBit): Change to take an
unsigned int to prevent crash caused by "negative" parameter.
* src/fingerprints/finger2.cpp (CalcHash): Ditto.
2005-09-01 Geoffrey Hutchison <babel@geoffhutchison.net>
* configure.in, configure: Bump version to 2.0b4-20050901 for
snapshot. Add support for conditional compilation of source based
on libxml2.
* */Makefile.in: Ditto.
* Doxyfile: Bump version to 2.0b4-20050901.
* src/base.cpp: Remove reference to fixed version number in
documentation.
* src/obconversion.h: Remove extraneous OBConversion:: on
OptionParamArray() decl, which confused doxygen.
* src/formats/CSRformat.cpp: Attempt to fix crash encountered
during roundtrip testing from writing audit message.
* src/formats/cacaoformat.cpp (SetHilderbrandt): Prevent crashes
caused by attempting to derference NULL pointers (i.e., small
molecules without a full z-matrix).
* src/formats/mmodformat.cpp: Test to be sure # atoms > 0. Fixes
crash encountered with roundtrip testing on binary data.
* src/formats/mdlformat.cpp: Test to be sure bond record refers to
existing atoms (i.e., 0 < start <= NumAtoms()). Prevents crash
encountered with intentionally invalid MDL files.
* src/formats/zindoformat.cpp: Remove debugging string for
non-standard elements.
* src/chains.cpp (MatchConstraint): Ensure OBAtom parameters are
non-NULL before proceeding. Fixes a bug encountered when
roundtripping H2O.
* src/generic.cpp, src/obutil.cpp, src/ring.cpp src/mol.cpp: Add
identifiers for Blue Obelisk algorithm dictionary.
2005-08-31 Geoffrey Hutchison <babel@geoffhutchison.net>
* data/element.txt, data/element.h: Updated with new data from the
Blue Obelisk shared repository. Should be more consistent with
other values (particularly covalent radii).
* src/data.h, src/data.cpp (OBElement, OBElementTable): Add
support for new data, including ionization potential, electron
affinity, name, and visualization colors.
* data/bondtyp.txt, data/bondtyp.txt: Changes contributed by Elmar
for PR#1275146.
* src/mol.h, src/mol.cpp: Add new method IsDoubleBondGeometry to
assist with bond order assignment (PR#1275170). Fix bugs in
PerceiveBondOrders with conjugated single/double bonds and biotin
PR#1275151, PR#1275160.
* scripts/*: Updated with current API changes. Added more
examples, particularly for Python.
* Doxyfile: Bump for 2.0b4 snapshot.
2005-08-18 Geoffrey Hutchison <babel@geoffhutchison.net>
* data/bondtyp.txt, data/bondtyp.h: Add initial porphyrin / heme
patterns. Probably still a bit buggy. Addresses PR#1259757.
* src/bond.cpp (SetBO): Add calls to SetKSingle(), SetKDouble(),
and SetKTriple() as appropriate. This mirrors expected behavior,
IMHO.
* src/bondtyper.cpp: Remove calls to SetKSingle() etc. since these
are now covered above. All SetBO() calls are handled
correctly. Thanks to Elmar Krieger for noticing this.
* src/formats/freefracformat.cpp: New format for free-form
fractional input (title, unit cell parameters, coordinates).
* src/formats/Makefile.am, src/formats/Makefile.in: Compile it.
* src/formats/xyzformat.cpp: Fix bug with setting title line.
2005-08-17 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/parsmart.cpp: Fix AL_CONST case (currently in non-compiled
code) as suggested by Elmar Krieger. Fixes PR#1261285.
* src/obutil.cpp (InternalToCartesian): Add a check to make sure
pointers are valid before dereferencing. Fixes crash caused by
Amber PREP reading random binary data in a roundtrip test.
* src/formats/amberformat.cpp (ReadMolecule): Add a check to only
call InternalToCartesian when some coordinates have been read,
as above.
* src/formats/viewmolformat.cpp: Prevent an infinite loop when
reading random binary data. Even if no correct records are read,
continue to read a new line to look for a new record.
* src/formats/Makefile.am, src/formats/Makefile.in: For now,
disable compilation of mm3format.cpp since it is incomplete and
incorrect. Related to PR#125604, 1252510.
* src/math/matrix3x3.h, src/math/matrix3x3.cpp:
Add some basic error checking to methods marked TODO.
(FillOrth) Change to matrix specified in PDB documentation:
http://www.rcsb.org/pdb/docs/format/pdbguide2.2/part_75.html
* src/generic.cpp, src/generic.h (OBUnitCell): Simplify code and
re-use matrix3x3::FillOrth() rather than duplicate code.
(OBUnitCell::GetFractionalMatrix): New method to convert from
Cartesian to fractional coordinates.
2005-08-17 Chris Morley <c.morley@gaseq.co.uk>
* src/obconversion.h, obconversion.cpp, main.cpp: Added code
to register how many parameters an option takes(currently 0 or 1).
Gives extra flexibility to command line options, like position
independence, parameter can start immediately or after a space.
Cures bug #1260540 see bug report.
* src/formats/fingerprintformat.cpp, fastsearchformats.cpp,
APIInterface.cpp, smilesformat.cpp, mdlformat.cpp:
Option parameter registrations consequent on above.
* src/obmolecformat.h: Added GetType() (returns typeid for OBMol).
Option parameter registrations for -b -s input options and
for API general options which relate to OBMol.
* src/obconversion.h, obconversion.cpp: Added hook to extend
OBConversion (initially for an XML reader). AuxConv is a pointer
to an object derived from OBConversion which is deleted in
the destructor.
2005-08-16 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/mol.h: Add obiter.h to standard included headers to allow
STL-compatible iterators.
* data/torlib.txt, data/torlib.h: Add nitro rotation pattern
contributed via JOELib2.
* data/phmodel.txt: Update comment on imidazole charge, transform
patterns.
* data/aromatic.txt, data/aromatic.h: Add "default" aromatic rules
for carbon and nitrogen with a range of possible electrons
(depending on specific bonds, formal charges, etc.) Solves
PR#1257827.
* test/smartsresults.txt: Regenerate after recent typing changes.
2005-08-15 Geoffrey Hutchison <babel@geoffhutchison.net>
* data/bondtyp.txt, data/bondtyp.h: Add fix for carbonic acid bond
typing bug (a.k.a. "multimatch") and carbon dioxide, both
contributed by Elmar Krieger. Fixes PR#1253307 and #1257588.
* src/parsmart.cpp (EvalAtomExpr): Add fixes for PR#1253301,
contributed by Elmar Krieger. Solves problems with phosphates and
phosphorous acid.
* src/typer.cpp (CheckAromaticity): Add fix for multi-ring
compounds like heme / porphyrins, where not all rings are properly
typed as aromatic, contributed by Elmar. Fixes PR#1259786.
* src/formats/mol2format.cpp: Updated Tripos Mol2 format
specfication URL, as contributed by Nick England (PR#1257712).
* src/formats/mdlformat.cpp: Ensure no "4" aromatic bond orders
are used when writing MDL files. If a bond is detected to have
BO == 5, re-run Kekulize() on the molecule. Fixes problems
mentioned in e-mail discussions initiated by Rich Apodaca.
2005-08-12 Chris Morley <c.morley@gaseq.co.uk>
* src/formats/mdlformat.cpp: Following Nick England's discussion,
reversed clockwise/anticlockwise in V300 read.
Re-added IsUp() IsDown() in V3000 write. These were removed for some
reason on 31stJan 2005, but are needed for double bond isomers.
2005-08-11 Chris Morley <c.morley@gaseq.co.uk>
* src/molecformat.h: Move test for NULL pmol.
* src/format/smilesformat.cpp: Molecules with zero atoms now accepted.
2005-08-01 Geoffrey Hutchison <babel@geoffhutchison.net>
* doc/Makefile.am, doc/Makefile.in: Fix bug with rename of
Doxyfile to Doxyfile-man. Handle man page updates.
* doc/babel.1: Updated man page with doxygen (still needs many
updates).
* src/base.cpp: Documentation update.
* src/kekulize.cpp: Fix compilation error under GCC caused by
Chris' previous change.
* src/mol.cpp: Remove cerr calls.
* src/obconversion.cpp (OBconversion::Description): Remove space
at end to properly balance spacing in main.cpp.
* src/formats/*.cpp: Add audit entries for formats not derived
from OBMoleculeFormat.
* src/formats/Makefile.am, src/formats/Makefile.in: Add
cmlppformat.cpp as an example.
2005-07-29 Chris Morley <c.morley@gaseq.co.uk>
* src/formats/obmolecformat.h: Changed to allowed molecules with
zero atoms to be written, since they can have meaning CML.
Replaced with a obInfo message. I hope this
doesn't cause problems with other formats.
* src/formats/cmlppformat.cpp: cmlpp version of cmlformat
For general interest only.
* src/util.cpp, kekulize.cpp: Make some loop variables VC6 compatible.
Maybe it is the only compiler in the universe which uses the old
scope rules for loop variables, but it would be better if they
were done like:
unsigned i;
for(i=0;....{}
for(i=0;... {} another loop
to avoid "re-initialisation" errors in VC6.
2005-07-28 Geoffrey Hutchison <babel@geoffhutchison.net>
* configure.in, configure, */Makefile.in: Add
--disable-dynamic-modules configure option for building static
file formats library. Should solve temporary Cygwin build problems
-- not sure why/how formats aren't installed properly.
Partially fixes PR#1246761.
* src/config.h.in, src/dlhandler_unix.cpp:
Properly handle environments where .so isn't the extension
for modules.
* src/formats/mol2format.cpp: Fix typo PR#1246836.
2005-07-27 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/fingerprints/*: New directory for finger2.cpp and
finger3.cpp. Place new fingerprint formats here.
* src/Makefile.am, src/Makefile.in: Ditto.
* Doxyfile, doc/Doxyfile-man: Updated for new snapshot.
* configure.in, configure, Makefile.am, Makefile.in: Generate the
scripts interfaces automatically if SWIG is installed.
* scripts/Makefile.am, scripts/Makefile.in: Ditto.
* src/config.h.in: Add check for libxml2.
* scripts/perl/*: More documentation.
* data/Makefile.am, data/Makefile.in: Add patterns.txt fingerprint
data to ensure it's installed properly.
* data/atomtyp.txt, data/atomtyp.h: Add + formal charges on carbon
to IMPVAL rules, matching Chris's change below.
* data/patterns.txt: Add descriptive header, explaining format and
purpose of this file.
* src/fingerprint.cpp, src/fingerprint.h, src/kekulize.cpp,
src/obutil.cpp, src/patty.cpp, src/formats/fastsearchformat.cpp:
Fix signed/unsigned integer warnings.
* src/generic.cpp: Fix copy ctor compiler warnings (call base
class ctor).
* src/oberror.h, src/oberror.cpp: Move "level" into OBError class
out of OBMessageHandler. Allows OBError to format the message
output based on the type of message.
* src/formats/Makefile.am, src/formats/Makefile.in: Add
APIInterface to build list. Fixes problems passing flags via
command-line.
* src/formats/bgfformat.cpp: Fix bug discovered during
roundtripping -- need to move istream to the end of the file, not
the END record.
* src/formats/cml.cpp: Temporarily demote CML errors to info
messages -- currently too verbose.
* test/unitcell.cpp: Fix compilation warning with vector3
assignment.
* test/roundtrip.cpp: Remove debug message left inadvertantly.
* test/smartsresults.txt: Regenerate after atom typing changes.
2005-07-27 Chris Morley <c.morley@gaseq.co.uk>
* data/atomtyp.txt: Add line for C in isocyanide to correct
bug 1226846
* src/atom.cpp (ImplicitHydrogenCount): undo the last correction
which was making other case go wrong.
* src/main.cpp: renamed the variable which has the result of
OBConversion::FindFormat("obapi") because an existing variable was
being used.
2005-07-26 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/atom.cpp (ImplicitHydrogenCount): Add a fix for PR#1226846
-- in methyl isocyanide, the carbanion is marked as an implicit
valence of 1, but a multiplicity of 0. Now handles this case correctly.
* src/obconversion.h, src/obconversion.cpp: Switch ReadString and
ReadFile to non-template OBBase* arguments to facilitate scripting
access. (Handling C++ templates in SWIG is touchy.)
* scripts/* Updates to add OBConversion framework to scripting
interfaces. Includes new perl tests.
* src/formats/smilesformat.cpp: Add a tab delimiter between SMILES
string and title rather than a space as suggested in
PR#1241609. Seem to work OK on Daylight's DEPICT online form with
tabs or spaces.
* src/mol.h: Up BUFF_SIZE to 32768 from 1024 to handle larger line
lengths in input.
* src/data.cpp: Remove duplicate BUFF_SIZE declaration.
* src/kekulize.cpp: Migrate to use OBMessageHandler error
reporting.
* src/fingerprint.h: Rewrite "<nCandidates>" bit, which was
assumed to be an HTML tag by doxygen.
2005-07-25 Geoffrey Hutchison <babel@geoffhutchison.net>
* test/roundtrip.cpp: Migrate OBMol::Clear() statements to more
logical place -- right before a read.
* src/formats/turbomoleformat.cpp, src/formats/hinformat.cpp,
src/formats/dmolformat.cpp: Fix bugs found during roundtripping --
ReadMolecule() would go into an infinite loop looking for the
"next" molecule in a single-molecule file.
* src/formats/cml.cpp: Migrate to OBMessageHandler framework and
make sure to clear the molPtr when a <molecule> beginning record
is encountered.
* src/obmolecformat.h (ReadChemObject): Before attempting to read
from the istream, check to see the status -- are we at the end of
the stream?
* src/obconversion.h src/obconversion.cpp: New methods ReadString,
ReadFile, WriteString, and WriteFile for convenience access
through scripting languages which do not have "stream" support.
2005-07-22 Geoffrey Hutchison <babel@geoffhutchison.net>
* openbabel-2.0.pc.in: Rename pkg-config data to prevent conflicts
with 1.x releases.
* configure.in, configure, */Makefile.in: Ditto.
* data/torlib.txt: Update documentation on torsion rules using
SMARTS patterns.
* src/Makefile.am, src/Makefile.in: Add finger3.cpp to compilation
list, remove fastsearch.cpp.
* src/dlhandler.h, src/fingerprint.h: Add OB_ prefix to
#define/ifdef guards.
* src/oberror.h, src/oberror.cpp: Add methods to turn off error
logging and limit the size of the message queue.
* src/fingerprint.cpp: Add temporary string to eliminate
compilation errors with GCC.
* src/formats/chem3dformat.cpp, src/formats/ghemicalformat.cpp,
src/formats/viewmolformat.cpp: Fix translation errors -- formats
are supposed to be subclasses of OBMoleculeFormat.
* tools/Makefile.am, tools/Makefile.in: Temporarily disable
compilation of obtanimoto -- fingerprint API has changed and this
is not updated yet.
2005-07-19 Chris Morley <c.morley@gaseq.co.uk>
* src/main.cpp src/formats/APIInterface.cpp: API options are now
like ---errorlevel (this was -w) and the name now appears
only in APIInterface.cpp. Added a description and called it in
help().
* src/obmolecformat.h: Changed auditMsg in WriteChemObject to
"...Write...);
* src/fingerprint.h, fingerprint.cpp: Changed parameters of
FastSearchIndexer ctor. Replaced #include "config.h" by
#include "babelconfig.h"
This may solve David Hoekman's compilation difficulties.
* src/transform.cpp: Made type conversion more explicit in
addtotitle handler. ditto
* src.finger3.cpp: looks for data file first in env var and
BABEL_DATADIR
2005-07-13 Chris Morley <c.morley@gaseq.co.uk>
* src/fingerprint.cpp, /srcfingerprint.h, src/finger2.cpp:
modified so that fingerprints are dynamic.
Incorporated fastsearch into fingerprint.h and .cpp.
* src/finger3.cpp: Added a SMARTS pattern matching fingerprint.
Also an incomplete src/patterns.txt. Should probably be moved to
data folder although code to allow this not yet included.
* src/fastsearch.cpp, src/fastsearch.h: Deleted
* src/main.cpp: changed -w handling to pseudo-format, obapi,
to avoid having to #include oberror.h.
Added two lines to exclude its display in format lists.
Added -F option to display available fingerprints.
* src/obconversion.h: small changes in documentation.
* src/transform.cpp; added empty test for options and addtotitle
option (mainly for use in fastsearch)
* src/formats/APIInterface.cpp: Added pseudo format to transfer
data from user interface to API.
* src/formats/fingerprintformat.cpp, src/formats/fastsearchformat.cpp
Modified to make fingerprints dynamic.
* src/formats/mdlformat.cpp, src/formats/smilesformat.cpp Added
extra lines in Description to improve GUI display.
2005-07-11 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/atom.cpp, src/bond.cpp, src/chiral.cpp, src,molchrg.cpp,
src/obmolecformat.h, src/patty.cpp, src/phmodel.cpp, src/ring.cpp,
src/rotor.cpp: Add obAuditMsg "audit log" messages for perception
and "assignment" methods, including methods with "chemical
intelligence" (e.g., OBAtom::HtoMethyl or OBAtom::SetHybAndGeom).
* src/formats/pdbformat.cpp: Transition CONECT warnings to
obErrorLog::ThrowError calls.
* src/oberror.cpp: Turn off default "error wrapping" of cerr to
OBError messages.
2005-07-07 Geoffrey Hutchison <babel@geoffhutchison.net>
* data/atomtyp.txt, data/atomtyp.h: Change implicit valence rules
to fix PR#1226444. N=C(N)C is properly interpreted.
* tools/obprop.cpp: Add hydrogens for SMILES input (checked by
.smi extension). Fixes PR#1222443.
* test/roundtrip.cpp: Fix checks for BOX and SMILES extensions.
2005-07-06 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/data.h (OBElement): Reorder initialization to remove
compiler warning. Documentation updates.
* src/data.cpp (OBElementTable::ParseLine): Format declarations
should be ignored for red, blue, green columns in sscanf call.
* src/main.cpp: Add error log filtering back -- not handled in
OBConversion.
* src/chains.cpp, src/mol.cpp, src/obutil.cpp, src/ring.cpp,
src/typer.cpp:
Add obAuditMsg messages for methods substantially altering an OBMol.
* src/matrix.cpp (convert_matrix_f): Partly unroll loop to
increase performance.
* src/rotor.h, src/rotamer.cpp, src/obconversion.h: Documentation
updates.
* test/roundtrip.cpp: Loop over all molecules in files, checking
to see if one file has more molecules than another.
* src/formats/Makefile.am, src/formats/Makefile.in:
Rename grosmos96format to gromos (correct name of program).
* src/formats/*format.cpp: Add BeginModify() / EndModify() calls
as appropriate (i.e. before and after major changes to OBMol,
including ConnectTheDots or PerceiveBondOrders).
2005-07-04 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/obconversion.h: Move include "babelconfig.h" to the top of
all #includes to ensure proper conditional compilation. Suggested
by Jean Brefort.
* src/mol.h: Ensure std:: is used on Trim() declaration.
* src/generic.h: Call Trim() for OBCommentData().
* src/formats/Makefile.in, src/formats/Makefile.am: Merge cml.cpp
and cmlformat.cpp into a combined library for proper loading -- as
reported by Jean.
2005-07-04 Chris Morley <c.morley@gaseq.co.uk>
Some of Jean Brefort's suggested patches.
*src/obconversion.h, src/obconversion.cpp:
The base class OBFormat needs a virtual destructor,but then
derived format classes don't need their own; the compiler
will generate one if needed.
I've realized that OBConversion does not need an explicit
copy constructor and have removed it.
*src/formats/bgfformat.cpp, cacaoformat.cpp, ccformat.cpp.
chem3dformat.cpp, ckrformat.cpp, featformat.cpp, shelxformat.cpp:
assigned the filename to OBMol title when reading.
*src/formats/mdlformat.cpp, src/formats/rxnformat.cpp,
src/formats/smilesformat.cpp:
2005-07-02 Chris Morley <c.morley@gaseq.co.uk>
*src/tokenst.cpp: Added Trim(), decl in mol.h
*src/mol.h, src/mol.cpp (OBMol::SetTitle): Moved definitions
to mol.cpp and added trim(). Tidier, but also overcomes
Windows(VC++6) problem with CR left at end after getline on
stream in binary mode, which is need for unix file compatibilty.
For consistency should also be done for OBCommentData::SetData()
Would this be safe?
*src/dat.h, src/data.cpp (OBElementTable::GetNumberOfElements):
Added initialization and moved definition to to cpp file.
MOL2Format was getting uninitialized data. Lazy loading was
too lazy.
2005-07-01 Geoffrey Hutchison <ghutchis@Alumina.local>
* src/formats/chemdrawformat.cpp, src/formats/crkformat.cpp,
src/formats/fastsearchformat.cpp, src/formats/mdlformat.cpp,
src/bondtyper.cpp, src/oberror.cpp:
Fix comparisons between signed and unsigned int.
* src/base.h (OBBase): Update DoTransformations for new format.
(OBGraphBase): Call base class from copy ctor.
* Doxyfile, doc/api-footer.html, doc/api-header.html: Update for
generating website SHTML documentation. Still looks good as a
local copy.
* src/Makefile.am, src/Makefile.in, src/formats/Makefile.am,
src/formats/Makefile.in: Update to fix errors from "make dist" for
snapshot.
* scripts/perl/openbabel_perl.cpp,
scripts/python/openbabel_python.cpp: Updated for 2005-07-01 snapshot.
2005-06-30 Chris Morley <c.morley@gaseq.co.uk>
* src/formats/smilesformat.cpp(OBSmilesParser::ParseComplex():
Change size of symbol[] in to 7. Was failing on iodine
isotope [123I]. Another deficiency found by David Hoekman.
2005-06-30 Geoffrey Hutchison <babel@geoffhutchison.net>
* configure.in, configure: Add a check for swig to allow scripting
language wrappers to be rebuilt.
* Makefile.am: Make sure scripts directory will be added to dist.
* src/Makefile.am: Add back matrix.cpp, which was inadvertantly
removed.
* src/matrix.h: Remove unnecessary forward declaration of class Vector.
* */Makefile.in: Rebuilt.
2005-06-30 Chris Morley <c.morley@gaseq.co.uk>
Major change to how options handled. Many files in
/src, /src/formats, /windows altered. (Sorry I don't have a
tool to list them all.)
The options now stored internally in three std::maps for
input, output and general options. These are set on the
command line like -a? -x? and -? respectively.
b and s formats recently added to many formats are now input
options.
Derived most remaining formats from OBMoleculeFormat.
2005-06-28 Geoffrey Hutchison <babel@geoffhutchison.net>
* scripts/ New directory for perl and python scripting wrappers
(and associated setup.py and Makefile.PL build scripts).
* src/openbabel.i, src/openbabel_python.cpp,
src/openbabel_perl.cpp, src/openbabel.py src/openbabel.pm:
Moved, as above.
* src/main.cpp: Add -w# flag for filtering different error/warning
levels with OBMessageHandler.
2005-06-27 Geoffrey Hutchison <babel@geoffhutchison.net>
* data/torlib.txt, src/torlib.h: New files to implement torsional
rules from rotor.cpp::OBRotorRules. Does not (yet) describe all
features in OBRotorRules::ParseLine() code.
* src/rotor.cpp: Use it (rather than declaring the data here).
* data/Makefile.am, data/Makefile.in: Add rules for torlib.
* src/phmodel.cpp, src/mol.h, src/oberror.h, src/bondtyper.cpp:
Add documentation for global variables.
* src/oberror.h, src/oberror.cpp: Add new class obLogBuf, a
streambuf class to filter output going to cerr. Add new methods
OBMessageHandler::StartErrorWrap and ::StopErrorWrap to turn on
(default) and off wrapping of cerr.
2005-06-25 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/formats/amberformat.cpp, src/formats/cacaoformat.cpp,
src/formats/carformat.cpp, src/formats/cmlformat.cpp,
src/formats/dmolformat.cpp, src/formats/gamessformat.cpp,
src/formats/gaussformat.cpp, src/formats/grosmos96format.cpp,
src/formats/jaguarformat.cpp, src/formats/mopacformat.cpp,
src/formats/mpqcformat.cpp, src/formats/nwchemformat.cpp,
src/formats/pdbformat.cpp, src/formats/qchemformat.cpp,
src/formats/shelxformat.cpp, src/formats/turbomoleformat.cpp,
src/formats/unichemformat.cpp, src/formats/viewmolformat.cpp,
src/formats/xyzformat.cpp:
Add command-line options -xs to prevent PerceiveBondOrders from
running (i.e., single bonds only) and -xb to prevent bonding via
ConnectTheDots entirely.
* src/formats/PQSformat.cpp, src/formats/alchemyformat.cpp,
src/formats/balstformat.cpp, src/formats/bgfformat.cpp,
src/formats/boxformat.cpp, src/formats/chem3dformat.cpp,
src/formats/chemdrawformat.cpp, src/formats/crkformat.cpp,
src/formats/featformat.cpp, src/formats/ghemicalformat.cpp,
src/formats/hinformat.cpp, src/formats/mmodformat.cpp:
Update to use OBMoleculeFormat, eliminate redundant code.
2005-06-25 Chris Morley <c.morley@gaseq.co.uk>
* src/mol.cpp, src/mol.h, src/transform.cpp: Added
OBMol::ConvertDativeBonds() (e.g. [N+]([O-])=O to N(=O)=O )
and -b option to invoke it.
* src/formats/fastsearchformat.cpp,
src/formats/fingerprintformat.cpp:
Used ConvertDativeBonds and -b option so that searches are
the same with and with dative bond form in data or target.
* src/finger2.cpp (getFragments): Removed code which only
partially does the above.
2005-06-24 Chris Morley <c.morley@gaseq.co.uk>
* src/finger2.cpp (DoRings) Add the non-ring form of all ring
rotations to remedy some of faults found by David Hoekman.
2005-06-24 Geoffrey Hutchison <babel@geoffhutchison.net>
* Doxyfile, doc/api-header.html, doc/api-footer.html,
doc/api-style.css: Add custom documentation header, footer, and
stylesheet.
* src/generic.h, src/generic.cpp (OBConformerData): Initial
framework for custom per-conformer data. Still need to add access
to individual conformer "frames" and code to add/delete frames
when adding new conformers to an OBMol.
2005-06-23 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/configure.in, src/configure: Generate babelconfig.h from
config.h using AC_CONFIG_COMMANDS as recommended by Jean Brefort.
* src/*.h src/*.cpp, src/openbabel.i: Convert back from config.h
(which still conflicts with other packages on UNIX-ish systems) to
babelconfig.h, as above.
* src/formats/viewmolformat.cpp: Switch to OBMoleculeFormat.
(Testing the difference in compiled code size. Not much.)
* src/formats/smilesformat.cpp: Remove asserts. (Asserts should
not be included in "production" code, IMHO.)
* Doxyfile, */*.h */*.cpp: Documentation updates.
2005-06-23 Chris Morley <c.morley@gaseq.co.uk>
* src/math/vector3.h, src/math/vector3.cpp: Moved the initiallization
of global variables VZero etc from vector3.h to vector3.cpp.
This is recorded for 2005-04-15 but I must have forgotten to
commit it. Added OBAPIs for DLL build compatibility.
* src/math/matrix3x3.h: Added OBAPIs.
2005-06-22 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/kekulize.cpp: Update with Fabien's latest version, fixing
PR#1214545 and adding doxygen documentation.
* src/bondtyper.cpp (AssignFunctionalGroupBonds): Mark assigned
bonds with KSingle, KDouble, KTriple for OBMol::Kekulize()
routine. Fixes PR#1219611.
* src/obmolecformat.h, src/Makefile.am, src/Makefile.in,
src/formats/Makefile.am, src/formats/Makefile.in: Move
obmolecformat.h to src/ from src/formats.
* src/obifstream.h: Removed. Completely unused.
* src/rotamer.h: Remove Read/WriteBinary declarations and
OBBinaryDBase -- unused. We cannot ensure compatibility with
OEBinary (which is now a proprietary format).
2005-06-20 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/formats/mol2format.cpp (ReadMolecule, WriteMolecule):
Contributions from Zhiguo Liu, notably to clean up bonding table,
and to mark O.co2 bonds as "aromatic."
* src/mol.h, src/atom.cpp: Add new methods IsHbondDonor(),
IsHbondAcceptor(), IsHbondDonorH(), contributed by Zhiguo Liu.
* src/vector3.h, src/vector3.cpp: Add new method Point2Plane() for
calculating the distance between a point (vector3) and a point
defined by three points (vector3), contributed by Zhiguo Liu.
2005-06-17 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/data.h, src/data.cpp (OBTypeTable): New methods GetToType
and GetFromType -- primarily for debugging purposes.
* src/formats/mol2format.cpp (WriteMolecule): Make sure
OBTypeTable is always set to translate to SYB format -- would
sometimes be reset to other formats. Fixes PR#1221324.
2005-06-16 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/generic.h, src/generic.cpp (OBSymmetryData): New class for
storing point group and space group symmetry information.
(OBUnitCell): Add support for storing translation vectors for
cleaner roundtrip support from v1,v2,v3 ->a,b,c...->v1,v2,v3 and
for origin offsets.
* src/Makefile.am, src/Makefile.in: Add hints for perl module
compilation.
* src/openbabel.pm, src/openbabel_perl.cpp: Change Perl wrapper
namespace to Chemistry::OpenBabel on advice of other perl users.
2005-06-14 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/mol.h: Remove (temporarily) un-implemented BeginConformer,
NextConformer, and AssignResidueBonds methods. These block use of
the SWIG python wrappers.
* src/openbabel.py, src/openbabel_python.cpp: Regenerate. SWIG
wrapper will now compile and import cleanly into Python.
* src/bondtyper.cpp (AssignFunctionalGroupBonds): Make sure
OBBondTyper data is initialized -- and ensure loop termination is
handled correctly. Resolves part of PR#1219611.
* src/openbabel.pm, src/openbabel_perl.cpp: New files from SWIG --
wrappers for Perl.
2005-06-13 Geoffrey Hutchison <babel@geoffhutchison.net>
* configure.in, configure: Update scandir test with fix from Jean
Brefort.
* Makefile.am, Makefile.in: Make sure windows/ directory is
included in distribution.
* src/Makefile.am, src/Makefile.in: Include hints for SWIG wrapper
generation. Make sure openbabel.i is included in dist.
* src/mol.h, src/atom.cpp, src/data.cpp, src/main.cpp,
src/obconversion.cpp, src/formats/alchemyformat.cpp,
src/formats/balstformat.cpp, src/formats/pdbformat.cpp,
test/roundtrip.cpp: Move declarations of rint, snprintf,
strncasecmp (for platforms that require replacement functions) out
of mol.h header and into source files that particularly use these
functions. (Pointed out by Jean Brefort.)
* src/openbabel.i, src/openbabel.py, src/openbabel_python.cpp:
Updated SWIG development wrappers.
* src/kekulize.cpp: Update with Fabien's latest version, should
fix recent bug reports (no assigned PR for these). Bug fixed
when huckel rule not satisfied + path search.
2005-06-07 Geoffrey Hutchison <babel@geoffhutchison.net>
* tools/obgrep.cpp: Fixed mistake(?) in #elif define to compile
cleanly on GCC.
2005-06-04 Chris Morley <c.morley@gaseq.co.uk>
* tools/obgrep.cpp: Correct bug 1213806 and modify to allow
Windows build
* windows/: Add obgrep/ build files and XGetOpt.cpp and XGetOpt.h
for Windows getopt port.
2005-06-03 Geoffrey Hutchison <babel@geoffhutchison.net>
* configure.in, configure, src/config.h.in: Define SCANDIR_CONST
for the matchFiles scandir() filter function. Should solve problem
between BSD (which doesn't need const) and Linux (which does).
* src/dlhandler_unix.cpp: Use it.
2005-06-02 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/dlhandler_unix.cpp: Fix cast bug reported and fixed by Jean
Brefort.
* configure.in, configure, src/Makefile.am, tools/Makefile.am,
test/Makefile.am, src/config.h.in, Makefile.in, src/Makefile.in,
data/Makefile.in, doc/Makefile.in, src/Makefile.in,
src/formats/Makefile.in, src/math/Makefile.in, test/Makefile.in,
test/cmltest/Makefile.in, tools/Makefile.in:
Add test for scandir cast above. Add test for dlopen in libdl and
add it to LDFLAGS if needed. Should fix bug reported by Jean
Brefort.
2005-06-01 Geoffrey Hutchison <babel@geoffhutchison.net>
* configure.in, configure, src/config.h.in: Bump version for
2005-06-01 snapshot.
* test/attype.00.smi: Add label for last test molecule.
* test/smartsresults.txt: Regenerate using current atom type
patterns.
* test/smartstest.cpp: Make sure to set input and output formats
-- otherwise dynamic loading does not find SMILES importer on UNIX.
* test/unitcell.txt: Switch to ZnO unit cell for new unit cell
tests.
* test/unitcell.cpp: Added some debugging statements to test unit
cell translation vectors. (Currently do not seem to "roundtrip"
properly.)
* tools/obgrep.cpp: Allow input from STDIN to address feature
request PR# 1116202.
2005-05-27 Fabien Fontaine <fabfont@users.sourceforge.net>
* src/kekulize.cpp: Fix bugs reported by Chris Morley and David
Hoekman.
2005-05-26 Geoffrey Hutchison <babel@geoffhutchison.net>
* acinclude.m4: Add CHECK_ZLIB macro for detection of zlib
compression library.
* configure.in, configure, src/config.h.in: Use it.
* aclocal.m4, config.guess, config.sub, ltmain.sh: Update for libtool
1.5.18.
* src/Makefile.am, src/Makefile.in: Ignore kekulize.cpp and
libinchi. Mark library as 1:0:0 version so that libopenbabel from
1.100.x series can coexist.
* src/formats/Makefile.am, src/formats/Makefile.in: Ignore InChI
code until license issues can be resolved. Do not compile
inchiformat.cpp.
* src/bond.cpp: Use PerceiveKekuleBonds() instead of
NewPerceiveKekuleBonds().
* src/bondtyper.cpp, src/fastsearch.cpp, src/finger2.cpp,
src/fingerprint.cpp, src/kekulize.cpp, src/obconversion.cpp,
src/transform.cpp, tools/obfit.cpp, tools/obrotate.cpp:
Standardize top comments.
* src/openbabel.i: Initial SWIG file for scripting language
wrappers. Modules currently build, but experiencing linking
problems on Mac OS X.
* src/mol.h: Declare replacement C library functions rint(),
snprintf(), and strncasecmp() as namespace std:: to fix compile
problems with SWIG.
2005-05-22 Chris Morley <c.morley@gaseq.co.uk>
* src/obconversion.h, src/obconversion.cpp: Added IsFirstInput().
* src/formats/obmolecformat.h: Implemented -j format to aggregate
into a single output molecule.
* src/transform.cpp (OBMol::ClassDescription): added -j option
* src/formats/mdlformat.cpp (ReadMolecule): Added offset
reading in a mdl sdf/mol file to a OBMol object which already has
atoms will now add a disconnected fragment.
2005-05-18 Geoffrey Hutchison <babel@geoffhutchison.net>
* data/Makefile.am data/Makefile.in: Make sure that data files are
included in a "make dist".
* src/Makefile.am, src/Makefile.in: Build dlhandler_unix.cpp. Use
dynamic OBFormat loading.
* src/dlhandler_unix.cpp: Add initial support for dynamic loading
file format modules using $(libdir)/openbabel/*.so
paths. Currently this can cause problems when building/debugging
before installation. I have a symlink from
/usr/local/lib/openbabel -> $(top_builddir)/src/formats/.libs as a
workaround.
* src/formats/Makefile.am, src/formats/Makefile.in: Build each
format as an independent shared-module.
* src/*.h: Minor updates. Make sure to only #include config.h once
per header. Add standard top comments (with description of each
file and Open Babel URL, etc.) to all headers.
* src/dlhandler_win32.cpp: Add file description to top comments.
2005-05-14 Chris Morley <c.morley@gaseq.co.uk>
* src/fingerprint.h, src/finger2.cpp: Yet more bug fixes following
comments by David Hoekman.
* fingerprintformat.cpp: Added IsPossibleSubstructure() and the
display of its result.
2005-05-13 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/base.cpp, src/base.h, src/bitvec.h, src/data.cpp,
src/data.h, src/dlhandler.h, src/fastsearch.cpp, src/grid.h,
src/kekulize.cpp, src/main.cpp, src/matrix.h, src/mol.h,
src/obconversion.h, src/oberror.cpp, src/obifstream.h,
src/obutil.cpp, src/obutil.h, src/patty.cpp, src/phmodel.cpp,
src/residue.cpp, src/rotor.cpp, src/tokenst.cpp, src/typer.cpp,
src/formats/PQSformat.cpp, src/formats/pdbformat.cpp,
src/formats/povrayformat.cpp, test/matrixtest.cpp,
test/ringtest.cpp, test/roundtrip.cpp, test/smartstest.cpp:
Rename babelconfig.h to config.h and conditionally #include it
based on the HAVE_CONFIG_H define (which on UNIX is passed by the
Makefile). This solves PR#885828 in terms on installation and
including the build-dependent babelconfig/config headers.
* configure.in, configure, Makefile.in, doc/Makefile.in,
src/Makefile.am, src/Makefile.in, src/math/Makefile.in,
test/Makefile.in, test/cmltest/Makefile.in, tools/Makefile.in: Ditto.
* data/Makefile.am, data/Makefile.in: Update for version-dependent
data installation (e.g. /usr/local/share/openbabel/2.0.0/*).
* src/formats/Makefile.am, src/formats/Makefile.in: Don't directly
include libinchi (which is now installed separately). Set for
installation of libobformats, which should be dynamically linked
with libopenbabel.
* src/formats/inchi/Makefile.am, src/formats/inchi/Makefile.in:
Fix problems with case-sensitive filenames. (i.e., filenames
changed case in InChI 1.0 release, but were already in CVS tree
with lowercase.) Set for shared-library installation of libinchi.
2005-05-08 Chris Morley <c.morley@gaseq.co.uk>
* src/formats.inchiformat.cpp: remove incomplete code for reading
InChi. Add URL. Post libinchi.lb abd libinchi.dll. More options have
been documented, but are not yet implemented in OB.
*src/base.h, src/base.cpp: The latest MS compiler is more picky, and
(correctly) objects to an iterator being returned as NULL in
OBGraphBase::BgnMatch() and EndMatch(). To work round this the whole
of the code for "substructure search functions" has been commented
out. These are virtual placeholder functions anyway and are not used
internally in the real substructure routines. In the unlikely event
of them being found to be used in an external program we'll have to
find another fix.
* Removed OBConversion::GetDimension(),SetDimension(),SetTitle(),
Redefined SetTitle() to return InFileName as a c_str.
Made return type of strrchr() const char* (picky compiler).
* src/formats/CSRformat.cpp,PQSformat.cpp,alchemyformat.cpp,balstformat.cpp,
bgfformat.cpp,boxformat.cpp,acaoformat.cpp,acheformat.cpp,
chem3dformat.cpp,chemdrawformat.cpp,chemtoolformat.cpp,
crkformat.cpp,cssrformat.cpp,dmolformat.cpp,featformat.cpp,
fhformat.cpp,amessformat.cpp,gaussformat.cpp,ghemicalformat.cpp,
grosmos96format.cpp,hinformat.cpp,jaguarformat.cpp,mm3format.cpp,
mmodformat.cpp,mol2format.cpp,mopacformat.cpp,mpqcformat.cpp,
nwchemformat.cpp,pdbformat.cpp,povrayformat.cpp,qchemformat.cpp,
smilesformat.cpp,tinkerformat.cpp,unichemformat.cpp,viewmolformat.cpp,
xedformat.cpp,xyzformat.cpp,zindoformat.cpp:
Removed
const char *dimension = pConv->GetDimension();
* src/formats/cmlformat.cpp, mdlformat.cpp, pqsformat.cpp:
changes to dimension handling (now an int not a string).
* src/bitvec.h: replace EXTERN by OBAPI extern and tidied.
* src/obiter.h: added several OBAPI.
* src/dlhandler.h, dlhandler_win32.h; Sleep() added.
* src/main.cpp: Space after -i and -o now allowed (but not yet
other options with text). I'm told it is more unix.
Made return type of strchr() const char* (picky compiler).
Commented out debug code to pause at end (better compiler).
Some other files tidied - removal of unused variables.
Somewhere else(?) changed a new loop variable name from i to j
(rubbish old compiler).
2005-05-06 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/formats/inchi: Updated with InChI v1.0 release code.
* src/formats/inchiformat.cpp, src/formats/inchi_api.h: Ditto.
* src/formats/inchi/Makefile.am, src/formats/inchi/Makefile.in,
src/formats/Makefile.am, configure.in, configure:
Update Makefiles for InChI code.
* src/fingerprint.cpp, src/kekulize.cpp, src/obutil.cpp,
src/patty.cpp, src/rotor.cpp: Change error reports
to go to cerr instead of cout. OBMessageHandler will soon grab
cerr, but shouldn't block cout (since it's used for output through
pipes).
* src/main.cpp: Send conversion message to clog instead of cerr,
avoiding problems with OBMessageHandler rerouting cerr.
* src/mol.h, src/mol.cpp: New methods GetFormula() and
SetFormula() to handle stoichiometric formulas.
* src/formats/reportformat.cpp: Use it.
* src/data.h: New method GetNumberOfElements() to return the
number of elements in an OBElementTable.
* src/generic.h: Change SetAttribute to take "const" string
arguments. Ditto for SetData for OBCommentData and SetValue for
OBPairData.
2005-04-24 Chris Morley <c.morley@gaseq.co.uk>
* src/obconversion.cpp, src/obconversion.h:
Change implementation of inputfile seek position, to prevent
it being affected by newlines at the end of the file.
Changed option to ignore errors to -e from -c which was already
used for centre coordinates. Removed -z option.
Remove some obsolete commented out code.
* src/main.cpp: Removed -z option for using previously stored
options. This was conflicting with use with Apache, and was
never of enormous benefit anyway.
* src/finger2.cpp, src/fingerprint.h: fingerprint2 revised
to properly use canonical hash values. Molecules were being missed.
* src/formats/fastsearchformat.cpp: Ensure datafile file
properly read when it is the specified input file.
* windows/*.*: Updated Windows build files
2005-04-19 Geoffrey Hutchison <babel@geoffhutchison.net>
* NEWS: Add notes for formats that were changed/deleted.
* configure.in, configure, src/babelconfig.h.in: Update to #define
OBAPI.
* test/matrixtest.cpp: Include babelconfig.h.
* src/bitvec.h: Make sure to define EXTERN if not otherwise
defined.
* src/obiter.cpp, src/obiter.h: STL-style iterators (and #define'd
shorthand) for OBAtom, OBMol, OBBond and OBResidue.
* src/Makefile.am, src/Makefile.in: Add fastsearch.cpp,
finger2.cpp, obiter.cpp, fastsearch.h, obiter.h.
* src/formats/Makefile.am, src/formats/Makefile.in: Add
fastsearchformat.cpp.
* src/finger2.cpp (RemoveDuplicates): Enforce "const"
declaration.
* src/fingerprint.h (fingerprint2): Enforce std:: namespace.
* src/formats/smilesformat.cpp (SpecificationURL): Add pointer to
Daylight webpage.
* src/formats/mpqcformat.cpp: Add MPQC input format.
* src/formats/qchemformat.cpp, src/formats/povrayformat.cpp,
src/formats/nwchemformat.cpp, src/formats/CSRformat.cpp,
src/formats/bgfformat.cpp, src/formats/cacaoformat.cpp,
src/formats/cacheformat.cpp, src/formats/chemtoolformat.cpp,
src/formats/hinformat.cpp: Minor fixes to descriptions.
2005-04-17 Chris Morley <c.morley@gaseq.co.uk>
* src/fastsearch.h, src/fastsearch.cpp,
src//formats/fastsearchformat.cpp:
Mod to keep fastsearch index in memory after it has
been loaded, to shorten subsequent queries.
2005-04-15 Chris Morley <c.morley@gaseq.co.uk>
* src/*.h, src/vector3.cpp, windows/OBDLL/OBDLL.dsp
windows/OBDLL/OBDLL.mak :
To assist DLL builds, added OBAPI macro to class declarations,
global functions and variables in API files. OBAPI needs to
be set to nothing in babelconfig.h for non-DLL builds.
Had to moved the initiallization global variables VZero etc
from vector3.h to vector3.cpp, where it should have been anyway.
OBDLL can now be built in a conventional way. The whole API
should be exported but I may have missed some items.
2005-04-13 Chris Morley <c.morley@gaseq.co.uk>
*src/fastsearch.cpp, src/formats/fastsearchformat.cpp:
Separated format from API code.
Default fingerprint length is now 32 words.
2005-04-12 Chris Morley <c.morley@gaseq.co.uk>
* src/finger2.cpp src/fastsearch.h src/fastsearch.cpp:
Added. (Fastsearch format really needs to be separated and put
into src/formats.)
* src/formats/fingerprintformat.cpp: Extensive revision to
allow choice of fingerprint type and Tanimoto calculation.
* src/obconversion.h, src/obconversion.cpp (Convert):
Changed implementation of OneObjectOnly
Added capability for the write format to retrieve the seek position
of the object in the input file: wInpos, GetInPos().
Added READBINARY and WRITEBINARY options in format flags
which are implemented when files are opened. Applicable for
binary formats (which there are currently none?) in non-unix systems.
(FullConvert), (OpenAndSetFormat)For VC++6 in Windows,
opening all files in binary mode seems to allow unix text files
to be read. But in case this messes up Macs or other Windows
implementations it is dependent on a macro ALL_READS_BINARY
being set in babelconfig.h.
* src/fingerprint.h, src/fingerprint.cpp (HashFragments):
Changed h and mod from long int to unsigned int to avoid
memory corruption with molecules with heavy atoms. Added
the declarations for fingerprint2 class and global
GetFingerprint().
* src/bitvec.h: Comments to highlight resizing behaviour.
* src/format/smilesformat.cpp (OBSmilesParser::ParseSmiles):
Mod to prevent unpaired ) causing program to hang.
* windows: Updated build files
2005-04-06 Chris Morley <c.morley@gaseq.co.uk>
* src/formats/inchi: added InChI 1.0 files from NIST.
2005-04-01 Geoffrey Hutchison <babel@geoffhutchison.net>
* src/obconversion.cpp: Change "Readonly" and "Writeonly" to
"Read-only" and "Write-only" to match more typical computer
documentation (e.g., Windows, UNIX and Mac generally use hyphens.)
* src/formats/viewmolformat.cpp (ReadMolecule): Fix
multiple-molecule support. Read loop would never hit an $end
record and break, thus reading all molecules in a multi-molecule
file as one.
* src/formats/PQSformat.cpp (ReadMolecule): Replace rindex ->
strrchr for ISO C/C++ compliance. (Fixes problems with compiling
on MinGW/gcc.)
* src/formats/inchiformat.cpp: Change for loop to while loop to
fix compile problems with gcc (and make slightly more readable
IMHO), change comment to remove "??/" interpreted as a Unicode
trigraph by gcc, and fix mol.SetTitle() call to fix compilation
problems with gcc/g++.
* src/formats/gamessformat.cpp, src/formats/gaussformat.cpp,
src/formats/nwchemformat.cpp, src/formats/qchemformat.cpp: Break
read and write support into separate formats since output formats
are read-only and input formats are write-only.
2005-04-01 Chris Morley <c.morley@gaseq.co.uk>
* src/formats/inchiformat.cpp, src/formats.inchi_api.h,
windows/InChI_DLL.dll and windows/InChI_DLL.lib
my build of version 1.0RC from NIST : writes InChI; format
is writeonly because reading code, although included is
incomplete. I haven't put the source code for the DLL up,
although it is cross-platform, because I want to check with
NIST first.
* src/data.cpp, src/data.h: OBElementTable::GetAtomicNum
Changed unsigned short int& to int&. More consistent with other
ints since have to use the exact int type when calling.
Now used in mdlformat.cpp.
* src/formats/mdlformat.cpp: V2000 writes and reads isotope info
(M ISO line), V2000 V3000 reads D and T. Changes in V2000
writing M RAD and header. Is #include <iomanip> a problem?
2005-03-25 Chris Morley <c.morley@gaseq.co.uk>
* src/obconversion.cpp, src/main.cpp, src/obconversion.h:
Multiple input files can now be different formats
* src/onconversion.h: Added virtual function
OBFormat::MakeNewInstance to meet possible future need for
formats with member functions. (InChIFormat will.)
* src/formats/smilesformat.cpp: Can now output isotope info and
input and output H and H2. Pharma might be able to do without
these but Combustion can't.
* windows/OBGUI/ Several files: Mods to ease use with multiple
input files, but interface could still do with some work.
2005-03-23 Geoffrey Hutchison <babel@geoffhutchison.net>
* AUTHORS, NEWS, README: Begin updating for a 2.0 release.
* data/extable.txt: Mark as deprecated. (Should this be deleted?)
* src/*.h, src/*.cpp, src/math/*.cpp, src/math/*.h,
src/formats/*.cpp, tools/*.cpp, test/*.cpp: Update copyright
statements to include 2005 and standardize text.
* data/Makefile.am: Make sure to include *.h files in a distribution.
* src/Makefile.am: Make sure to include dlhandler.h,
obconversion.h, and reaction.h in a distribution.
* src/formats/Makefile.am: Make sure to install obmolecformat.h
and include in distribution.
* data/Makefile.in, src/Makefile.in, src/formats/Makefile.in:
Regenerated.
* src/generic.h: Expand obDataType to include more typical
chemical data and offer 16 custom data slots obData0 through
obData15. In particular, adds obConformerData and obSymmetryData
for future enhancements.
* src/obutil.cpp, src/tokenst.cpp, src/typer.h: Added more doxygen
documentation.
* tools/obfit.cpp: Further improvements from Konrad -- now loops
through multiple matches to fit the match with the smallest RMSD.
2005-03-07 Geoff Hutchison <babel@geoffhutchison.net>
* src/formats/cml.cpp (endMolecule): Only call InternalToCartesian
if required (i.e., only internal coords available, all cartesian
coords are zero) and only call bonding methods (ConnectTheDots and
PerceiveBondOrders) if needed. Provides a huge performance
increase on most files.
* tools/obfit.cpp: Modified to output an RMSD of the fit as
contributed by Konrad Koehler. Addresses PR#1157440.
2005-03-02 Geoff Hutchison <babel@geoffhutchison.net>
* src/parsmart.cpp (OBSSMatch::Match): Added check to prevent
accessing atoms that do not exist -- appears in PR#1119970.
2005-03-02 Chris Morley <c.morley@gaseq.co.uk>
* src/mol.h, babelconfig.h Move some DLL-related #defines
to babelconfig.h
* src/oberror.h Declare global obErrorLog here to aid DLL builds.
Update Windows build files
2005-02-27 Geoff Hutchison <babel@geoffhutchison.net>
* src/atom.cpp (GetType): Call global OBTypeTable ttab rather than
declaring a local version.
* src/mol.cpp (RenumberAtoms): Add documentation and return
without action if supplied vector is the wrong size.
2005-02-27 Chris Morley <c.morley@gaseq.co.uk>
* src/obconversion.cpp: Removed ThrowError and #include mol.h
Added -c option for continuing with next molecule after an error
2005-02-17 Geoff Hutchison <babel@geoffhutchison.net>
* src/formats/ghemicalformat.cpp (ReadMolecule): Add some initial
support for ghemical 1.5x files. Reported by Avell Diroll.
* src/formats/mdlformat.cpp (ReadMolecule): Improve flexibility in
handling non-standard SDFiles. Now handles "VAMP" output, thanks
to an example file from Dr. James Smith, Erlangen.
* src/data.h, src/data.cpp (OBElementTable::GetAtomicNum): Fix bug
with isotope support as pointed out by Chris Morley -- need to
pass a reference back to the isotope value. Added a
backwards-compatible one-argument function which throws away the
isotope value.
* src/obconversion.cpp (Convert): Throw a debugging error if the
ReadChemObject method returns false.
* aclocal.m4, config.guess, config.sub, install-sh, ltmain.sh,
missing, mkinstalldirs: Update with latest GNU versions from
Automake 1.9.5 and libtool 1.5.14.
* configure, */Makefile.in: Updated automatically from above.
2005-02-15 Geoff Hutchison <babel@geoffhutchison.net>
* src/formats/mdlformat.cpp (ReadMolecule): Fix bug where long
property lines would set ifs.fail() and consequently file appeared
to be at EOF. Since property lines can be >1024 bytes, read
using std::getline(ifs,string). Fixes PR#1120738, thanks to
Dr. Christian Laggner for the bug report.
* doc/Makefile.am: Fix bug in doxygen rule.
* configure, configure.in, */Makefile.in: Regnerated.
* src/data.cpp, src/data.h (CorrectedBondRad): Change to use
covalent radii -- this is used internally in many places and
cannot easily be removed. Add more doxygen documentation.
2005-02-10 Geoff Hutchison <babel@geoffhutchison.net>
* src/mol.cpp (operator+): Fix PR#119352 to copy bond flag
information when adding bonds. Thanks to Daen de Leon for the bug
report and fix.
2005-02-09 Geoff Hutchison <babel@geoffhutchison.net>
* data/atomtyp.txt: Change implicit valence rules for acidic
oxygens -- ensure default AddHydrogen() response is to add acidic
protons, but correctForPH will not. Fixes PR # 1106706.
* data/atomtyp.h: Update using bin2hex.pl.
* doc/babel.1: Update for new options.
* src/mol.h: Add oberror.h and update documentation and
indentation. Add OB_POS_CHIRAL_ATOM and OB_NEG_CHIRAL_ATOM flags for
marking + and - chiral volume and accessor methods.
* src/chiral.cpp(GetChirality): Set + and - chiral volume for
atoms using these methods.
* src/main.cpp: Update to handle -imime and -omime flags to set
format by supplied MIME type.
* src/obconversion.cpp, src/obconversion.h: Update to handle MIME
types with an additional format map with RegisterFormat(), rather
than "polluting" the extension map.
* src/formats/alchemyformat.cpp, src/formats/cmlformat.cpp,
src/formats/crkformat.cpp, src/formats/mdlformat.cpp,
src/formats/mmodformat.cpp, src/formats/mol2format.cpp,
src/formats/mopacformat.cpp, src/pdbformat.cpp,
src/smilesformat.cpp: Register MIME types with the new MIME map as
above.
* src/oberror.cpp: Add a global OBMessageHandler obErrorLog.
* src/obutil.cpp (ThrowError): Update to use obErrorLog -- to
migrate code to the new error logging OBMessageHandler class.
* src/bitvec.cpp, src/mol.cpp, src/phmodel.cpp, src/rotor.cpp,
src/formats/chem3dformat.cpp, src/xyzformat.cpp: Update
ThrowError() calls to use obErrorLog as above.
* configure.in: Add support to conditionally build documentation
if doxygen is availale. Not currently used.
* */Makefile.in: Update using automake for above.
2005-02-09 Chris Morley <c.morley@gaseq.co.uk>
* src/obconversion.h, src/obconversion.h.cpp: Added
OBFormat::SkipObjects and its use in Convert and SetStartAndEnd
* src/formats/mdlformat.cpp: Changed wording in option
description. "Default" means something in Windows GUI!
Added SkipObjects()
Added output of wedge and hash in V2000 as suggested previously
in a discuusion(?). But stereochemistry needs revisiting!
* src/formats/smilesformat.cpp: ReadMolecule erroneously always
returned true, now corrected. Removed SMIFormat::SmiToMol()
Added SkipObjects()
Added support for input of radicals like[O.]
2005-01-31 Chris Morley <c.morley@gaseq.co.uk>
* src/obconversion.h, src/obconversion.h.cpp: rationalized
SetInFormat, etc; Added GetInFile; corrected bug in IsOption
* src/main.cpp: added -? option as synonym of -H
Check for empty FileList;
In Windows moved saved options file from current folder to TEMP
2005-01-30 Geoff Hutchison <babel@geoffhutchison.net>
* src/bondtyper.cpp (ParseLine): Make sure loop variable "i" is
initialized, pointed out by Chris Morley.
* data/element.txt: Add note about deprecated "bond order" radii.
* src/base.h: Remove \defgroup documentation bits.
* src/data.h (OBElementTable): Mark bond order radii methods as
deprecated.
* src/chiral.cpp: Add std:: namespace to match headers for
documentation. Convert comments to doxygen docs.
* src/data.cpp (OBGlobalDataBase): When searching for data files,
check the environment variable directories, then the compiled-in
directory path -- starting with a subdirectory for BABEL_VERSION,
followed by the parent directory. Allows for versioning the data
files.
* src/main.cpp: Output "molecules converted" to cerr and use
"molecule" converted if only one molecule was found.
* src/mol.h: Add documentation about "up" and "down" bond flags
vs. wedge and hash types.
* src/obconversion.h, src/obconversion.cpp: Allow MIME types to be
registered to match particular extensions/IDs.
* src/oberror.h, src/oberror.cpp: New class OBMessageHandler to
organize errors/messages and allow errors to go to cerr or another
output stream. Allows filtering of error levels.
* src/formats/carformat.cpp: Correct a variety of problems with
reading multiple molecules in a CAR file and read in 3D unit cell
information if supplied. Bugs reported by Jean Dessolin. Fixes PR#
1060110.
* src/smilesformat.cpp: Set OBMol dimension to 0.
* src/mdlformat.cpp: Output v3000 files for >999 atoms or >999
bonds, as suggested by MDL standard specification. Set OBMol
dimension as needed.
* src/crkformat.cpp (CRK2DFormat::ReadCRK): Fix bugs with
wedge/hash and up/down bonds. Assign OBMol dimension to 2.
* src/cml.cpp: Ditto.
* src/chemdrawformat.cpp (ReadMolecule): Set OBMol dimension to 2.
* src/formats/*.cpp: Ensure consistency of format description
naming, particularly to match Open Babel 1.100.x and Babel 1.6.
2005-01-20 Geoff Hutchison <babel@geoffhutchison.net>
* src/main.cpp: For non-Win32 platforms, use $HOME/.openbabel to
store recent options -- keeping with standard UNIX practices.
* src/rotamer.cpp, src/rotamer.h: Move OBRotamerList from
now-defunct binary.* files to specific rotamer files -- binary
format is now obsolete.
* src/Makefile.am: Remove binary.* and rename to rotamer.*.
* tools/obrotate.cpp: Rename binary.h to rotamer.h
* src/data.cpp, src/data.h: Excise io_type and OBExtensionTable.
* data/extable.h, data/extable.txt: Ditto.
* data/Makefile.am: Ditto.
* tools/*.cpp: Ditto.
* src/formats/cml.cpp: Remove reference to GetInputType and
GetOutputType.
* src/mol.h, src/mol.cpp: Add OBMol:_dimension, along with
accessor methods GetDimension() and SetDimension() for specifying
the dimension of the OBMol coordinates. Default is 3 for now --
conversion or user code must specify this! Among other PRs, fixed
PR# 110671.
2005-01-19 Geoff Hutchison <babel@geoffhutchison.net>
* src/bondtyper.h src/bondtyper.cpp: New method
AssignFunctionalGroupBonds() to replace code in
mol.cpp::PerceiveBondOrders() -- assigns generic SMARTS patterns
and then angle/distance constrained SMARTS patterns (like
carbonyl).
* src/mol.cpp: Use the new OBBondTyper method above.
* configure, aclocal.m4, config.guess, config.sub, ltmain.sh,
*/Makefile.in: Update with latest automake/libtool/autoconf
versions (automake-1.9.4, libtool-1.5.10 autoconf 2.59).
2005-01-13 Chris Morley <c.morley@gaseq.co.uk>
* src/formats/obmoleculeformat.h: Added. Class to reduce code duplication.
* src/formats/mdlformat.cpp: added V3000 support
* src/formats/smilesformat.cpp: added option for radical output as lc
* src/formats/fingerprintformat.cpp Added.
2005-01-13 Chris Morley <c.morley@gaseq.co.uk>
Correct number of implicit hydrogens in radicals
Previously used decremented implicit valency which sometimes was reset;
now correct with _spinmultiplicity.
* src/atom.cpp (ImplicitHydrogenCount): add code
* src/mol.cpp (AddHydrogens): (2 routines) add code
* src/mol.cpp (AssignSpinMultiplicity): remove code
2005-01-12 Chris Morley <c.morley@gaseq.co.uk>
* src/dlhandler.h: Add findFiles decl needed for Windows builds
2005-01-09 Chris Morley <c.morley@gaseq.co.uk>
* windows/*.dsp, *.mak: Synchronize Windows build files to handle
changed file locations and extra source files
* windows/OBDLL/map2def2.exe added
* windows/babelconfig.h updated
2005-01-07 Geoff Hutchison <babel@geoffhutchison.net>
* src/obconversion.h (GetMIMEType): New method for chemical MIME
support.
* src/formats/*.cpp: Update file extensions for formats for
lower-case and previous Babel standards. Added MIME types where
appropriate.
2005-01-06 Geoff Hutchison <babel@geoffhutchison.net>
* src/main.cpp, src/obconversion.cpp, src/obconversion.h: Updated
files from Chris Morley.
2005-01-01 Geoff Hutchison <babel@geoffhutchison.net>
* tools/obfit.cpp, tools/obgrep.cpp, tools/obprop.cpp,
tools/obrotate.cpp, tools/obtanimoto.cpp: Update to use the
OBConversion framework.
* src/formats/*.cpp: Clean out formats which don't currently have
format specification URLs.
2004-12-23 Geoff Hutchison <babel@geoffhutchison.net>
* *.cpp, *.h: Reformat using astyle --style=ansi.
* src/mol.cpp(PerceiveBondOrders): Fix thinko with abs() calls.
* src/formats/Makefile.am: Fix typos preventing all format files
from being compiled.
* src/formats/cml.cpp: Pull iterator variables out of for()
declarations to fix compilation problems.
* src/formats/turbomoleformat.cpp: Remove call to strlwr() which
is a non-ANSI (non-ISO) function call.
* test/ringtest.cpp, test/smartstest.cpp, test/rountrip.cpp:
Convert to using OBConversion from OBFileFormat.
2004-10-19 Geoff Hutchison <babel@geoffhutchison.net>
* Initial merging of Chris Morley's new file translation framework.
Compiles and runs through "babel -H".
* data/* : Move data files and headers to this directory to
segregate from source code.
* configure.in, Makefile.am, */Makefile.am: Build updates.
* src/: Removed all file translation files. (Now in formats directory.)
* src/formats/*: New files.
* src/windows/*: Removed.
* windows/*: New files.
2004-10-04 Michael Banck <mbanck@gmx.net>
* src/crk.cpp: Use sstream if present and strstream if not.
2004-28-30 Fabien Fontaine <ffontaine@imim.es>
* tools/obtanimoto.cpp : new tool
* tools/README: update
* tools/makefile.am update
2004-27-30 Fabien Fontaine <ffontaine@imim.es>
* src/fingerprint.cpp: New output format
* src/fingerprint.h
* src/Makefile.am (libopenbabel_la_SOURCES): Added fingerprint.cpp.
* src/data.cpp (TextToType): Added FINGERPRINT typestring.
* src/data.h (io_type): Added FINGERPRINT.
* src/extable.txt: Added fingerprint entry for writing.
* src/extable.h: Regenerated.
* src/fileformat.cpp (ReadMolecule): Added fingerprint handler.
(WriteMolecule): Likewise.
* src/fileformat.h (WriteFingerprint): Declare it.
2004-09-10 Michael Banck <mbanck@gmx.net>
* src/turbomole.cpp: New file.
* src/Makefile.am (libopenbabel_la_SOURCES): Added turbomole.cpp.
* src/data.cpp (TextToType): Added TURBOMOLE typestring.
* src/data.h (io_type): Added TURBOMOLE.
* src/extable.txt: Added turbomole entry for reading and writing.
* src/extable.h: Regenerated.
* src/fileformat.cpp (ReadMolecule): Added Turbomole handler.
(WriteMolecule): Likewise.
* src/fileformat.h (ReadTurbomole): Declare it.
(WriteTurbomole): Likewise.
2004-08-30 Fabien Fontaine <ffontaine@imim.es>
* src/mol.cpp bond.cpp kekulize.cpp: Kekulize function changed to
what it was before. PerceiveBondOrders replaced by
NewPerceiveBondOrders. SetK* functions added to NewPerceiveBondOrders
2004-08-27 Michael Banck <mbanck@gmx.net>
* mol.h (tokenize): Initialize *delimstr to " \t\n" for the
version of the function using strings as well.
2004-08-25 Fabien Fontaine <ffontaine@imim.es>
* src/mol.cpp: Kekulize is replaced by a new kekulize function
situated in kekulize.cpp
* src/mol.cpp (PerceiveBondOrders): New SMART pattern added
some decision are taken according to the geometry of the bonds
2004-08-24 Fabien Fontaine <ffontaine@imim.es>
* src/mol.cpp (PerceiveBondOrders): Bug in calculation of
average torsion angles of cycles fixed.
* src/atom.cpp: function AverageBondAngle added.
2004-08-19 Michael Banck <mbanck@gmx.net>
* src/data.cpp: Include mol.h.
(tokenize): Removed declaration, already declared in mol.h.
* src/mol.h [OBDLL_EXPORTS, USING_OBDLL]: redefine extern as
'__declspec(dllexport) extern'. Update global definitions
accordingly.
2004-08-17 Geoff Hutchison <ghutchis@wso.williams.edu>
* configure.in: Make the check for doxygen to be a typical
AC_PATH_PROG -- it's not a critical dependency.
* configure, aclocal.m4, config.guess, config.sub, ltmain.sh,
*/Makefile.in: Update with latest automake/libtool/autoconf
versions (automake-1.9.1, libtool-1.5.8 autoconf 2.59).
* src/isotope-small.txt, src/isotope.txt: Update with latest data
from 2003 canonical data.
2004-07-20 Geoff Hutchison <ghutchis@wso.williams.edu>
* src/ghemical.cpp: Ignore multiple coordinate sets -- only read
the first one currently, but don't bail if more than one exists.
* src/cssr.cpp: Update with unit cell information and fixing bugs
reported by Mathias Weigt when dealing with SOMFA package.
2004-07-02 Michael Banck <mbanck@gmx.net>
* src/obutil.cpp (InternalToCartesian): avec, bvec, cvec, dst, ang,
tor: New short circuit variables. Start index at zero again. Fix
torsion angle of the fourth atom. Thanks to Gerd Menche.
2004-03-13 Michael Banck <mbanck@gmx.net>
* test/unitcell.cpp (TestUnitCell): Use %lf instead of %f to read
in the values from unitcell.txt.
2004-03-07 Geoff Hutchison <ghutchis@wso.williams.edu>
* src/chdrw.cpp (ReadChemDraw): Add support for reading ChemDraw
CT files.
* src/data.h, src/data.cpp: Change GAUSSIANZMAT to GAUSSIANOUT to
allow support for reading G98 and G03 output.
* src/extable.txt: Add ChemDraw reading and Gaussian 98/03 output
to list.
* src/fileformat.h, src/fileformat.cpp: Ditto.
* src/extable.h: Regenerate.
* src/gaussian.cpp: Add support for reading G98/G03 output and
writing isotopes where applicable.
* src/hin.cpp: Fix bug with more recent HIN formats with basis set
information.
* configure, Makefile.in, */Makefile.in: Update with latest
autotools.
* src/mol.cpp, src/mol.h: Backpedal slightly with Fabien's
2003-12-17 changes. Use OB_TSPIN_MOL as used by 1.100.2 and
revised AssignSpinMultiplicty to assign OBMol::_tspin.
2004-03-03 Michael Banck <mbanck@gmx.net>
Fixes to make InternalToCartesian() and ReadQChem() consistent
with CartesianToInternal(), so that round-tripping between
InternalToCartesian() and CartesianToInternal() is
possible. Thanks to Gerd Menche for the fix.
* src/obutil.cpp (InternalToCartesian): Initialize index as
atom->GetIdx() rather than atom->GetIdx() - 1. Subsequently,
increase the index checks for the first three atoms by one.
Convert angles to radians before computing cartesian
coordinates.
* src/qchem.cpp (ReadQChem): Uncommented the z-matrix reading
code. Generate one empty internal coordinate in advance.
Replaced loop until end of block in input file with a for loop
over the existing atoms. Do not generate new atoms in the loop,
as they are already present. Do not convert angles to radians
any more, this is now done in InternalToCartesian().
2004-02-29 Michael Banck <mbanck@gmx.net>
Merged changes from openbabel-1-100-x branch back into HEAD.
* src/pqs.cpp: New file.
* NEWS: Updated from 1.100.2 release.
* ChangeLog: Fixed some tabs.