You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gnucash/libgnucash/engine
Christopher Lam 3a2ac526a6
[gnc-commodity.cpp] improve gnc_commodity_compare
4 weeks ago
..
mocks Wrap include of gtest.h and gmock.h with a warning-silencing pragma. 10 months ago
test fixup: Review comments about style of code. 1 month ago
test-core Add missing `#include <cstdint>` 1 year ago
Account.cpp [Account.h] gnc_account_get_earliest_date 1 month ago
Account.h [Account.h] gnc_account_get_earliest_date 1 month ago
Account.hpp [account.cpp] gnc_account_foreach_split forward loops only 4 months ago
AccountP.hpp [Account.cpp] refactor acc->balance_limit getters/setters 1 year ago
CMakeLists.txt Bug 799480 - Fails to build with ICU 76 1 year ago
FreqSpec.h
Query.cpp Reapply filter when number of sub-accounts change 2 years ago
Query.h Reapply filter when number of sub-accounts change 2 years ago
README Remove texi design document in engine 2 years ago
README.query-api
Recurrence.cpp Mortgage assistant: Avoid crash when returning to the repayment page. 10 months ago
Recurrence.h recurrencePeriodTypeToString and recurrenceWeekendAdjustToString g_strdup only when necessary 2 years ago
SX-book-p.h
SX-book.cpp [SX-book.cpp] convert to c++ 2 years ago
SX-book.h
SX-ttinfo.hpp [SX-ttinfo.cpp] tidier, using c++ stl and algo 2 years ago
SchedXaction.cpp [SX-ttinfo.cpp] tidier, using c++ stl and algo 2 years ago
SchedXaction.h [SX-ttinfo.cpp] tidier, using c++ stl and algo 2 years ago
SchedXaction.hpp [SX-ttinfo.cpp] tidier, using c++ stl and algo 2 years ago
Scrub.cpp [account.cpp] gnc_account_foreach_split forward loops only 4 months ago
Scrub.h
Scrub2.cpp [Transaction.hpp] rename to .hpp 2 years ago
Scrub2.h [Scrub2.cpp] convert to cpp 2 years ago
Scrub3.cpp [Transaction.hpp] rename to .hpp 2 years ago
Scrub3.h
ScrubBudget.c
ScrubBudget.h
ScrubBusiness.c g_list_free xaccAccountGetSplitList 2 years ago
ScrubBusiness.h add #ifdef __cplusplus extern "C" {} wrappers to .h files 2 years ago
Split.cpp [Split.cpp] use qof_instance kvp API for GncGUID* 8 months ago
Split.h [Transaction|Split.cpp] Remove Reg2 unused functions 2 years ago
SplitP.hpp [SplitP.hpp] rename to .hpp 2 years ago
TransLog.cpp [translog.cpp] use c++ for better cleanup 4 months ago
TransLog.h
Transaction.cpp [transaction.cpp] xaccTransSetDate has GDate on stack 4 months ago
Transaction.h [Transaction|Split.cpp] Remove Reg2 unused functions 2 years ago
TransactionP.hpp [SplitP.hpp] rename to .hpp 2 years ago
cap-gains.cpp [Transaction.hpp] rename to .hpp 2 years ago
cap-gains.h Add #ifdef __cplusplus extern "C" {} wrappers to .h files 2 years ago
cashobjects.cpp [Transaction.hpp] rename to .hpp 2 years ago
cashobjects.h
engine-helpers.c [engine-helpers.h] key is a const char* 2 years ago
engine-helpers.h [engine-helpers.h] key is a const char* 2 years ago
gnc-accounting-period.c
gnc-accounting-period.h
gnc-aqbanking-templates.cpp
gnc-aqbanking-templates.h
gnc-backend-prov.hpp
gnc-budget.cpp use c++ placement new 2 years ago
gnc-budget.h
gnc-commodity.cpp [gnc-commodity.cpp] improve gnc_commodity_compare 4 weeks ago
gnc-commodity.h [gnc-commodities.cpp] expose auto_quote_control kvp to test them 8 months ago
gnc-commodity.hpp Bug 799706 - Rename Namespace 2 months ago
gnc-date-p.h
gnc-date.cpp [gnc-date.cpp] gnc_g_date_new_today calls gnc_gdate_set_today 4 months ago
gnc-date.h [gnc-date.cpp] deprecate gnc_difftime 1 year ago
gnc-datetime.cpp Turn of deprecation warning for wstring_convert. 2 months ago
gnc-datetime.hpp [gnc-datetime] improve CSV date parser with ICU and boost 1 year ago
gnc-engine.cpp [Transaction.hpp] rename to .hpp 2 years ago
gnc-engine.h [Transaction.hpp] rename to .hpp 2 years ago
gnc-euro.cpp [gnc-euro.cpp] fix typo for bulgarian lev rate 3 months ago
gnc-euro.h
gnc-event.c
gnc-event.h
gnc-features.cpp
gnc-features.h
gnc-hooks.c
gnc-hooks.h
gnc-int128.cpp
gnc-int128.hpp
gnc-lot-p.h Add #ifdef __cplusplus extern "C" {} wrappers to .h files 2 years ago
gnc-lot.cpp [gnc-lot.cpp] use qof_instance kvp API for const char* 8 months ago
gnc-lot.h Doxygen - minor cleanup of gnc-lot.h 2 years ago
gnc-numeric.cpp Improve GncNumeric(std::string) to handle unicode spaces. 12 months ago
gnc-numeric.h Doxygen - drop several txt files that were included in 2 years ago
gnc-numeric.hpp Add missing `#include <cstdint>` 1 year ago
gnc-option-date.cpp gnc_relative_date_to_time64: Have only if statemen for period TODAY. 11 months ago
gnc-option-date.hpp Test gnc-option-date variable fy start days. 11 months ago
gnc-option-impl.cpp Merge branch 'free-guid-string' into stable #1777 2 years ago
gnc-option-impl.hpp Add missing `#include <cstdint>` 1 year ago
gnc-option-ui.hpp
gnc-option-uitype.hpp
gnc-option.cpp [c++options] Correctly implement handling Fancy Date Format. 2 years ago
gnc-option.hpp Add missing `#include <cstdint>` 1 year ago
gnc-optiondb-impl.hpp
gnc-optiondb.cpp Improve translatable strings. 8 months ago
gnc-optiondb.h
gnc-optiondb.hpp Add missing `#include <cstdint>` 1 year ago
gnc-pricedb-p.h [gnc-pricedb.h] remove unused gnc_pricedb_substitute_commodity 2 years ago
gnc-pricedb.cpp [gnc-pricedb.cpp] plug leak when fiscal_end_date is null 3 months ago
gnc-pricedb.h [gnc-pricedb.h] remove unused gnc_pricedb_lookup_at_time64 2 years ago
gnc-rational-rounding.hpp
gnc-rational.cpp Add missing `#include <cstdint>` 1 year ago
gnc-rational.hpp
gnc-session.c
gnc-session.h
gnc-timezone.cpp WORDS_BIGENDIAN needs to be a compile definition and checked with ifdef. 1 month ago
gnc-timezone.hpp
gnc-uri-utils.c Doxygen - drop obvious cases of deprecated code 2 years ago
gnc-uri-utils.h Doxygen - drop obvious cases of deprecated code 2 years ago
gncAddress.c [~qofchoice.cpp] remove, not useful 2 years ago
gncAddress.h Doxygen - fold business.txt file in the respective source files 2 years ago
gncAddressP.h [engine/*.h] add extern "C" {} wrappers 2 years ago
gncBillTerm.c Doxygen - fold business.txt file in the respective source files 2 years ago
gncBillTerm.h Doxygen - fold business.txt file in the respective source files 2 years ago
gncBillTermP.h
gncBusiness.c
gncBusiness.h Doxygen - merge separate txt files into respective header files 2 years ago
gncCustomer.c [~qofchoice.cpp] remove, not useful 2 years ago
gncCustomer.h
gncCustomerP.h [engine/*.h] add extern "C" {} wrappers 2 years ago
gncEmployee.c
gncEmployee.h
gncEmployeeP.h [engine/*.h] add extern "C" {} wrappers 2 years ago
gncEntry.c
gncEntry.h
gncEntryP.h
gncIDSearch.c
gncIDSearch.h
gncInvoice.c Add missing `#include <cstdint>` 1 year ago
gncInvoice.h
gncInvoiceP.h
gncJob.c [~qofchoice.cpp] remove, not useful 2 years ago
gncJob.h
gncJobP.h [engine/*.h] add extern "C" {} wrappers 2 years ago
gncOrder.c
gncOrder.h
gncOrderP.h [engine/*.h] add extern "C" {} wrappers 2 years ago
gncOwner.c Bug 798925 - Python bindings: "invalid unclassed pointer... 2 years ago
gncOwner.h Bug 798950 - Bug Report: Incorrect Currency Conversion and Provider Invoice Payment Recording 3 years ago
gncOwnerP.h
gncTaxTable.c gncTaxTable: chain up to the correct parent function. 2 months ago
gncTaxTable.h Doxygen - merge separate txt files into respective header files 2 years ago
gncTaxTableP.h
gncVendor.c [~qofchoice.cpp] remove, not useful 2 years ago
gncVendor.h
gncVendorP.h [engine/*.h] add extern "C" {} wrappers 2 years ago
guid.cpp [guid.cpp] GncGUID* avoids temporary gnc::GUID, and better hash 3 months ago
guid.h
guid.hpp [guid.hpp] GUID::from_string and is_valid_string takes a const char* 2 years ago
iso-4217-currencies.xml Bulgarian Lev (BGN) replaced by Euro 1 Jan 2026. 3 months ago
iso-currencies-to-c.xsl
kvp-frame.cpp Add missing `#include <cstdint>` 1 year ago
kvp-frame.hpp
kvp-value.cpp
kvp-value.hpp Add missing `#include <cstdint>` 1 year ago
kvp_doc.txt Remove texi design document in engine 2 years ago
policy-p.h
policy.cpp [Transaction.hpp] rename to .hpp 2 years ago
policy.h
qof-backend.cpp
qof-backend.hpp
qof-gobject.h
qof-string-cache.cpp
qof-string-cache.h
qof-win32.cpp
qof.h [~qofchoice.cpp] remove, not useful 2 years ago
qofbackend.h
qofbook-p.h Doxygen - drop obvious cases of deprecated code 2 years ago
qofbook.cpp [AccountP.hpp] .h -> .hpp, remove extern "C" {} wrapper 2 years ago
qofbook.h
qofbook.hpp
qofbookslots.h
qofclass-p.h
qofclass.cpp
qofclass.h [~qofchoice.cpp] remove, not useful 2 years ago
qofevent-p.h
qofevent.cpp
qofevent.h
qofid-p.h
qofid.cpp Fix undefined behaviour in collection_compare_cb function. 1 month ago
qofid.h Remove unused qof_collection_from_glist function. 1 month ago
qofinstance-p.h [qofinstance.cpp] add overloaded qof_instance_set|get_path_kvp 1 year ago
qofinstance.cpp [Transaction.cpp] use qof_instance kvp API for GDate 8 months ago
qofinstance.h
qoflog.cpp [qoflog.cpp] plug a gchar* leak 4 months ago
qoflog.h
qofobject-p.h
qofobject.cpp [qofobject.cpp] check col!=nullptr instead of obj 3 months ago
qofobject.h [~qofchoice.cpp] remove, not useful 2 years ago
qofquery-p.h
qofquery.cpp Silence compile warning with a cast. 1 year ago
qofquery.h [~qofchoice.cpp] remove, not useful 2 years ago
qofquerycore-p.h
qofquerycore.cpp Reapply filter when number of sub-accounts change 2 years ago
qofquerycore.h Reapply filter when number of sub-accounts change 2 years ago
qofsession.cpp Bug 799490 - Error on start or opening a gnucash file: Can't parse the URL 9 months ago
qofsession.h
qofsession.hpp
qofutil.cpp
qofutil.h

README


This directory contains code for the accounting engine.
Its fairly clean but far from perfect, and it certainly
lacks advanced features.

There should be no GUI code in this subdirectory, and,
ideally, it should build cleanly and independently of
any GUI elements or assumptions.

For design documentation, please read our doxygen documentation.
This can be found at https://code.gnucash.org/docs/STABLE/
Alternatively you can build it yourself by running
[ninja|make] doc
The result will be found in
{builddir}/libgnucash/doc/html/index.html

The same information can mostly be found directly in the header
files in this directory as well (though in marked up source format).