> Why not just add a gboolean "used" attribute to _matchinfo, set it true when > the corresponding transaction is used in a match and exclude the instance > from the match_list if its used attribute is true?
I think there's two problems with that. _matchinfo instances are not shared across multiple transactions, they're created in split_find_match during the transaction initialization, so we can't use it to track whether any other instances have it as a pending match. The second problem is that whatever common data location is used needs to be able to ref count because multiple transactions could have the same best match based on the heuristic. A simple bool causes a problem when the user goes into the match picker for one of these transactions and changes it to a different item - we can't just set to false because it could still be a match for another transaction. Additionally, I think it's probably going to be useful to be able to indicate to the user whether the pending match is an automatic or manual selection, so having that reference back to the _transactioninfo(s) or pulling that data along in a new object would be necessary. > > C++ is for master, not maint. There's google test example code > src/libqof/qof/test/gtest*. We use the glib test framework for new unit tests > on C code in maint. Got it. All of the work for the primary part of the bug was done in C, so I could always split it up into two patches (one for each branch). I'll decide once I'm a bit closer to the final solution. _______________________________________________ gnucash-devel mailing list [email protected] https://lists.gnucash.org/mailman/listinfo/gnucash-devel
