2022-10-03, LibOFX 0.10.9: - Fix library name on Windows (#88) - Fix several more memory issues (#90) 2022-09-27, LibOFX 0.10.8: - Fix null pointer dereference bugs (#87) - Initial support for exporting Config.cmake with targets (#81) - Fix version and tools description in vcpkg.json - Add cpack rules for "make source_package" - Fix installation path of libofx.h (#83) - Rename some variables that shadowed others to clarify different meanings #75 (#80) 2022-09-08, LibOFX 0.10.7: - autotools: fix LIBOFX_MAJOR_VERSION and friends in libofx.h (#76) - CMake: miscellaneous fixes (#73) 2022-09-04, LibOFX 0.10.6: - Update FindOpenSP; also allow to forcefully ENABLE SP_MULTI_BYTE (#71) - Add support for CMake build system (#63) - Minor code cleanup in CharStringtostring function and its header (#65) - Ignore SGML parser character error because the char is accepted fine (#60) (#64) - Fix find_dtd() when OFX_DTD_PATH env var is used (#66) - Add ./configure option to disable CLI tools - Only link ofx2qif against C++ STD lib - Win32 code fixes for MSVC compilation - Don't deconst iconv input buffer under Windows (#51) 2022-04-19, LibOFX 0.10.5: - Fix missing include for ptrdiff_t on Homebrew (#57) 2022-04-18, LibOFX 0.10.4: - #56: Fix parallel builds by fixing the man-page build - #54: Remove all "using namespace std" directives - #53: Fix some minor memory leaks - Revert #44 (fix "typos" in source code) because it was wrong 2021-09-29, LibOFX 0.10.3: - #45: fix gmt offset seconds - #44: fix various typos in source code - fix win32 build failure 2021-04-23, LibOFX 0.10.2: - #41: Improved imported date stability, see gnucash bug 797848 and gnucash bug 636340. - #40: Respect --libdir for opensp. Don't override docdir. 2021-01-25, LibOFX 0.10.1: - Issue #37 fixed: Correct casting of iconv input argument - Issue #30 fixed: Let ofxdump also return an error value on error - Code cleanup towards normal C++ 2021-01-03, LibOFX 0.10.0: - Issue #34 fixed: Remove unimplemented function from libofx.h header - Issue #30 fixed: Return error value if file parsing is unsuccessful in libofx_proc_file - Issue #29 fixed: Use given parameter for actual file type in libofx_proc_file - Large contribution adding investment / security handling in OFX files, by jeffjl74. - ABI-breaking change, hence MINOR version incremented (due to MAJOR still at zero), but libofx.h API should only have additions - Details: - jeffjl74 Enhanced handling of investments in OFX files (support not added to OFC) - increased OFX_SECNAME_LENGTH to match the OFX spec (ABI-breaking change, hence MINOR version incremented) - OfxSecurityData now includes: - an enum for the type of the security (stock, bond, fund, option) - the optional fields - the mandatory and fields - the optional and fields - added parsing for cash balances in investment accounts - usefulness depends upon how the broker uses these fields - Vanguard fund account puts the market value in there instead of the cash balance - other tested brokers use it appropriately, though the date of the balance is sometimes inconsistent usually due to unsettled trades, i.e. the "as of" date will say "today" but the cash balance will actually be from a couple of days ago with the difference being unsettled trades. - fields under an are now parsed into an OfxInvestmentTransactionContainer - This changes previous behaviour. LibOFX formerly provided an OfxBankTransactionContainer. Now it sets data.invtransactiontype_valid true with data.invtransactiontype = OFX_INVBANKTRAN. The end result is that the transaction callback now looks like an investment transaction (which it is) rather than a banking transaction (which it is not). - added the fields from section 13.9.2.4.2 of OFX spec 2.1.1 to OfxTransactionData - provides better support for bonds, options, and 401(k) - added support to provide balances for securities - responds to sourceforge feature request #7 - adds new callback for investment positions - adds new OfxPositionData struct - adds new ofx_set_position_cb function - added , , and parsing and fields to transactions, securities, and positions - added a new account type OfxAccountData::OFX_401K - if set, will add Y and Y in the investment statement request - this is currently untested - added parsing of transactions for 401k in the response (tested only via ofxdump on spec examples) - added a fix for sourceforge bug #46 account callback on - no longer results in redundant/irrelevant account and statement callbacks - modified ofxdump to support the above changes - added investment account examples from OFX 2.1.1 spec to "ofx_sample_files" - fixed some time offsets in the OFX spec examples - section 13.13: EST is GMT -5 - section 16.5.3.2: August is not PST or GMT -8. Changed to -7 PDT - section 16.5.4.2: August is not PST or GMT -8. Changed to -7 PDT - updated existing samples to fix the time formats (added seconds to the time format) - could not get openSP to parse ofx201.dtd - for elements that actually still provide their data, ofxdump generates lots of parse errors on an OFX 2.x file. Data handling for these elements in ofx_sgml.cpp is a little unorthodox. 2019-09-30, LibOFX 0.9.15: - Fix segfault on uninitialized iconv - Make file format less stringent - Minor fixes in the build system 2019-02-11, LibOFX 0.9.14: - Fix proprietary tags striping eating the content of the previous tag if proprietary tag is in the middle of the line - Don't output invalid line numbers on the console before SGML processing starts 2017-09-17, LibOFX 0.9.13: - Fix potential heap overflow - Fix crash on some malformed ofx files - Fix crash in ofxconnect on missing command line arguments - Fix for daylight savings time handling - Easier compile on macos: obey LIBTOOLIZE env variable, and fallback to glibtoolize - Fix compile on win32 (mingw-w64) - Performance an reliability fixes in header parsing - Strip CATEGORY tag added by Chase bank 2017-09-17, LibOFX 0.9.12: - Fix a buffer overflow on unexpected tag names. 2016-08-14, LibOFX 0.9.11: - Add support for client uid, from KDE bug 366326 2014-09-12, LibOFX 0.9.10: - Fix missing balance dates (ledger_balance_date, available_balance_date) 2013-09-09, LibOFX 0.9.9: - Fix missing increment of SO_CURRENT number in libofx-0.9.6 to avoid crashes when mixing this with older applications - bug#41: Fix a crash that occurs while importing a possibly invalid OFX file. Patch by Cristian Onet. 2013-04-17, LibOFX 0.9.8: - Fix erroneous reading of files with empty lines - bug#24: Fix build error on solaris. - bug#40: Fix compiler warnings of OFX clang 2013-04-11, LibOFX 0.9.7: - Fix erroneous reading of files with long lines 2013-03-30, LibOFX 0.9.6: - Extend buffer for TRANSACTION_NAME to 96 bytes due to UTF-8 multibyte characters. - Patch by Geert Janssens to fix typo in info message - Patch by Geert Janssens to allow lines longer than 1024 characters - Fix treatment of empty date strings: Must return a zero date instead of a bogus one. - Replace unlink() with remove() to fix compile problems with gcc 4.7 - Make configure fail if gengetopt is missing and generated files are not present (as is the case when we checkout from git) - Fix garbled character encoding for UTF-8 encoded OFX 2.0 (XML) files. Sadly, because of a bug in OpenSP with xml decoding this currently means that iso-8859-1 OFX-2.0 files will still not be properly decoded. LibOFX 0.9.5: Benoit Grégoire - Workaround OFX files specifying invalid encoding values (specifically: UNICODE and CP1252). This should fix most encoding problems reported. - Look for DTD in source directory (simplifies development) Christian Stimming - Add minor argument checking - Expose field: OfxSecurityData::fiid in API - Make string arguments a const reference where appropriate - Add configure check for help2man tool Ryan Donlan - Improve build system and autoconf 2.68 compatibility - Improve generated man pages - Use GCC's -fvisibility=hidden to hide internal symbols from external users. LibOFX 0.9.4: - Patch to fix segfault on some malformed date formats. Inspired by Zach's patch on launchpad. - Packages-oriented changes: - LibOFX will now look for DTDs in env variable OFX_DTD_PATH (if present). - Better handling of paths (tolerates trailing path separator, or lack thereof) - No longer ignore return value of mkstemp() - Integrate all changes in Ubuntu's package that weren't already upstream - Move to LibXML++ 2.6, as 1.0 is deprecated - Add generated man pages with html2man LibOFX 0.9.3: - Fix segfault on some files containing missing closing tags (bug #2969817) LibOFX 0.9.2: - Win32: Add gnucash patch that looks up the dtd installation directory from the current executable's location. - Apply patch by Geert Janssens to fix a crash on invalid date format - Apply patch by ajseward with some additional fixes to allow wrapping the library in python. - Apply patch by Thomas Baumgart which fixes bug #5 (Transaction posting date off by one) - Apply patch by Bill Nottingham with various C++ include fixes for building with recent compilers. LibOFX 0.9.1: - Add more sanity checks on string length. - 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 by Jerome Vouillon copied from the latter. LibOFX 0.9.0: - this release now exports version information thus allowing depending applications to determine the version of LibOFX to compile against - some fields have been added to OfxFiLogin to allow for modification of some OFX header fields in outgoing requests. Together with the latest AqBanking3 this should fix the problem with servers suddenly rejecting connections from LibOFX applications - the calling application can now tell libofx where the data files reside. This allows for relocatable binaries (most importantly on Windows) - some warnings from recent versions of GCC have been fixed - libOFX can now easily be cross-compiled for Windows on Linux - the OFX header is now scanned for a hint regarding the encoding of the document and convert the data to UTF8 if iconv is available at compile time. - the API for online requests has been cleaned up LibOFX 0.8.3: - Fix problem with string lengths. Fixes Gnucash bug http://bugzilla.gnome.org/show_bug.cgi?id=353986 LibOFX 0.8.2: - bug fixes for GCC4.x and 64-bit compatibility - fix to enable OFXDirectConnect in Aqbanking - improvements to ofxpartner functionality - minor build system modifications - new fields for fees, commissions and stock split data - fix a memory leak and a potential crashing bug LibOFX 0.8.0: - New DirectConnect API for statement downloads, thanks to Ace Jones and Martin Preuss - Added ofxconnect sample app to demonstrate & test new API's (try "make check" in the ofxconnect folder). Read README.privateserver first. - Apply Christian Stimming's patch for rpm building. Also adds a make rpm target. LibOFX 0.7.0: - Fix compile with gcc 3.4. This also needs to be applied to the stable branch. - Now uses a proper callback architecture (many thanks to Martin Preuss and Ryan P Bobko who contributed to it). - Now uses gengetopt. You can now set the desired debug output from the command line without recompiling. Check ofxdump --help. - File formet autodetection. - Working (but incomplete) Open Financial Connectivity (OFC) support. - Can now display line number in the debug output - Add file format autodetection architecture, can currently distinguish between OFX and OFC files. LibOFX 0.6.6: -Important code cleanup in the parsing code. The parser should be much more independent of OpenSP default settings. Should get rid of "end tag for "MEMO" omitted, but OMITTAG NO was specified" type messages and many other parser failures. -The very old OpenSP 1.3.1 will probably no longer work. -Fix an infinite loop in some circumstances while the library was searching for a parent statement for a transaction. Would mostly manifest on complex investments transactions. Thanks to stephen.a.prior A T ntlworld.ie for the catch. -Implement displaying file line numbers in the error output. Note that data won't be valid if the message occurs before the file is opened. LibOFX 0.6.5: -Fix for really broken files that do not have a newline after the ofx header (bug #721732) -Add #include to fix compile error on freebsd and possibly all gcc2 based distro. -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. (bug #778615) LibOFX 0.6.4: -Fix critical bug that caused the decimals to be ignored after the decimal separator in some locale (no matter what the decimal separator was in the original file). For example, importing in gnucash with a locale of fr_FR caused an amount of 19,95 to be imported as 19,00. LibOFX 0.6.3: -Fix incompatibilities with big endian machines -Fix compilation on sun -Fix error in the DTD that caused "content model is ambiguous" errors -Fix ofx2qif crash -ofxdump can now report the library version number. LibOFX 0.6.2: -Hopefully fix incompatibilities with BOTH OpenSP 1.3.x and OpenSP >= 1.4 -Building as rpm is now available, thanks to Chris Lyttle. -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. LibOFX 0.6.1: -Fix a critical bug in 0.6.0. Parsing of a file would fail and hang for users of OpenSP 1.5pre5 (and possibly others). LibOFX 0.6: -Beta version, released to accompany the new GnuCash 1.7.3 beta release. -Full investment transaction support (ofx2qif not yet updated however). -Now uses an Autoconf/Automake build system. -Proprietary tag striper is now much smarter and read routines have been corrected. Importing a file written on a single line will no longer cause an infinite loop. -Added yet more spaghetti 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. LibOFX 0.5: -Alpha version, released to accompany the new GnuCash 1.7.1 alpha release. -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 possible to use "make static". Statically linked ofxdump and ofx2qif will be created, with profiling enabled. -Basic work for investment account and securities. 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 improve 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