gnucash unstable: Multiple changes pushed

Geert Janssens gjanssens at code.gnucash.org
Sat Dec 23 09:39:47 EST 2017


Updated	 via  https://github.com/Gnucash/gnucash/commit/2f96b19c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/a80318ec (commit)
	 via  https://github.com/Gnucash/gnucash/commit/a23438d5 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/805549ba (commit)
	 via  https://github.com/Gnucash/gnucash/commit/fbf4843f (commit)
	 via  https://github.com/Gnucash/gnucash/commit/f782be1a (commit)
	 via  https://github.com/Gnucash/gnucash/commit/3312fe2d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/29ad8ff9 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/4a88f05d (commit)
	 via  https://github.com/Gnucash/gnucash/commit/5b031829 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/f260a01b (commit)
	 via  https://github.com/Gnucash/gnucash/commit/55154959 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/d9eebd33 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/5636afc4 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/2cda65e0 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/9d7ec35c (commit)
	 via  https://github.com/Gnucash/gnucash/commit/eb6dad86 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/b3667c76 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/08aa0104 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/34e0d6cf (commit)
	 via  https://github.com/Gnucash/gnucash/commit/eb6c741b (commit)
	from  https://github.com/Gnucash/gnucash/commit/ddfd38d8 (commit)



commit 2f96b19c77675a883efce2eed6ecfd4d53551fad
Merge: ddfd38d a80318e
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Sat Dec 23 15:10:48 2017 +0100

    Merge branch 'fix_bayes' of https://github.com/limitedAtonement/gnucash into unstable

commit a80318ec5f05715b843bf0a038159076342ae0db
Author: lmat <dartme18 at gmail.com>
Date:   Thu Dec 21 07:41:07 2017 -0500

    Adding to version info to feature string

commit a23438d5fbbc6cdb24d26f5a921b70fecb64750b
Author: lmat <dartme18 at gmail.com>
Date:   Tue Dec 12 09:34:44 2017 -0800

    Correct string cache code
    
    string cache replace was incorrect and covered by gpointer casting.

commit 805549ba247f79308f5e18e40f8999359dcc6e2a
Author: lmat <dartme18 at gmail.com>
Date:   Sun Dec 10 05:42:08 2017 -0800

    Rename qofinstance function
    
    This function was supposed to be renamed a while back. I had named it
    this way for debugging purposes.

commit fbf4843f31b69eb588d6b47978aa1b8b2265324d
Author: lmat <dartme18 at gmail.com>
Date:   Sat Dec 9 19:49:03 2017 -0800

    Changed bayes import map design
    
    This commit introduces a new feature flag:
    GNC_FEATURE_GUID_FLAT_BAYESIAN. It signifies that the bayes import map
    data are stored flat and by guid. Any time bayes import map data are
    accessed, they are converted if necessary.

commit f782be1a5116a48b9e8521890da727561742520b
Author: lmat <dartme18 at gmail.com>
Date:   Wed Dec 6 13:52:01 2017 -0800

    Code review responses
    
    Using Aliases to represent cmplicated types
    Corrected variable-sized array on stack
    Using PascalCase for type names and aliases

commit 3312fe2dcdc6a97e5c604b9149bd2026241ac7ff
Author: lmat <dartme18 at gmail.com>
Date:   Fri Dec 1 13:40:06 2017 -0500

    Changed some constants to constexpr

commit 29ad8ff9b07165d88d5fa722e233618c9610fe47
Author: lmat <dartme18 at gmail.com>
Date:   Tue Nov 28 17:15:07 2017 -0500

    Remove unused kvp function

commit 4a88f05d1159350812969d952bf3d3d9a5173c9a
Author: lmat <dartme18 at gmail.com>
Date:   Tue Nov 28 15:44:20 2017 -0500

    kvp string: allocate enough space
    
    We need to allocate enough space for the terminating null character.
    Also, I double-checked the documents for std::basic_string::c_str () and
    verified that it does guarantee the terminating null, so I put a comment
    in the code that depends on that.

commit 5b03182963de1cc5c7e7a3d7cc6fd29ce6339848
Author: lmat <dartme18 at gmail.com>
Date:   Tue Nov 28 15:43:24 2017 -0500

    Correct kvp to_string typo

commit f260a01bfd523886c807b3c901b0700712f577cd
Author: lmat <dartme18 at gmail.com>
Date:   Thu Nov 16 12:57:31 2017 -0500

    Keep tokens as they are, don't translate them
    
    Before, it was necessary to remove '/' from tokens so that they won't be
    divided up within kvp. Now that kvp doesn't parse tokens, it's okay to
    pass '/', and it's better not to translate user-provided tokens if at all
    possible.

commit 551549598a45aff0accef9125b8100f7cf0f1330
Author: lmat <dartme18 at gmail.com>
Date:   Wed Nov 15 15:24:45 2017 -0500

    Corrected memory management issue

