gnucash future: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Sat Jul 18 16:53:10 EDT 2026


Updated	 via  https://github.com/Gnucash/gnucash/commit/0e53aff8 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/85646ea0 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/770fd5af (commit)
	from  https://github.com/Gnucash/gnucash/commit/458b2ea4 (commit)



commit 0e53aff804ada073bfaae88f46cb7e737d52e345
Merge: 458b2ea4c4 85646ea094
Author: John Ralls <jralls at ceridwen.us>
Date:   Sat Jul 18 13:49:37 2026 -0700

    Merge Brent McBride's 'gnc-glib-utils-cpp' into future.

commit 85646ea0946fefd451bd4890f6b761990bcbb23d
Author: Brent McBride <mcbridebt at hotmail.com>
Date:   Tue Jul 14 22:49:26 2026 -0700

    Modernize gnc-string-utils to C++ and convert its test to Googletest
    
    Convert the string utilities from GLib to boost::locale: safe_utf8_collate
    compares with a boost::locale::collator, gnc_locale_from_utf8/to_utf8 use the
    boost::locale info facet for the charset (short-circuiting UTF-8 locales), and
    utf8_strstr normalizes with boost::locale::normalize.
    
    These functions are reached from low-level engine code such as
    xaccAccountOrder -- including from the Python bindings and unit tests -- that
    runs before gnucash-core-app calls gnc_init_boost_locale.  gnc_get_boost_locale
    therefore now lazily creates a facet-equipped locale on first use, while still
    letting gnc_init_boost_locale install message catalogs afterwards.
    
    The test is converted to Googletest and pins LC_ALL=C so the conversion path
    and its failure handling are exercised deterministically.

commit 770fd5af633e1fd15684cf33ab0beaebfe7355b4
Author: Brent McBride <mcbridebt at hotmail.com>
Date:   Tue Jul 14 21:37:34 2026 -0700

    Rename gnc-glib-utils.{c,h} and its test to gnc-string-utils for C++ migration



Summary of changes:
 bindings/core-utils.i                              |   2 +-
 bindings/guile/glib-guile.c                        |   2 +-
 gnucash/gnome-utils/gnc-file.c                     |   2 +-
 gnucash/gnome-utils/gnc-main-window.cpp            |   2 +-
 gnucash/gnome-utils/gnc-tree-view-account.c        |   2 +-
 gnucash/gnome-utils/gnc-tree-view-commodity.c      |   2 +-
 gnucash/gnome-utils/gnc-tree-view-owner.c          |   2 +-
 gnucash/gnome-utils/gnc-tree-view-price.c          |   2 +-
 gnucash/gnome-utils/gnc-tree-view.c                |   2 +-
 gnucash/gnome/dialog-imap-editor.c                 |   2 +-
 gnucash/gnome/dialog-invoice.c                     |   2 +-
 gnucash/gnome/dialog-payment.c                     |   2 +-
 gnucash/gnome/dialog-price-edit-db.cpp             |   2 +-
 gnucash/gnome/dialog-sx-editor.c                   |   2 +-
 gnucash/gnome/dialog-sx-since-last-run.c           |   2 +-
 gnucash/gnome/gnc-plugin-page-account-tree.cpp     |   2 +-
 gnucash/gnome/gnc-plugin-page-register-filter.cpp  |   2 +-
 gnucash/gnome/gnc-plugin-page-register.cpp         |   2 +-
 gnucash/gnome/gnc-plugin-page-report.cpp           |   2 +-
 gnucash/gnome/gnc-plugin-page-sx-list.cpp          |   2 +-
 gnucash/import-export/aqb/assistant-ab-initial.c   |   2 +-
 gnucash/import-export/aqb/gnc-ab-utils.c           |   2 +-
 gnucash/import-export/bi-import/dialog-bi-import.c |   2 +-
 gnucash/import-export/csv-imp/csv-account-import.c |   2 +-
 .../customer-import/dialog-customer-import.c       |   2 +-
 gnucash/import-export/import-main-matcher.cpp      |   2 +-
 gnucash/import-export/ofx/gnc-ofx-import.cpp       |   2 +-
 gnucash/register/ledger-core/gnc-ledger-display.c  |   2 +-
 .../register/ledger-core/split-register-model.c    |   2 +-
 gnucash/register/register-gnome/combocell-gnome.c  |   2 +-
 .../register/register-gnome/completioncell-gnome.c |   2 +-
 libgnucash/app-utils/gnc-sx-instance-model.c       |   2 +-
 libgnucash/core-utils/CMakeLists.txt               |   4 +-
 libgnucash/core-utils/gnc-locale-utils.cpp         |  80 +++--
 .../{gnc-glib-utils.c => gnc-string-utils.cpp}     | 168 ++++++-----
 .../{gnc-glib-utils.h => gnc-string-utils.h}       |  18 +-
 libgnucash/core-utils/test/CMakeLists.txt          |  12 +-
 .../core-utils/test/gtest-gnc-string-utils.cpp     | 334 +++++++++++++++++++++
 libgnucash/core-utils/test/test-gnc-glib-utils.c   | 171 -----------
 libgnucash/engine/Account.cpp                      |   2 +-
 libgnucash/engine/Recurrence.cpp                   |   2 +-
 libgnucash/engine/gncIDSearch.c                    |   2 +-
 libgnucash/engine/test/utest-Account.cpp           |   2 +-
 po/POTFILES.in                                     |   2 +-
 44 files changed, 535 insertions(+), 326 deletions(-)
 rename libgnucash/core-utils/{gnc-glib-utils.c => gnc-string-utils.cpp} (66%)
 rename libgnucash/core-utils/{gnc-glib-utils.h => gnc-string-utils.h} (94%)
 create mode 100644 libgnucash/core-utils/test/gtest-gnc-string-utils.cpp
 delete mode 100644 libgnucash/core-utils/test/test-gnc-glib-utils.c



More information about the gnucash-patches mailing list