gnucash maint: Bug 797067 - Date displayed incorrectly in register take two.
John Ralls
jralls at code.gnucash.org
Sat Feb 9 16:06:24 EST 2019
Updated via https://github.com/Gnucash/gnucash/commit/7d7da8e2 (commit)
from https://github.com/Gnucash/gnucash/commit/67dbfca0 (commit)
commit 7d7da8e2c44d117e3124a671e02b9d7f248d4d92
Author: John Ralls <jralls at ceridwen.us>
Date: Fri Feb 8 11:40:21 2019 -0800
Bug 797067 - Date displayed incorrectly in register take two.
Revert using boost::locale to generate std::locales as boost::locale-
generated locales don't implement std::locale::facet and there was
a bug in the boost::locale ICU wrapper code that caused the wrong year
to be output for the last 3 days of December.
GCC's libstdc++ supports only the "C" locale on Windows and throws if
one attempts to create any other kind. For dates we work around this
by using wstrftime() to format according to locale and then convert
the UTF16 string to UTF8. wstrftime() interprets the time zone flags
%z, %Z, and %ZP differently so we process those first before calling
strftime. This will have the unfortunate effect of not localizing
timezone names but it's as close as we can get.
Summary of changes:
libgnucash/core-utils/gnc-locale-utils.cpp | 32 ++++-----
libgnucash/engine/gnc-datetime.cpp | 99 ++++++++++++++++++++++++---
libgnucash/engine/test/gtest-gnc-datetime.cpp | 6 +-
3 files changed, 108 insertions(+), 29 deletions(-)
More information about the gnucash-patches
mailing list