commit d9eebd332b52b774f3ad5b4f0c85ce7ba0419381
Author: lmat <dartme18 at gmail.com>
Date:   Thu Nov 9 16:33:58 2017 -0500

    Renaming functions to get rid of temporary name
    
    _var_ was used to make sure I caught all references, but isn't intended
    as a permanent name.

commit 5636afc4a298c355a5ffb6f849a21977aba3ac9a
Author: lmat <dartme18 at gmail.com>
Date:   Mon Nov 6 14:51:25 2017 -0500

    Kvp no longer parses entries looking for delimiters

commit 2cda65e01237db48bf5399bfb1b1bdbce156830f
Author: lmat <dartme18 at gmail.com>
Date:   Fri Nov 3 21:27:48 2017 -0400

    Added test for and corrected get_bayes_info

commit 9d7ec35ce5ff59ffe5cf0bf65b1623bea5f52422
Author: lmat <dartme18 at gmail.com>
Date:   Thu Nov 2 15:42:22 2017 -0400

    Removed qof_instance_set_kvp, qof_instance_get_kvp
    
    And replaced them with versions that take lists of key path elements.
    This is in an effort to eliminate the parsing of kvp keys.

commit eb6dad86e3dc48ceaebf586b280b1fc09d8087b7
Author: lmat <dartme18 at gmail.com>
Date:   Fri Oct 27 11:09:42 2017 -0400

    Fixed conversion problem
    
    The conversion assumed there were only three levels to bayes import
    map kvp: IMAP token, user-supplied token, GUID/account name. In
    actuality, since user-supplied tokens could have the delimiter in them,
    there could be several. This fix takes that into account like so:
    IMAP token, potentially several user-supplied tokens, GUID/account name.
    
    The import map is undergoing two conversions at the same time: account names
    to guids and an hierarchical representation to a flat representation in KVP.

commit b3667c76fcca6f374b0e7a52da1023e39713c5da
Author: lmat <dartme18 at gmail.com>
Date:   Thu Oct 19 15:42:32 2017 -0400

    Implement flat bayes kvp
    
    The bayes data are stored in the KVP store. Before this commit, they are
    stored under /import-map-bayes/<token>/<account guid>/count (where count
    is the datum that "matters" in bayes matching).
    
    The problem with this is that any token including the kvp delimiter
    (currently '/') gets divided, and is not found correctly during bayes
    kvp searching. The quickest solution to this is to replace all "/"
    characters with some other character. That has been done, along with a
    re-structuring of the bayes matching code to take advantage of c++
    features to make the code more concise and readable.
    
    Also modified some test functions to fix leaks and double-frees: the
    same kvp value can't be in the kvp tree twice.
    
    Also, when I added code to clean up after the tests, some things started
    breaking due to double-delete. Apparently const_cast was hiding some
    programming errors. Really? You don't say? When giving a GUID* to KvpValue,
    the latter takes ownership of the former.

commit 08aa0104ef3f439b0bc9a9708d97440b4bf8b221
Author: lmat <dartme18 at gmail.com>
Date:   Thu Oct 19 15:23:16 2017 -0400

    Change kvp string representation
    
    The nested representation was very noisy. Now, the string representation
    shows one line per value with the full prefix which is also more
    expressive than the old version.

commit 34e0d6cfa06648e38d0771363803f2468efdc01c
Author: lmat <dartme18 at gmail.com>
Date:   Thu Oct 5 12:48:37 2017 -0400

    kvp frame to template and correcting failure macro
    
    The template avoids the need to cast to and from void*, and adds flexibility to
    the targeted function's signature.
    
    test-stuff.h defines a macro, "failure" which is used as an identifier
    in the standard IO library, so I moved any inclusion of test-stuff.h to
    the last include position so that "failure" wouldn't be defined before
    the IO library was included.

commit eb6c741bf91f18404007a5d8f2859bd2ecf7caf7
Author: lmat <dartme18 at gmail.com>
Date:   Mon Aug 14 14:32:45 2017 -0400

    Account.c to Account.cpp
    
    Since Account.c is now Account.cpp, the function signatures look a bit
    different internally. The tests rely on function signatures in error
    messages. Instead of trying to figure out what the exact
    function signature might be, I use a substring matching strategy to
    ensure that the correct error was issued.



