Fix bug in wxNumberFormatter::ToString() for negative numbers.

Don't include the possible leading sign in the span of digits to be grouped as
this gave nonsensical strings such as "-,123" when adding thousands separators
to "123".

Closes #14526.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72256 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-07-29 22:08:37 +00:00
parent 42a4299bb3
commit a05cbc20e3
2 changed files with 13 additions and 1 deletions

View File

@@ -235,6 +235,10 @@ void wxNumberFormatter::AddThousandsSeparators(wxString& s)
pos = s.length();
}
// End grouping at the beginning of the digits -- there could be at a sign
// before their start.
const size_t start = s.find_first_of("0123456789");
// We currently group digits by 3 independently of the locale. This is not
// the right thing to do and we should use lconv::grouping (under POSIX)
// and GetLocaleInfo(LOCALE_SGROUPING) (under MSW) to get information about
@@ -242,7 +246,7 @@ void wxNumberFormatter::AddThousandsSeparators(wxString& s)
// wxLocale level first and then used here in the future (TODO).
const size_t GROUP_LEN = 3;
while ( pos > GROUP_LEN )
while ( pos > start + GROUP_LEN )
{
pos -= GROUP_LEN;
s.insert(pos, thousandsSep);