2017-09-17 Christian Stimming * lib/ofx_preproc.cpp: Fix buffer overflow, reported in TALOS-2017-0317 2016-08-14 Christian Stimming * inc/libofx.h.in: Add support for client uid, from KDE bug 366326 2011-01-12 Christian Stimming * configure.in: Release 0.9.2 with the previous bugfixes. * lib/ofx_preproc.cpp: Win32: Add gnucash patch that looks up the dtd installation directory from the current executable's location. 2010-10-26 Benoit Grégoire * Apply patch by Geert Janssens to fix crash on invalid date format 2010-04-27 Benoit Grégoire * Patch by ajseward with some additional fixes to allow wraping the library in python. 2010-02-04 Benoit Grégoire * Applied a patch provided by Thomas Baumgart which fixes bug #5 (Transaction posting date off by one) 2009-05-15 Benoit Grégoire * Various C++ include fixes for building with recent compilers. Patch by Bill Nottingham 2009-02-09 Christian Stimming * configure.in: Release 0.9.1 with the bugfix for gnucash 2008-12-06 Christian Stimming * lib/ofx_preproc.cpp: Add more sanity checks on string length. I forgot the bug which required those to be fixed, but I fixed them anyway. * lib/ofx_preproc.cpp: Fix gnucash crash on OFX files with non-ascii characters and very long lines. See http://bugzilla.gnome.org/show_bug.cgi?id=528306 and http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=493597. Patch was copied from the latter. Patch by Jerome Vouillon. 20/11/2007 Martin Preuss * updated specfile 19/11/2007 Martin Preuss * Release 0.9.0 12/11/2007 Martin Preuss * ofx_preproc.cpp: Increased size of file name buffer (50 was too small) 28/9/2007 Martin Preuss * libofx.h: added some fields to OfxFiLogin: - header_version - appid - appver It seems to become necessary with some new servers to modify these fields by the application. 27/9/2007 Martin Preuss * ofx_request_statement.cpp: Incremented versions written to the request * libofx.h, ofx_utilities.cpp: replaced some char* with "const char*" to make GCC happy, wrapped arithmetic calculations in macro definitions in brackets to avoid mathematical problems * libofx.h: Removed this file, replaced it with libofx.h.in. This is used to create libofx.h which now includes some subst variables conveying the version of LibOFX to source files. Introduced LIBOFX_BUILD_VERSION and LIBOFX_VERSION_RELEASE_STRING to distinguish even CVS versions. Added function libofx_set_dtd_dir() which allows to set the folder in which DTD files are stored. This is needed for local installations (e.g. WIN32) * libofx.pc.in: depending libraries don't need to link against OpenSP themselves, since LibOFX encapsulates it, no need to propagate unnecessary dependencies * ofx_utilities.{cpp,h}: added a function to generate a temp file name (works on WIN32 and Linux) 24/1/2007: Benoit Grégoire * ofx_preproc.cpp: Now parses the OFX headers to determine the input charset and encoding, and uses libiconv (if available) to convert the encoding since OpenSP can't do it. The default output is now UTF-8. This will "do the right thing" for Gnucash 2 and any client that uses UTF-8 strings, but we should add an interface to let the client chose his prefered output encoding. 9/1/2007: Benoit Grégoire * Adapted patch by Christian Lupien to add processing of the different bank account types in OfxPaymentRequest. Took this oportunity to correct an API duplication problem before it get's even more complicated to fix: deleted OfxAccountInfo (OfxAccountData should be used instead) and the global scopt AccountType enum (use the one in OfxAccountData). Both of these changes will require source code change in aqbanking. * Bump the version and soname right now so aqbanking can detect it. 8/1/2007: Benoit Grégoire * Release 0.8.3 27/9/2006 Martin Preuss * lib/ofx_preproc.cpp: Make sure all results of string::find are inside the string's length; make sure to erase parts of the string only if the string is long enough. Fixes crash http://bugzilla.gnome.org/show_bug.cgi?id=353986 Patch supplied by Christian Stimming from GnuCash 25/8/2006: Benoit Grégoire * Fix datatype mismatch in ofx_preproc.cpp * Fix gengetopt related build problems on debian based distribution. * Remove massage about dependency on Qt, qhich is no longuer true * Fix ofxconnect headers not being distributed * Remove cmdline.c and cmdline.h which shouldn't be versionned * Release 0.8.2 3/8/2006 David Resier * Added fields used in stock splits (newunits, oldunits) Patch applied by Ace Jones 28/7/2006 Ace Jones * Fixed a compilation bug on GCC 4.1 20/7/2006: Benoit Grégoire * Revert last change to ofxdump, as it requires a system-dependent header (plus it didn't compile on my system) * Make both curl and libxml++ optional for compilation. * Add some debug output. * Update tree.hh 15/7/2006 Ace Jones * Modified build script to not build ofxconnect if libxml++1.0 is missing. 12/6/2006 Ace Jones * Fixed a compilation bug on GCC 4.1 28/3/2006 Ace Jones * Fixed an improper header reference in ofxpartner.cpp/h * Fixed a segfault if ofxdump is run without a file 28/2/2006 Ace Jones * Removed Qt requirement accidentally introduced in my last checkin 20/2/2006 Ace Jones * Added sample code to ofxconnect to demonstrate how to contact the OFX partner server 15/2/2006 Ace Jones * Fixed #1408764. Buffer overrun in MESSAGE tag handling. * Fixed a memory leak in OfxStatusContainer::add_attribute() 20/1/2006 Ace Jones * Print out bank id, branch id, and account number in ofxdump * Fixed a bug under gcc 4.0.2 64-bit where errno is not found in ofxdump * Fixed a build problem where @LIBOBJ@ was not being substituted 16/1/2006 Ace Jones * Added OfxFiServiceInfo struct. Need this for communicating with the partner server. Will add the code for that next. * Added broker_id to OfxAccountData 17/12/2005 Ace Jones * Fixed ofxdump to give a reasonable error if you run it on a file that doesn't exist. * Added proper libcurl.m4 to check for existence & compilability of libcurl * Make libcurl optional again by handling its absense in ofxconnect 17/11/2005 Martin Preuss * added pkg-config file to spec file * fixed spec file (was mentioning libraries twice) 1/10/2005 Ace Jones * Bumped version to 0.8.1 (due to transaction struct change) * Added a pkg-config file 25/9/2005 Ace Jones * Brought in new tree.hh from http://www.aei.mpg.de/~peekas/tree * Removed a workaround in all uses of tree::number_of_siblings(). This appears to work around a bug in tree.h which caused the siblings to be overcounted. That bug is fixed, so this workaround is not needed. 24/9/2005 Ace Jones * Fixed a namespace bug that's fatal on GCC4.0 Submitted by Christian Stimming 27/8/2005 Ace Jones * Added fees and commission fields to transaction structure (and fill them in) 31/7/2005: Benoit Grégoire * Release 0.8.0 * configure.in: Update libtool version number. Make curl check fatal untill there is code to conditionally not compile ofxconnect when CURL is unavailable. * Fix the build system so that discheck will finally run properly. 11/7/2005 Ace Jones * Upgraded the app version for OFX Requests (some banks are denying the old version now) * Moved bank & broker ID's from OfxFiLogin to OfxAccountInfo, which is more accurate * Renamed a couple AccountType enums to be consistent with the others 22/4/2005 Martin Preuss * added fields bank_id, bank_id_valid, branch_id, branch_id_valid, account_number and account_number_valid to OfxAccountData according to discussion on LibOFX mailinglist. 19/4/2005 Ace Jones * Improved ofxconnect to do the POST operation itself * Improved the ofxconnect unit test to be mostly cleartext except the server login information. 20/4/2005 Martin Preuss * inserted an \"#ifndef\" before definition of static variables to allow include from multiple source files of a project 18/4/2005: Ace Jones * Added libofx_request_statement API, and underlying support classes, to create an OFX statement request * Added libofx_request_accountinfo API to create an OFX account into request * Added ofxconnect sample app to demonstrate & test new API's (try "make check" in the ofxconnect folder). Read README.privateserver first. 24/11/2004: Benoit Grégoire * Apply Christian Stimming's patch for rpm building. Also adds a make rpm target. 08/10/2004: Benoit Grégoire * Release 0.7.0 * configure.in: Update libtool version number. 21/9/2004 Benoit Grégoire * Really remove callback.hh and callback.cpp * Fix compile with gcc 3.4. This also needs to be applied to the stable branch. * Fix tree handling for securities, which caused the callbacks never to be called. 31/8/2004 Benoit Grégoire * Remove obsolete files callback.hh and callback.cpp * More makefile fixes in lib 1/9/2004 Martin Preuss * simplified internal callback mechanism (removed CallbackRegistry, it is easier this way) * protected members of LibOfxContext (you need to call methods to get/set them) * added functions which allow to set each callback individually. If you are not interested in a particular callback you don't need to set it * removed the all-callback setter * all callbacks now pass LibOfxContext which either propagates the callback or silently ignores it (for callbacks which haven't been set) * a few Makefile fixes in lib * adjusted ofxdump and ofx2qif to these changes 31/8/2004 Benoit Grégoire * Revamp the callback architecture according to discussion with Martin Preuss. This is much cleaner and extensible, although a long way from perfect. * Autoconf fixes from Martin Preuss 23/4/2004 Benoit Grégoire * At long last, a flexible and extendable command line parser is used in ofxdump. This was essential for debuging, and even more essential for developing Direct Connect. Immediate benefits are that you can set the desired debug output without recompiling. Check ofxdump --help for options. * configure.in: gengetopt will be used if available. * lib/Makefile.am: * ofxdump/Makefile.am * ofxdump/ofxdump.cpp * lib/getopt.c lib/getopt1.c lib/gnugetopt.h: Required in case getopt_long() isn't available. * ofxdump/cmdline.ggo: Command line argument definitions. * ofxdump/cmdline.c,h: Files generated by gengetopt, must be in CVS so developers don't have to have gengetopt installed. * Much improved file format handling. Supported file formats can now be listed and described. * inc/libofx.h: * lib/context.hh * lib/file_preproc.cpp * lib/file_preproc.hh 8/4/2004 Benoit Grégoire * Multiple files: Working (but incomplete) OFC import. Still need cleanup. Pass context everywhere. Begin cleaning up tree handling. * lib/tree.hh: Upgrade to latest version 31/3/2004 Benoit Grégoire * lib/context.cpp,hh: New files. Create a global libofx object to allow the library to cleanly keep state. This will allow much cleanup, and is needed for the move to a DOM style interface. Other files ajusted to match. 7/3/2004 Benoit Grégoire * lib/ofc_sgml.cpp/hh: New files. Splits code path for OFC and OFX to keep things understandeable. Some more OFC parsing. Now waiting to implement global libofx context object passed everywhere to make further progress. * lib/messages.cpp: Move the definition of the required globals for displaying line numbers there, as it's the only place they are read. 3/3/2004 Benoit Grégoire * Many... * lib/file_preproc.cpp, lib/file_preproc.hh: Add file format autodetection architecture, can currently distinguish between OFX and OFC files. Note that because of this change, the main entry point of the library is now in file_preproc.cpp. * dtd/ofc.dtd, lib/ofx_sgml.cpp, lib/ofx_preproc.cpp: Add embryo of OFC (Microsoft Open Financial Connectivity) to LibOFX. The SGML parses succesfully, but LibOFX does not yet know what to do with it. Big thanks to Jeremy Jongsma jeremy at jongsma.org for finally finding the required DTD. I haven't yet decided if its better to to add this support to ofx_proc_sgml.cpp (easier to maintain, less code duplication), or to create a ofc_proc_sgml.cpp (easier to understand, cleaner code). 3/2/2004 Benoit Grégoire * inc/libofx.h lib/ofx_preproc.cpp lib/tree.hh ofx2qif/ofx2qif.c ofxdump/ofxdump.cpp: Make it compile. I may have misunderstood what Ryan wanted to do with the prototypes in libofx.h. If so, sorry. Note: I don't think that the void * passed as arguments are saved in the registry yet. 18/1/2004 Ryan P Bobko * inc/libofx.h * lib/ofx_container_statement.cpp * lib/ofx_container_account.cpp * lib/ofx_container_transaction.cpp * lib/ofx_container_security.cpp * lib/ofx_containers_misc.cpp * ofxdump/ofxdump.cpp * ofx2qif/ofx2qif.c: all these files: improved callback registry by including a void pointer to arbitrary data (which can be set by the client in ofx_prep_cb). The pointer gets passed to the callback function as the second argument. 14/1/2004 Benoit Grégoire * Merge initial Callback registration patch by Ryan P Bobko. Touches most files. 14/1/2004 Benoit Grégoire RELEASE LibOfx 0.6.6 * configure.in: Change version number * NEWS: Update for release * Makefile.am: Add version number to docdir name * libofx.spec.in: Remove known_bugs.txt 14/1/2004 Benoit Grégoire * dtd/Makefile.am, dtd/opensp.dcl, * lib/ofx_preproc.[cpp,hh],: Add SGML declaration to be parsed before the DTD. Makes us immune to changes to default settings. Should get rid of "end tag for "MEMO" omitted, but OMITTAG NO was specified" type of messages and greatly help the parser. * lib/ofx_sgml.cpp: Get rid of OpenSP 1.3.1 compatibility code, which makes the code much easier to understand and debug. Combined with the change obove, it should practically eliminate the parsing ambiguity that made libofx so verbose and ocasionally miss data. More defensive coding to warn of malformed files. This probably means that compatibility with OpenSP 1.3.1 cannot come back. However with the change above it may work after all. Somebody please test this... * lib/messages.cpp: Finally implement displaying line numbers in the error output. This can be turned off by the clients by setting the ofx_show_position global. These should all get setter functions in the API re-write. 6/12/2003 Benoit Grégoire * lib/ofx_container_transaction.cpp: Fix an infinite loop when searching for a parent statement for a transaction if it isn't the immediate parent. Thanks to stephen.a.prior A T ntlworld.ie for the catch. 12/9/2003 Benoit Grégoire RELEASE LibOfx 0.6.5 * configure.in: Change version number * NEWS: Update for release * lib/ofx_utilities.cpp: Change date handling to fix problems with the majority of banks diverging from the specs. Should fix problems with the day being off by one for some countries. * doc/implementation_notes.txt: Moved contents in the doxygen docs. * doc/Makefile.am: Fix the path for the html docs. 2/5/2003 Benoit Grégoire * lib/ofx_utilities.cpp: Add #include to fix compile error on freebsd and possibly all gcc2 based distro. 15/4/2003 Benoit Grégoire * lib/ofx_preproc.cpp: Fix for really broken files that do not have a newline after the ofx header. Fixes bug #721732 12/4/2003 Benoit Grégoire RELEASE LibOfx 0.6.4 * configure.in: Change version number * NEWS: Update for release * lib/ofx_utilities.cpp: Fix bug in ofxamount_to_double() triggered by the client setting the locale. If the locale used ',' as decimal separator, it would get normalised to '.' and atof() would fail. Now normalises to (localeconv())->decimal_point. Closes gnucash bug 105481 18/3/2003 Benoit Grégoire RELEASE LibOfx 0.6.3 * NEWS: Update for release * Makefile.am: Remove references to known_bugx.txt 16/3/2003 Benoit Grégoire * configure.in: Remove --with-opensp-multibyte configure option (it is now the default). There is now a --with-no-opensp-multibyte instead, to force libofx to assume that OpenSP was NOT compiled with SP_MULTI_BYTE defined. * doc/doxygen.cfg: Remove, this file is now generated from doc/doxygen.cfg.in * known_bugx.txt: Remove file, since we now have a bugtracker. * README: Update * INSTALL: Delete and replace by FAQ, update content. 11/3/2003 Benoit Grégoire * ofxdump/ofxdump.cpp: Remove comand line arguments debug output. * lib/ofx_container_main.cpp: Fix compiler warnings reported by Derek Atkins * Misc build system cleanup 24/2/2003 Benoit Grégoire * ofx2qif/ofx2qif.c: Apply patch by Scott Gifford to fix ofx2qif crash. * Add a bunch of .cvsignore files 3/2/2003 Benoit Grégoire * dtd/ofx160.dtd: Correct the dtd to fix the "content model is ambiguous" errors reported by opensp. 27/1/2003 Thomas Frayne * ofxdump/ofxdump.cpp: Add command options: --version, -V, --help 3/2/2003 Benoit Grégoire * lib/ofx_utilities.cpp: Fix ofxdate_to_time_t() that wouldn't compile on sun. 23/1/2003 Benoit Grégoire * lib/ofx_container_transaction.cpp: Explicitely ignore since it should always be equal to UNITS*UNITPRICE, and using it may lead to rounding errors. 22/1/2003 Benoit Grégoire * autogen.sh: Run libtoolize, and reorder the commands. The order is now: libtoolize,aclocal, autoheader, automake, autoconf and configure 11/1/2003 Benoit Grégoire * lib/ofx_utilities.cpp: Really fix problems for big endian machines. * INSTALL: Document the --with-opensp-multibyte workaround for when headers in package lie about the compile option of OpenSP (usually because they were not compiled at the same time). This is the case with the OpenJade package distributed in Mandrake cooker, and perhaps others. * configure.in: add --with-opensp-multibyte option 10/1/2003 Benoit Grégoire * lib/ofx_utilities.cpp: Try to fix problems for big endian machines. 9/1/2003 Benoit Grégoire * configure.in: Add /usr/local/include to OpenSP's include search path. * INSTALL: Add FAQ for "bug" http://sourceforge.net/tracker/index.php?func=detail&aid=654591&group_id=61170&atid=496353 9/1/2003 Benoit Grégoire * lib/ofx_utilities.cpp: Remove the ugly get_sp_char_size() hack and use SP_MULTI_BYTE in config.h instead. This probably fixes the "libofx not working on big endian machines" bug. 9/1/2003 Benoit Grégoire * configure.in: Now detect if OpenSP was compiled with SP_MULTI_BYTE, and put the result in config. * INSTALL: Update for GNU build system. 04/12/2002 Peter O'Gorman * doc/Makefile.am: Make DESTDIR work * lib/Makefile.am: Changed version_info to version-info and modified the version to be what libtool expects. 24/11/2002 Chris Lyttle * libofx.spec.in: updated for new docs 24/11/2002 Benoit Grégoire * configure.in, doc/Makefile.am: Improve doxygen doc generation, and enable make install without the doc. 24/11/2002 Benoit Grégoire * ofx_sgml.cpp: Hopefully fix incompatibilities with BOTH OpenSP 1.3.x and OpenSP >= 1.4 * Makefile.am, doc/Makefile.am: Doxygen API and internal doc now integrated in the build system. It will be distributed and install with the tarballs, and can be build in libofx-cvs using make doc. * autogen.sh: Re-enable maintainer-mode. * doc/Makefile: Deleted * doc/resume_presentation.pdf: Deleted, too outdated. See project report on the libofx website instead. 23/11/2002 Chris Lyttle * libofx.spec.in: added for rpm builds * Makefile.am: added lines spec to EXTRA_DIST * configure.in: added spec.in line * autogen.sh: changed configure line to see arguments 18/11/2002 Benoit Grégoire * ofx_sgml.cpp: Fix critical bug. Parsing of a file would fail and hang for users of OpenSP 1.5pre5 (and possibly others). Simplify workaround of OpenSP 1.3 bugs, more code is now shared. * configure.in: Update for release 0.6.1 18/11/2002 Benoit Grégoire * Update build files for release of libofx 0.6.0 30/10/2002 Benoit Grégoire * inc/libofx.h lib/ofx_container_transaction.cpp ofxdump/ofxdump.cpp: Created a new invtransactiontype enum to replace the invtranstype string 30/10/2002 Benoit Grégoire * lib/ofx_sgml.cpp: Added yet more spagetti code and global variables to improve the work around for OpenSP 1.3 bugs. I beg of you, please convince your distro to make openjade and the OpenSP library independently upgradable. 30/10/2002 Benoit Grégoire * configure.in: Apply Derek Atkins patch needed to build on > RH7.3 using the "distributed" version of openjade. 29/10/2002 Benoit Grégoire * lib/ofx_preproc.cpp doc/tag_striper_test.txt: Proprietary tag striper is now much smarter and read routines have been fixed. Importing a file written on a single line should now be possible. Added a test file for the proprietary tag striper . 29/10/2002 Benoit Grégoire * configure.in: Work around autoconf 2.1 not supporting AC_LANG() 21/10/2002 Benoit Grégoire * ofxdump/ofxdump.cpp: Add support for invtranstype in ofx_proc_transaction_cb() 21/10/2002 Benoit Grégoire * lib/ofx_preproc.cpp: Abort if DTD was not found 20/10/2002 Benoit Grégoire * Fix debug output * Begin fixing ofx2qif for the new transaction ordering code 17/10/2002 Benoit Grégoire * Implemented internal container trees, allowing transaction reordering and security lookups * Complete investment transaction support * Converted the build system to automake/autoconf, mostly contributed by "Peter O'Gorman" LibOFX 0.?????????: -Add an account_name to the OfxAccountData struct. It contains a human readable identifier of the account. -Include file location seems to have changed in recent versions of OpenSP. Included old and new case. -Profiling now possible. It is now posible to use "make static". Statically linked ofxdump and ofx2qif will be created, with profiling enabled. LibOFX 0.3: -MUCH improved documentation. Full API and internals reference in doc/html/ -Major update to ofx2qif. It will now generate the !Account QIF construct, which should improbe compatibility with other accounting software. -gcc3.2 caused problems with ld, now use gcc to link. Should solve the "undefined symbol:__dso_handle" runtime problem with Mandrake cooker. -There is now a workaround in the code to make it work with the OpenSP version (1.3.4) distributed with OpenJADE. However, this is not guaranteed to work, and it might cause errors in your financial data, and might not be present in future versions. Use at your own risk, you've been warned. -LibOFX can now be installed in "unorthodox" directories, such as ~/experimental, and still find it's dtd. You must modify the prefix in common.m (recommended) or put it in the command line of BOTH make and make install. -LibOFX is now officially in beta. Since one application now uses it (GnuCash), from now on, the library soname will be bumped if binary compatibility is broken. LibOFX 0.24: -Fix include files for gcc2 LibOFX 0.23: -Hacked in runtime detection of OpenSP's SGMLApplication::Char size. This should fix the hairy problems some people were experiencing with garbled Output with some versions of OpenSP. -Installation instruction have been improved. -OpenSP include files are no longer distributed with LibOFX. LibOFX 0.22: -make install will now copy libofx.h in the appropriate include directory. LibOFX 0.21: -Files were still created in current directory. Now force /tmp to be used LibOFX 0.2: -The input OFX file's directory no longer need to be writable, and no stale files are left behind. -Prefixed all enum names with OFX to avoid collision with client software (Gnucash in particular) -Changed all money amounts from float to double -Fixed constructors to avoid some "holdover" data LibOFX 0.122: -Always show two decimals for money in ofxdump. -Fix dates off by two month (Scott Drennan) -Fix ofx2qif account type for CREDITCARD (Scott Drennan) LibOFX 0.121: -Fix makefiles for users who do not have ldconfig in their path to create local links. LibOFX 0.12: -LibOFX can now be transparently used by both C and C++, using the same include file (libofx.h) -ofx2qif rewritten in C, to ensure that C compatibility will be maintained and tested. -Added target uninstall to all makefiles -Various other makefile improvements LibOFX 0.11: -Added ofx sample files extracted from the OFX 1.60 and 2.01 specifications in DOC. -Fix compile problems with G++2.9.6 -Makefiles updated -Require a recent version of OpenSP, doesn't work well the one included in OpenJADE (At least on Mandrake). -Fixed the algorithm for proprietary tag striping. LibOFX 0.1: -Initial public release