Summary of changes:
 common/test-core/test-stuff.h                      |    7 +-
 common/test-core/unittest-support.c                |   44 +
 common/test-core/unittest-support.h                |   20 +
 gnucash/gnome-utils/gnc-file.c                     |    6 -
 libgnucash/app-utils/test/test-option-util.cpp     |   10 +-
 .../backend/dbi/test/test-backend-dbi-basic.cpp    |   14 +-
 libgnucash/backend/sql/gnc-slots-sql.cpp           |   71 +-
 libgnucash/backend/xml/io-gncxml-v1.cpp            |    2 +-
 libgnucash/backend/xml/sixtp-dom-generators.cpp    |    4 +-
 libgnucash/backend/xml/sixtp-dom-parsers.cpp       |    2 +-
 .../backend/xml/test/test-date-converting.cpp      |    2 +-
 .../backend/xml/test/test-dom-converters1.cpp      |    2 +-
 libgnucash/backend/xml/test/test-kvp-frames.cpp    |    6 +-
 .../backend/xml/test/test-load-example-account.cpp |    2 +-
 libgnucash/backend/xml/test/test-load-xml2.cpp     |    2 +-
 libgnucash/backend/xml/test/test-save-in-lang.cpp  |    2 +-
 .../backend/xml/test/test-string-converters.cpp    |    2 +-
 libgnucash/backend/xml/test/test-xml-account.cpp   |    2 +-
 libgnucash/backend/xml/test/test-xml-commodity.cpp |    2 +-
 libgnucash/backend/xml/test/test-xml-pricedb.cpp   |    2 +-
 .../backend/xml/test/test-xml-transaction.cpp      |    3 +-
 libgnucash/backend/xml/test/test-xml2-is-file.cpp  |    2 +-
 libgnucash/core-utils/gnc-glib-utils.h             |    8 +
 libgnucash/engine/{Account.c => Account.cpp}       | 1339 ++++++++------------
 libgnucash/engine/Account.h                        |   12 +-
 libgnucash/engine/AccountP.h                       |    7 +
 libgnucash/engine/CMakeLists.txt                   |    2 +-
 libgnucash/engine/Makefile.am                      |    2 +-
 libgnucash/engine/Scrub.c                          |   14 +-
 libgnucash/engine/Split.c                          |   72 +-
 libgnucash/engine/Split.h                          |    8 +
 libgnucash/engine/Transaction.c                    |  117 +-
 libgnucash/engine/Transaction.h                    |    8 +
 libgnucash/engine/gnc-aqbanking-templates.cpp      |   22 +-
 libgnucash/engine/gnc-budget.c                     |   42 +-
 libgnucash/engine/gnc-commodity.c                  |   12 +-
 libgnucash/engine/gnc-commodity.h                  |    8 +
 libgnucash/engine/gnc-engine.h                     |    7 +
 libgnucash/engine/gnc-features.c                   |   27 +
 libgnucash/engine/gnc-features.h                   |   13 +
 libgnucash/engine/gnc-lot.c                        |   26 +-
 libgnucash/engine/gnc-lot.h                        |    9 +
 libgnucash/engine/gnc-pricedb.h                    |    8 +
 libgnucash/engine/gncCustomer.c                    |   30 +-
 libgnucash/engine/gncEmployee.c                    |   37 +-
 libgnucash/engine/gncInvoice.c                     |    8 +-
 libgnucash/engine/gncJob.c                         |   12 +-
 libgnucash/engine/gncVendor.c                      |   30 +-
 libgnucash/engine/guid.cpp                         |   19 +-
 libgnucash/engine/guid.hpp                         |    1 +
 libgnucash/engine/kvp-frame.cpp                    |  241 ++--
 libgnucash/engine/kvp-frame.hpp                    |  127 +-
 libgnucash/engine/kvp-value.cpp                    |   45 +-
 libgnucash/engine/kvp-value.hpp                    |    1 +
 libgnucash/engine/policy.h                         |    8 +
 libgnucash/engine/qof-backend.hpp                  |    2 +-
 libgnucash/engine/qof-string-cache.cpp             |   17 +-
 libgnucash/engine/qof-string-cache.h               |   10 +-
 libgnucash/engine/qofbook.cpp                      |  171 +--
 libgnucash/engine/qofinstance-p.h                  |   54 +-
 libgnucash/engine/qofinstance.cpp                  |  142 ++-
 libgnucash/engine/qofsession.cpp                   |    2 +-
 libgnucash/engine/test-core/test-engine-stuff.cpp  |    4 +-
 libgnucash/engine/test/gtest-import-map.cpp        |  151 +--
 libgnucash/engine/test/test-account-object.cpp     |    4 +-
 libgnucash/engine/test/test-kvp-frame.cpp          |   92 +-
 libgnucash/engine/test/utest-Account.cpp           |   36 +-
 libgnucash/engine/test/utest-Split.cpp             |   24 +-
 libgnucash/engine/test/utest-Transaction.cpp       |   36 +-
 po/POTFILES.in                                     |    2 +-
 70 files changed, 1611 insertions(+), 1667 deletions(-)
 rename libgnucash/engine/{Account.c => Account.cpp} (83%)



More information about the gnucash-patches mailing list