John Ralls
6983adb14a
Merge Noerr Noah's 'fix-gsettings-segfault' into stable.
21 hours ago
Christopher Lam
2b7043b4ba
[reports] use gnc_date_interval_format
1 week ago
Christopher Lam
47938d1a2c
[gnc-date.cpp] gnc_date_interval_format localisable with ICU
1 week ago
Noah
587cc4b91e
Use g_return_val_if_fail / g_return_if_fail for NULL guards
...
Replace verbose if-block NULL checks with idiomatic GLib
precondition macros, per review feedback.
1 week ago
Claude
606fc45582
Fix segfault in gnc_gsettings_get_settings_obj when GSettings schemas are not installed
...
Add NULL guards before dereferencing return values from GLib calls to prevent
segmentation faults when GSettings schemas are missing (e.g., in library-only builds).
The crash occurred when g_settings_schema_source_get_default() returned NULL
and was passed directly to g_settings_schema_source_lookup(), causing a NULL
pointer dereference. The existing G_IS_SETTINGS check came too late.
Changes:
- Add NULL check for schema_source before using it
- Add NULL check for schema before calling g_settings_new_full()
- Add NULL guard in gnc_settings_dump_schema_paths() for consistency
- All callers already handle NULL returns via G_IS_SETTINGS checks
Fixes: https://bugs.gnucash.org/show_bug.cgi?id=799740
https://claude.ai/code/session_01Cdnp3XkAQ29hG1eCxUSAUw
2 weeks ago
John Ralls
3cee6a3bbc
Merge Roy Hansen's 'improve/csv-import-date-format-info' into stable.
2 weeks ago
Roy Hansen
f32abb9194
Improve usability of csv-transaction-import by adding tooltip
...
for date-format selection.
The date-format selection box displayes all variations with a "-"
separator, however this separator also matches "/" and ".".
The tooltip explains this behavior.
3 weeks ago
John Ralls
2a67864ae4
Merge latest translations from Weblate.
3 weeks ago
Giuseppe Foti
5675de8afc
Translation update by Giuseppe Foti <foti.giuseppe@gmail.com> using Weblate
...
po/it.po: 96.6% (5468 of 5656 strings; 138 fuzzy)
29 failing checks (0.5%)
Translation: GnuCash/Program (Italian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/it/
Co-authored-by: Giuseppe Foti <foti.giuseppe@gmail.com>
3 weeks ago
Yegor Derevenets
e53a62d837
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
...
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
104 failing checks (1.8%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
104 failing checks (1.8%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
104 failing checks (1.8%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
104 failing checks (1.8%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
104 failing checks (1.8%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
102 failing checks (1.8%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
102 failing checks (1.8%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
99 failing checks (1.7%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
99 failing checks (1.7%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
99 failing checks (1.7%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
99 failing checks (1.7%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
99 failing checks (1.7%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
99 failing checks (1.7%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
93 failing checks (1.6%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
93 failing checks (1.6%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
93 failing checks (1.6%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
91 failing checks (1.6%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
91 failing checks (1.6%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
91 failing checks (1.6%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
91 failing checks (1.6%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
91 failing checks (1.6%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Translation update by Yegor Derevenets <yegor.derevenets@gmail.com> using Weblate
po/ru.po: 99.4% (5627 of 5656 strings; 27 fuzzy)
85 failing checks (1.5%)
Translation: GnuCash/Program (Russian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/ru/
Co-authored-by: Yegor Derevenets <yegor.derevenets@gmail.com>
3 weeks ago
Szia Tomi
e322398421
Translation update by Szia Tomi <sziatomi01@gmail.com> using Weblate
...
po/hu.po: 90.0% (5095 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
Translation update by Szia Tomi <sziatomi01@gmail.com> using Weblate
po/hu.po: 89.9% (5088 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
Translation update by Szia Tomi <sziatomi01@gmail.com> using Weblate
po/hu.po: 89.9% (5088 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
Translation update by Szia Tomi <sziatomi01@gmail.com> using Weblate
po/hu.po: 89.9% (5088 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
Translation update by Szia Tomi <sziatomi01@gmail.com> using Weblate
po/hu.po: 89.9% (5085 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
Translation update by Szia Tomi <sziatomi01@gmail.com> using Weblate
po/hu.po: 89.8% (5080 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
Translation update by Szia Tomi <sziatomi01@gmail.com> using Weblate
po/hu.po: 89.8% (5080 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
Translation update by Szia Tomi <sziatomi01@gmail.com> using Weblate
po/hu.po: 89.8% (5080 of 5656 strings; 126 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
Translation update by Szia Tomi <sziatomi01@gmail.com> using Weblate
po/hu.po: 89.7% (5076 of 5656 strings; 127 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
Translation update by Szia Tomi <sziatomi01@gmail.com> using Weblate
po/hu.po: 89.6% (5073 of 5656 strings; 127 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
Translation update by Szia Tomi <sziatomi01@gmail.com> using Weblate
po/hu.po: 89.6% (5072 of 5656 strings; 127 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
Translation update by Szia Tomi <sziatomi01@gmail.com> using Weblate
po/hu.po: 89.6% (5071 of 5656 strings; 127 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
Translation update by Szia Tomi <sziatomi01@gmail.com> using Weblate
po/hu.po: 89.6% (5071 of 5656 strings; 127 fuzzy)
31 failing checks (0.5%)
Translation: GnuCash/Program (Hungarian)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/hu/
Co-authored-by: Szia Tomi <sziatomi01@gmail.com>
3 weeks ago
David
478e94e43d
Translation update by David <davidgmartins98@gmail.com> using Weblate
...
po/pt_BR.po: 97.7% (5526 of 5656 strings; 114 fuzzy)
20 failing checks (0.3%)
Translation: GnuCash/Program (Portuguese (Brazil))
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/pt_BR/
Co-authored-by: David <davidgmartins98@gmail.com>
3 weeks ago
hamaryns
acf23646d3
Translation update by hamaryns <hendrik@hendrikmaryns.name> using Weblate
...
po/nl.po: 97.9% (5541 of 5656 strings; 109 fuzzy)
16 failing checks (0.2%)
Translation: GnuCash/Program (Dutch)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/nl/
Co-authored-by: hamaryns <hendrik@hendrikmaryns.name>
3 weeks ago
Mirek Špaňko
38941538c1
Translation update by Mirek Špaňko <mirekspanko@hotmail.cz> using Weblate
...
po/cs.po: 40.3% (2285 of 5656 strings; 2077 fuzzy)
888 failing checks (15.7%)
Translation: GnuCash/Program (Czech)
Translate-URL: https://hosted.weblate.org/projects/gnucash/gnucash/cs/
Translation update by Mirek Špaňko <mirekspanko@hotmail.cz> using Weblate
po/glossary/cs.po: 27.6% (59 of 213 strings; 2 fuzzy)
0 failing checks (0.0%)
Translation: GnuCash/Glossary (Czech)
Translate-URL: https://hosted.weblate.org/projects/gnucash/glossary/cs/
Co-authored-by: Mirek Špaňko <mirekspanko@hotmail.cz>
3 weeks ago
John Ralls
f4169c9d5a
Merge Roy Hansen's 'CSV-reparse' into stable.
3 weeks ago
John Ralls
ce4af95212
Merge Stefann Koch's 'fix-798873' into stable.
3 weeks ago
Christopher Lam
e0d9d336ba
Merge branch 'add_search_invoices_to_customer_list_popup' #2062 into stable
3 weeks ago
Christopher Lam
d44f3d68fc
Addendum parent commit -- expand to other owner documents
3 weeks ago
Stefan Koch
e1bbb9bb7b
Bug 798873 - Crash when scrubbing after "undoing” changes
...
Fix double delete in qof_instance_kvp_remove_guid and remove vestigial glist support.
In the KvpValue::Type::FRAME case if the guid matches, it does both:
delete inst->kvp_data->set_path({path}, nullptr);
delete v;
Where earlier the v was set to be:
auto v = inst->kvp_data->get_slot({path});
The second delete is a duplicate of the first and should be removed.
3 weeks ago
Stefan Koch
52bbcf72c5
Fix innocuous bug in qofinstance idata property.
3 weeks ago
Christopher Lam
7296407457
[new-owner-report.scm] fix display/due-date tooltip
3 weeks ago
Christopher Lam
0b4f14e107
[Transaction.cpp] use g_list_copy_deep avoiding g_list_append
4 weeks ago
Christopher Lam
6ccbafd1db
[gnc-log-replay.cpp] don't need to strdup const char*
...
thereby fixing leak.
4 weeks ago
Christopher Lam
d64c8c8d59
[account.cpp] remove unused static var
4 weeks ago
Christopher Lam
dfe7295a08
[trep-engine.scm] grid: replace cell data with nested hash tables
...
Replace the list-based grid-cell storage with nested hash tables keyed
by row and column, with per-cell commodity collectors.
Eliminates repeated list traversals and duplicate filtering when
building and rendering the subtotal table, reducing gc load.
4 weeks ago
Christopher Lam
7825beed0b
[report-utilities.scm] gnc:make-commodity-collector 'getmonetary-strict
...
will find monetary with desired commodity or #f if does not
exist. this is similar to 'getmonetary but does not return a
zero-amount gnc:monetary object.
4 weeks ago
Christopher Lam
f0856f7ff3
Merge branch 'trep-col-totals' #2170 into stable
4 weeks ago
Christopher Lam
9d07ed7726
[trep-engine] Encapsulate grid state behind a closure
...
Instead of passing the grid list into grid-* procedures, `make-grid`
now returns a dispatcher that owns the grid and implements operations
selected by an argument.
• Removes repeated `grid` parameters from helpers
• Makes row/column/HTML logic operate on shared private state
• Provides a clearer API: 'add 'get-html
4 weeks ago
Christopher Lam
9bbe29b42d
[trep-engine.scm] tally secondary subtotals in subtotal table
...
when displaying secondary-level subtotals, also tally the amounts in
the row-total grid
4 weeks ago
Christopher Lam
d3baa74e72
[trep-engine.scm] refactor grid renderer
...
for each row with multiple commodities, instead of working on
commodities via their indices, work on the commodities directly.
without this refactoring, a subtotal table row with multiple
commodities may show different commodities on the same line.
with this refactoring, the row will show a stable list of commodities.
4 weeks ago
Christopher Lam
a33a1f2f1b
[trep-engine.scm] upgrade grid-add
...
formerly, grid-add was simply adding a new (vector row col data) to
the grid. it was assuming there was no existing data in row/col.
upgrade so that it will consider the existing grid row/col; if there's
existing data it will add the monetary amounts into it.
4 weeks ago
Christopher Lam
5f5caf49b9
[trep-engine.scm] use :grid-cell record type
4 weeks ago
Christopher Lam
3a2ac526a6
[gnc-commodity.cpp] improve gnc_commodity_compare
...
ensure it is a stable sort
4 weeks ago
Roy Hansen
44bc641131
Bug - When importing csv-transactions, currency_format is not always
...
properly applied.
Reparse/tokenize all import lines when changing date/currency
formats. In addition, make sure this also happens when setting
base_account.
4 weeks ago
Robert Fewell
c32002bd77
Bug 799705 - Remove Old Prices by Namespace
...
Add visibility of the namespace used for commodities so prices to
remove can be more specific.
Add a further option to restrict which namespaces are shown in the
list view. This also allows for quick selection by entering the
namespace in the combo entry.
1 month ago
John Ralls
e5fe2f3e0e
Merge Stefan Koch's 'sk-unittest-qofid' into stable.
1 month ago
Christopher Lam
cad455e3c0
Merge branch 'account-col-earliest-date' into stable #2168
1 month ago
Stefan Koch
113af56272
fixup: Review comments about style of code.
1 month ago
Stefan Koch
7f0d66d439
fixup: Add the new test-qofid.cpp file the the source distribution.
1 month ago
Stefan Koch
be5933a1ec
fixup: Remove memory leaks in the test code.
1 month ago
Stefan Koch
0e3853bfb7
Fix undefined behaviour in collection_compare_cb function.
...
The collection_compare_cb function set the user_data pointer to point to a local variable
of the function. That pointer is then used in the (only) calling function
qof_collection_compare to make decisions. This is undefined. It is likely not an actual
problem because the stack depth of the qof_collection_foreach followed by
collection_compare_cb is deeper than the qof_collection_get_data call (and others
in between if any) that the stack data user data stays uncorrupted.
But, it is undefined behavior, and could cause really subtle bugs if these there are code
changes that have deeper stack between the setting and using.
Also, using this local variable is not necessary, the qof_collection_compare function
already sets up a variable local to its scope for this that the collection_compare_cb can
use directly.
This commit removes the local (to collection_compare_cb) variable and uses the one setup
in qof_collection_compare.
The full coverage test for qofid.cpp passed before and after this change.
1 month ago
Stefan Koch
6e9a20dfeb
Implement full test coverage of libgnucash/engine/qofid
...
NOTE: This does not have full coverage because the "if (!target || !ent)" body in the
collection_compare_cp function cannot be reached. There is too much safety in the rest of
the system to test this error.
NOTE: I made this a separate test from the test-engine so that I was able to check that it
by itself could test the full coverage of the qofid.cpp file. If it was part of the larger
test, I could have missed some parts that were covered incidentally elsewhere.
1 month ago
Stefan Koch
a2cc9881df
Explicitly set the is_dirty attribute in qof_collection_new
...
It is likely that the memory was zeroed anyway, but the explicitness makes it easier to read.
1 month ago
Stefan Koch
9079d87307
Remove unused qof_collection_from_glist function.
1 month ago
Christopher Lam
4cc37b3f06
Account tab can show/sort by Earliest Date column
...
Allows the user to display / sort by account's earliest split
date. This usually reflect the account opening date.
1 month ago
Christopher Lam
d72f8de89a
[balance-forecast.scm] use gnc-account-get-earliest-date
1 month ago
Christopher Lam
334b015c19
[Account.h] gnc_account_get_earliest_date
...
Returns posted date of earliest split, or INT64_MAX if the account has
no splits.
This may reflect the opening date of the account.
1 month ago
John Ralls
bab04728f4
search-reconciled.c: Use uintptr_t instead of specializing on pointer size.
1 month ago
John Ralls
7a4548bf69
Modernize strptime.c: prototypes up top and inline parameter type decls.
1 month ago
John Ralls
bfb8647f5c
Clang on Windows has a different std c++ library and doesn't have a special exception library.
1 month ago