diff options
-rw-r--r-- | basic/qa/vba_tests/format.vb | 3 | ||||
-rw-r--r-- | sc/qa/unit/data/contentCSV/numberFormat.csv | 2 | ||||
-rw-r--r-- | sc/qa/unit/data/contentCSV/testNumberFormats.csv | 56 | ||||
-rw-r--r-- | sc/qa/unit/data/ods/formats.ods | bin | 11919 -> 18545 bytes | |||
-rw-r--r-- | svl/qa/unit/svl.cxx | 18 | ||||
-rw-r--r-- | svl/source/numbers/zformat.cxx | 8 |
6 files changed, 46 insertions, 41 deletions
diff --git a/basic/qa/vba_tests/format.vb b/basic/qa/vba_tests/format.vb index 4e62e87e498e..67abc5ffe24a 100644 --- a/basic/qa/vba_tests/format.vb +++ b/basic/qa/vba_tests/format.vb @@ -148,7 +148,8 @@ Sub Custom_Number_Format_Sample() TestUtil.AssertEqual(Format(123456, "####E0"), "12E4", "Format(123456, ""####E0"")") TestUtil.AssertEqual(Format(2345.25, "$#,###.##"), "$2,345.25", "Format(2345.25, ""$#,###.##"")") TestUtil.AssertEqual(Format(0.25, "##.###\%"), ".25%", "Format(0.25, ""##.###\%"")") - TestUtil.AssertEqual(Format(12.25, "0.???"), "12.25 ", "Format(12.25, ""0.???"")") + ' tdf#158890 blank replaced by figure blank + TestUtil.AssertEqual(Format(12.25, "0.???"), "12.25 ", "Format(12.25, ""0.???"")") Exit Sub errorHandler: diff --git a/sc/qa/unit/data/contentCSV/numberFormat.csv b/sc/qa/unit/data/contentCSV/numberFormat.csv index c6aaf5a149b6..6f19b3693c31 100644 --- a/sc/qa/unit/data/contentCSV/numberFormat.csv +++ b/sc/qa/unit/data/contentCSV/numberFormat.csv @@ -6,4 +6,4 @@ FALSE,TRUE /> 258.9E3,-953E-06 -0.5 ,"/ 123.46" +0.5 ,"/ 123.46" diff --git a/sc/qa/unit/data/contentCSV/testNumberFormats.csv b/sc/qa/unit/data/contentCSV/testNumberFormats.csv index 266f4baa8a46..476a3eaad49e 100644 --- a/sc/qa/unit/data/contentCSV/testNumberFormats.csv +++ b/sc/qa/unit/data/contentCSV/testNumberFormats.csv @@ -1,32 +1,32 @@ ;Integer;;;Thousand separator;;;Fraction;;;Fraction + Thousand separator;;;Scientific;;;Engineering;; Format;"""format=""000000";"""format=""??????";"""format=""??0000";"""format=""000,000";"""format=""???,???";"""format=""??0,000";"""format=""000 ?/?";"""format=""??? ?/?";"""format=""?00 ?/?";"""format=""0,000 ?/?";"""format=""?,??? ?/?";"""format=""?,?00 ?/?";"""format=""0.000E+00";"""format=""?.###E+00";"""format=""?.0##E+00";"""format=""000E+00";"""format=""???E+00";"""format=""?00E+00" -0.123456;format=000000;format= ;format= 0000;format=000,000;format= ;format= 0,000;format=000 1/8;format= 1/8;format= 00 1/8;format=0,000 1/8;format= 1/8;format= 00 1/8;format=1.235E-01;format=1.235E-01;format=1.235E-01;format=123E-03;format=123E-03;format=123E-03 -1.23456;format=000001;format= 1;format= 0001;format=000,001;format= 1;format= 0,001;format=001 2/9;format= 1 2/9;format= 01 2/9;format=0,001 2/9;format= 1 2/9;format= 01 2/9;format=1.235E+00;format=1.235E+00;format=1.235E+00;format=001E+00;format= 1E+00;format= 01E+00 -12.3456;format=000012;format= 12;format= 0012;format=000,012;format= 12;format= 0,012;format=012 1/3;format= 12 1/3;format= 12 1/3;format=0,012 1/3;format= 12 1/3;format= 12 1/3;format=1.235E+01;format=1.235E+01;format=1.235E+01;format=012E+00;format= 12E+00;format= 12E+00 -123.456;format=000123;format= 123;format= 0123;format=000,123;format= 123;format= 0,123;format=123 4/9;format=123 4/9;format=123 4/9;format=0,123 4/9;format= 123 4/9;format= 123 4/9;format=1.235E+02;format=1.235E+02;format=1.235E+02;format=123E+00;format=123E+00;format=123E+00 -1234.56;format=001235;format= 1235;format= 1235;format=001,235;format= 1,235;format= 1,235;format=1234 5/9;format=1234 5/9;format=1234 5/9;format=1,234 5/9;format=1,234 5/9;format=1,234 5/9;format=1.235E+03;format=1.235E+03;format=1.235E+03;format=001E+03;format= 1E+03;format= 01E+03 -12345.6;format=012346;format= 12346;format= 12346;format=012,346;format= 12,346;format= 12,346;format=12345 3/5;format=12345 3/5;format=12345 3/5;format=12,345 3/5;format=12,345 3/5;format=12,345 3/5;format=1.235E+04;format=1.235E+04;format=1.235E+04;format=012E+03;format= 12E+03;format= 12E+03 -123456;format=123456;format=123456;format=123456;format=123,456;format=123,456;format=123,456;format=123456 ;format=123456 ;format=123456 ;format=123,456 ;format=123,456 ;format=123,456 ;format=1.235E+05;format=1.235E+05;format=1.235E+05;format=123E+03;format=123E+03;format=123E+03 -1234560;format=1234560;format=1234560;format=1234560;format=1,234,560;format=1,234,560;format=1,234,560;format=1234560 ;format=1234560 ;format=1234560 ;format=1,234,560 ;format=1,234,560 ;format=1,234,560 ;format=1.235E+06;format=1.235E+06;format=1.235E+06;format=001E+06;format= 1E+06;format= 01E+06 -12345600;format=12345600;format=12345600;format=12345600;format=12,345,600;format=12,345,600;format=12,345,600;format=12345600 ;format=12345600 ;format=12345600 ;format=12,345,600 ;format=12,345,600 ;format=12,345,600 ;format=1.235E+07;format=1.235E+07;format=1.235E+07;format=012E+06;format= 12E+06;format= 12E+06 --0.123456;format=000000;format= ;format= 0000;format=000,000;format= ;format= 0,000;-format=000 1/8;-format= 1/8;-format= 00 1/8;-format=0,000 1/8;-format= 1/8;-format= 00 1/8;-format=1.235E-01;-format=1.235E-01;-format=1.235E-01;-format=123E-03;-format=123E-03;-format=123E-03 --1.23456;-format=000001;-format= 1;-format= 0001;-format=000,001;-format= 1;-format= 0,001;-format=001 2/9;-format= 1 2/9;-format= 01 2/9;-format=0,001 2/9;-format= 1 2/9;-format= 01 2/9;-format=1.235E+00;-format=1.235E+00;-format=1.235E+00;-format=001E+00;-format= 1E+00;-format= 01E+00 --12.3456;-format=000012;-format= 12;-format= 0012;-format=000,012;-format= 12;-format= 0,012;-format=012 1/3;-format= 12 1/3;-format= 12 1/3;-format=0,012 1/3;-format= 12 1/3;-format= 12 1/3;-format=1.235E+01;-format=1.235E+01;-format=1.235E+01;-format=012E+00;-format= 12E+00;-format= 12E+00 --123.456;-format=000123;-format= 123;-format= 0123;-format=000,123;-format= 123;-format= 0,123;-format=123 4/9;-format=123 4/9;-format=123 4/9;-format=0,123 4/9;-format= 123 4/9;-format= 123 4/9;-format=1.235E+02;-format=1.235E+02;-format=1.235E+02;-format=123E+00;-format=123E+00;-format=123E+00 --1234.56;-format=001235;-format= 1235;-format= 1235;-format=001,235;-format= 1,235;-format= 1,235;-format=1234 5/9;-format=1234 5/9;-format=1234 5/9;-format=1,234 5/9;-format=1,234 5/9;-format=1,234 5/9;-format=1.235E+03;-format=1.235E+03;-format=1.235E+03;-format=001E+03;-format= 1E+03;-format= 01E+03 --12345.6;-format=012346;-format= 12346;-format= 12346;-format=012,346;-format= 12,346;-format= 12,346;-format=12345 3/5;-format=12345 3/5;-format=12345 3/5;-format=12,345 3/5;-format=12,345 3/5;-format=12,345 3/5;-format=1.235E+04;-format=1.235E+04;-format=1.235E+04;-format=012E+03;-format= 12E+03;-format= 12E+03 --123456;-format=123456;-format=123456;-format=123456;-format=123,456;-format=123,456;-format=123,456;-format=123456 ;-format=123456 ;-format=123456 ;-format=123,456 ;-format=123,456 ;-format=123,456 ;-format=1.235E+05;-format=1.235E+05;-format=1.235E+05;-format=123E+03;-format=123E+03;-format=123E+03 --1234560;-format=1234560;-format=1234560;-format=1234560;-format=1,234,560;-format=1,234,560;-format=1,234,560;-format=1234560 ;-format=1234560 ;-format=1234560 ;-format=1,234,560 ;-format=1,234,560 ;-format=1,234,560 ;-format=1.235E+06;-format=1.235E+06;-format=1.235E+06;-format=001E+06;-format= 1E+06;-format= 01E+06 --12345600;-format=12345600;-format=12345600;-format=12345600;-format=12,345,600;-format=12,345,600;-format=12,345,600;-format=12345600 ;-format=12345600 ;-format=12345600 ;-format=12,345,600 ;-format=12,345,600 ;-format=12,345,600 ;-format=1.235E+07;-format=1.235E+07;-format=1.235E+07;-format=012E+06;-format= 12E+06;-format= 12E+06 -0.2;format=000000;format= ;format= 0000;format=000,000;format= ;format= 0,000;format=000 1/5;format= 1/5;format= 00 1/5;format=0,000 1/5;format= 1/5;format= 00 1/5;format=2.000E-01;format=2E-01;format=2.0E-01;format=200E-03;format=200E-03;format=200E-03 -2;format=000002;format= 2;format= 0002;format=000,002;format= 2;format= 0,002;format=002 ;format= 2 ;format= 02 ;format=0,002 ;format= 2 ;format= 02 ;format=2.000E+00;format=2E+00;format=2.0E+00;format=002E+00;format= 2E+00;format= 02E+00 -20;format=000020;format= 20;format= 0020;format=000,020;format= 20;format= 0,020;format=020 ;format= 20 ;format= 20 ;format=0,020 ;format= 20 ;format= 20 ;format=2.000E+01;format=2E+01;format=2.0E+01;format=020E+00;format= 20E+00;format= 20E+00 -200;format=000200;format= 200;format= 0200;format=000,200;format= 200;format= 0,200;format=200 ;format=200 ;format=200 ;format=0,200 ;format= 200 ;format= 200 ;format=2.000E+02;format=2E+02;format=2.0E+02;format=200E+00;format=200E+00;format=200E+00 -2000;format=002000;format= 2000;format= 2000;format=002,000;format= 2,000;format= 2,000;format=2000 ;format=2000 ;format=2000 ;format=2,000 ;format=2,000 ;format=2,000 ;format=2.000E+03;format=2E+03;format=2.0E+03;format=002E+03;format= 2E+03;format= 02E+03 -20000;format=020000;format= 20000;format= 20000;format=020,000;format= 20,000;format= 20,000;format=20000 ;format=20000 ;format=20000 ;format=20,000 ;format=20,000 ;format=20,000 ;format=2.000E+04;format=2E+04;format=2.0E+04;format=020E+03;format= 20E+03;format= 20E+03 -200000;format=200000;format=200000;format=200000;format=200,000;format=200,000;format=200,000;format=200000 ;format=200000 ;format=200000 ;format=200,000 ;format=200,000 ;format=200,000 ;format=2.000E+05;format=2E+05;format=2.0E+05;format=200E+03;format=200E+03;format=200E+03 -2000000;format=2000000;format=2000000;format=2000000;format=2,000,000;format=2,000,000;format=2,000,000;format=2000000 ;format=2000000 ;format=2000000 ;format=2,000,000 ;format=2,000,000 ;format=2,000,000 ;format=2.000E+06;format=2E+06;format=2.0E+06;format=002E+06;format= 2E+06;format= 02E+06 -20000000;format=20000000;format=20000000;format=20000000;format=20,000,000;format=20,000,000;format=20,000,000;format=20000000 ;format=20000000 ;format=20000000 ;format=20,000,000 ;format=20,000,000 ;format=20,000,000 ;format=2.000E+07;format=2E+07;format=2.0E+07;format=020E+06;format= 20E+06;format= 20E+06 -200000000;format=200000000;format=200000000;format=200000000;format=200,000,000;format=200,000,000;format=200,000,000;format=200000000 ;format=200000000 ;format=200000000 ;format=200,000,000 ;format=200,000,000 ;format=200,000,000 ;format=2.000E+08;format=2E+08;format=2.0E+08;format=200E+06;format=200E+06;format=200E+06 +0.123456;format=000000;format= ;format= 0000;format=000,000;format= ;format= 0,000;format=000 1/8;format= 1/8;format= 00 1/8;format=0,000 1/8;format= 1/8;format= 00 1/8;format=1.235E-01;format=1.235E-01;format=1.235E-01;format=123E-03;format=123E-03;format=123E-03 +1.23456;format=000001;format= 1;format= 0001;format=000,001;format= 1;format= 0,001;format=001 2/9;format= 1 2/9;format= 01 2/9;format=0,001 2/9;format= 1 2/9;format= 01 2/9;format=1.235E+00;format=1.235E+00;format=1.235E+00;format=001E+00;format= 1E+00;format= 01E+00 +12.3456;format=000012;format= 12;format= 0012;format=000,012;format= 12;format= 0,012;format=012 1/3;format= 12 1/3;format= 12 1/3;format=0,012 1/3;format= 12 1/3;format= 12 1/3;format=1.235E+01;format=1.235E+01;format=1.235E+01;format=012E+00;format= 12E+00;format= 12E+00 +123.456;format=000123;format= 123;format= 0123;format=000,123;format= 123;format= 0,123;format=123 4/9;format=123 4/9;format=123 4/9;format=0,123 4/9;format= 123 4/9;format= 123 4/9;format=1.235E+02;format=1.235E+02;format=1.235E+02;format=123E+00;format=123E+00;format=123E+00 +1234.56;format=001235;format= 1235;format= 1235;format=001,235;format= 1,235;format= 1,235;format=1234 5/9;format=1234 5/9;format=1234 5/9;format=1,234 5/9;format=1,234 5/9;format=1,234 5/9;format=1.235E+03;format=1.235E+03;format=1.235E+03;format=001E+03;format= 1E+03;format= 01E+03 +12345.6;format=012346;format= 12346;format= 12346;format=012,346;format= 12,346;format= 12,346;format=12345 3/5;format=12345 3/5;format=12345 3/5;format=12,345 3/5;format=12,345 3/5;format=12,345 3/5;format=1.235E+04;format=1.235E+04;format=1.235E+04;format=012E+03;format= 12E+03;format= 12E+03 +123456;format=123456;format=123456;format=123456;format=123,456;format=123,456;format=123,456;format=123456 ;format=123456 ;format=123456 ;format=123,456 ;format=123,456 ;format=123,456 ;format=1.235E+05;format=1.235E+05;format=1.235E+05;format=123E+03;format=123E+03;format=123E+03 +1234560;format=1234560;format=1234560;format=1234560;format=1,234,560;format=1,234,560;format=1,234,560;format=1234560 ;format=1234560 ;format=1234560 ;format=1,234,560 ;format=1,234,560 ;format=1,234,560 ;format=1.235E+06;format=1.235E+06;format=1.235E+06;format=001E+06;format= 1E+06;format= 01E+06 +12345600;format=12345600;format=12345600;format=12345600;format=12,345,600;format=12,345,600;format=12,345,600;format=12345600 ;format=12345600 ;format=12345600 ;format=12,345,600 ;format=12,345,600 ;format=12,345,600 ;format=1.235E+07;format=1.235E+07;format=1.235E+07;format=012E+06;format= 12E+06;format= 12E+06 +-0.123456;format=000000;format= ;format= 0000;format=000,000;format= ;format= 0,000;-format=000 1/8;-format= 1/8;-format= 00 1/8;-format=0,000 1/8;-format= 1/8;-format= 00 1/8;-format=1.235E-01;-format=1.235E-01;-format=1.235E-01;-format=123E-03;-format=123E-03;-format=123E-03 +-1.23456;-format=000001;-format= 1;-format= 0001;-format=000,001;-format= 1;-format= 0,001;-format=001 2/9;-format= 1 2/9;-format= 01 2/9;-format=0,001 2/9;-format= 1 2/9;-format= 01 2/9;-format=1.235E+00;-format=1.235E+00;-format=1.235E+00;-format=001E+00;-format= 1E+00;-format= 01E+00 +-12.3456;-format=000012;-format= 12;-format= 0012;-format=000,012;-format= 12;-format= 0,012;-format=012 1/3;-format= 12 1/3;-format= 12 1/3;-format=0,012 1/3;-format= 12 1/3;-format= 12 1/3;-format=1.235E+01;-format=1.235E+01;-format=1.235E+01;-format=012E+00;-format= 12E+00;-format= 12E+00 +-123.456;-format=000123;-format= 123;-format= 0123;-format=000,123;-format= 123;-format= 0,123;-format=123 4/9;-format=123 4/9;-format=123 4/9;-format=0,123 4/9;-format= 123 4/9;-format= 123 4/9;-format=1.235E+02;-format=1.235E+02;-format=1.235E+02;-format=123E+00;-format=123E+00;-format=123E+00 +-1234.56;-format=001235;-format= 1235;-format= 1235;-format=001,235;-format= 1,235;-format= 1,235;-format=1234 5/9;-format=1234 5/9;-format=1234 5/9;-format=1,234 5/9;-format=1,234 5/9;-format=1,234 5/9;-format=1.235E+03;-format=1.235E+03;-format=1.235E+03;-format=001E+03;-format= 1E+03;-format= 01E+03 +-12345.6;-format=012346;-format= 12346;-format= 12346;-format=012,346;-format= 12,346;-format= 12,346;-format=12345 3/5;-format=12345 3/5;-format=12345 3/5;-format=12,345 3/5;-format=12,345 3/5;-format=12,345 3/5;-format=1.235E+04;-format=1.235E+04;-format=1.235E+04;-format=012E+03;-format= 12E+03;-format= 12E+03 +-123456;-format=123456;-format=123456;-format=123456;-format=123,456;-format=123,456;-format=123,456;-format=123456 ;-format=123456 ;-format=123456 ;-format=123,456 ;-format=123,456 ;-format=123,456 ;-format=1.235E+05;-format=1.235E+05;-format=1.235E+05;-format=123E+03;-format=123E+03;-format=123E+03 +-1234560;-format=1234560;-format=1234560;-format=1234560;-format=1,234,560;-format=1,234,560;-format=1,234,560;-format=1234560 ;-format=1234560 ;-format=1234560 ;-format=1,234,560 ;-format=1,234,560 ;-format=1,234,560 ;-format=1.235E+06;-format=1.235E+06;-format=1.235E+06;-format=001E+06;-format= 1E+06;-format= 01E+06 +-12345600;-format=12345600;-format=12345600;-format=12345600;-format=12,345,600;-format=12,345,600;-format=12,345,600;-format=12345600 ;-format=12345600 ;-format=12345600 ;-format=12,345,600 ;-format=12,345,600 ;-format=12,345,600 ;-format=1.235E+07;-format=1.235E+07;-format=1.235E+07;-format=012E+06;-format= 12E+06;-format= 12E+06 +0.2;format=000000;format= ;format= 0000;format=000,000;format= ;format= 0,000;format=000 1/5;format= 1/5;format= 00 1/5;format=0,000 1/5;format= 1/5;format= 00 1/5;format=2.000E-01;format=2E-01;format=2.0E-01;format=200E-03;format=200E-03;format=200E-03 +2;format=000002;format= 2;format= 0002;format=000,002;format= 2;format= 0,002;format=002 ;format= 2 ;format= 02 ;format=0,002 ;format= 2 ;format= 02 ;format=2.000E+00;format=2E+00;format=2.0E+00;format=002E+00;format= 2E+00;format= 02E+00 +20;format=000020;format= 20;format= 0020;format=000,020;format= 20;format= 0,020;format=020 ;format= 20 ;format= 20 ;format=0,020 ;format= 20 ;format= 20 ;format=2.000E+01;format=2E+01;format=2.0E+01;format=020E+00;format= 20E+00;format= 20E+00 +200;format=000200;format= 200;format= 0200;format=000,200;format= 200;format= 0,200;format=200 ;format=200 ;format=200 ;format=0,200 ;format= 200 ;format= 200 ;format=2.000E+02;format=2E+02;format=2.0E+02;format=200E+00;format=200E+00;format=200E+00 +2000;format=002000;format= 2000;format= 2000;format=002,000;format= 2,000;format= 2,000;format=2000 ;format=2000 ;format=2000 ;format=2,000 ;format=2,000 ;format=2,000 ;format=2.000E+03;format=2E+03;format=2.0E+03;format=002E+03;format= 2E+03;format= 02E+03 +20000;format=020000;format= 20000;format= 20000;format=020,000;format= 20,000;format= 20,000;format=20000 ;format=20000 ;format=20000 ;format=20,000 ;format=20,000 ;format=20,000 ;format=2.000E+04;format=2E+04;format=2.0E+04;format=020E+03;format= 20E+03;format= 20E+03 +200000;format=200000;format=200000;format=200000;format=200,000;format=200,000;format=200,000;format=200000 ;format=200000 ;format=200000 ;format=200,000 ;format=200,000 ;format=200,000 ;format=2.000E+05;format=2E+05;format=2.0E+05;format=200E+03;format=200E+03;format=200E+03 +2000000;format=2000000;format=2000000;format=2000000;format=2,000,000;format=2,000,000;format=2,000,000;format=2000000 ;format=2000000 ;format=2000000 ;format=2,000,000 ;format=2,000,000 ;format=2,000,000 ;format=2.000E+06;format=2E+06;format=2.0E+06;format=002E+06;format= 2E+06;format= 02E+06 +20000000;format=20000000;format=20000000;format=20000000;format=20,000,000;format=20,000,000;format=20,000,000;format=20000000 ;format=20000000 ;format=20000000 ;format=20,000,000 ;format=20,000,000 ;format=20,000,000 ;format=2.000E+07;format=2E+07;format=2.0E+07;format=020E+06;format= 20E+06;format= 20E+06 +200000000;format=200000000;format=200000000;format=200000000;format=200,000,000;format=200,000,000;format=200,000,000;format=200000000 ;format=200000000 ;format=200000000 ;format=200,000,000 ;format=200,000,000 ;format=200,000,000 ;format=2.000E+08;format=2E+08;format=2.0E+08;format=200E+06;format=200E+06;format=200E+06 ;;;;;;;;;;;;;;;;;; 0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18 diff --git a/sc/qa/unit/data/ods/formats.ods b/sc/qa/unit/data/ods/formats.ods Binary files differindex 27a0601f640e..7522ae980445 100644 --- a/sc/qa/unit/data/ods/formats.ods +++ b/sc/qa/unit/data/ods/formats.ods diff --git a/svl/qa/unit/svl.cxx b/svl/qa/unit/svl.cxx index 4fa56f4bccd4..d24729bc7f43 100644 --- a/svl/qa/unit/svl.cxx +++ b/svl/qa/unit/svl.cxx @@ -1368,6 +1368,8 @@ void Test::testUserDefinedNumberFormats() LanguageType eLang = LANGUAGE_ENGLISH_US; OUString sCode, sExpected; SvNumberFormatter aFormatter(m_xContext, eLang); + // tdf#158890 replace '?' with figure blank (0x2007) + constexpr OUString sBlankDigit = u" "_ustr; { // tdf#97835: suppress decimal separator sCode = "0.##\" m\""; sExpected = "12 m"; @@ -1461,7 +1463,7 @@ void Test::testUserDefinedNumberFormats() } { // tdf#102507: left alignment of denominator sCode = "# ?/???"; - sExpected = "3 1/2 "; + sExpected = OUString::Concat( u"3 1/2"_ustr ) + sBlankDigit + sBlankDigit; checkPreviewString(aFormatter, sCode, 3.5, eLang, sExpected); } { // tdf#100594: forced denominator @@ -1505,15 +1507,15 @@ void Test::testUserDefinedNumberFormats() sExpected = "15/ 12"; checkPreviewString(aFormatter, sCode, 1.2345667, eLang, sExpected); sCode = "# ?/ ???"; - sExpected = "3 1/ 2 "; + sExpected = OUString::Concat( u"3 1/ 2"_ustr ) + sBlankDigit + sBlankDigit; checkPreviewString(aFormatter, sCode, 3.5, eLang, sExpected); } { // Display 1.96 as 2 and not 1 1/1 sCode = "# ?/?"; - sExpected = "2 "; + sExpected = OUString::Concat( u"2 "_ustr ) + sBlankDigit + u" "_ustr + sBlankDigit; checkPreviewString(aFormatter, sCode, 1.96, eLang, sExpected); sCode = "# ?/ ?"; - sExpected = "2 "; + sExpected = OUString::Concat( u"2 "_ustr ) + sBlankDigit + u" "_ustr + sBlankDigit; checkPreviewString(aFormatter, sCode, 1.96, eLang, sExpected); sCode = "# #/#"; sExpected = "2"; @@ -1745,7 +1747,7 @@ void Test::testUserDefinedNumberFormats() } { // tdf#156449 Use '?' in exponent of scientific number sCode = "0.00E+?0"; - sExpected = "3.14E+ 0"; // before change it was "3.14E+00" + sExpected = OUString::Concat( u"3.14E+"_ustr ) + sBlankDigit + u"0"_ustr; // before change it was "3.14E+00" checkPreviewString(aFormatter, sCode, M_PI, eLang, sExpected); // There should be at least one '0' in exponent sCode = "0.00E+??"; @@ -1809,11 +1811,11 @@ void Test::testUserDefinedNumberFormats() } { // tdf#117575 treat thousand separator with '?' in integer part sCode = "\"Value= \"?,??0.00"; - sExpected = "Value= 3.14"; + sExpected = OUString::Concat( u"Value= "_ustr ) + sBlankDigit + u" "_ustr + sBlankDigit + sBlankDigit + u"3.14"_ustr; checkPreviewString(aFormatter, sCode, M_PI, LANGUAGE_ENGLISH_US, sExpected); - sExpected = "Value= 12.00"; + sExpected = OUString::Concat( u"Value= "_ustr ) + sBlankDigit + u" "_ustr + sBlankDigit + u"12.00"_ustr; checkPreviewString(aFormatter, sCode, 12, LANGUAGE_ENGLISH_US, sExpected); - sExpected = "Value= 123.00"; + sExpected = OUString::Concat( u"Value= "_ustr ) + sBlankDigit + u" 123.00"_ustr; checkPreviewString(aFormatter, sCode, 123, LANGUAGE_ENGLISH_US, sExpected); sExpected = "Value= 1,234.00"; checkPreviewString(aFormatter, sCode, 1234, LANGUAGE_ENGLISH_US, sExpected); diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx index b5c8757ef2e6..11071b5caa17 100644 --- a/svl/source/numbers/zformat.cxx +++ b/svl/source/numbers/zformat.cxx @@ -64,6 +64,8 @@ const double EXP_ABS_UPPER_BOUND = 1.0E15; // use exponential notation above th constexpr sal_Int32 kTimeSignificantRound = 7; // Round (date+)time at 7 decimals // (+5 of 86400 == 12 significant digits). + +const sal_Unicode cBlankDigit = 0x2007; // tdf#158890 use figure space for '?' } // namespace const double D_MAX_U_INT32 = double(0xffffffff); // 4294967295.0 @@ -4549,7 +4551,7 @@ bool SvNumberformat::ImpDecimalFill( OUStringBuffer& sStr, // number string } else if ( c == '?' ) { - sStr[ k ] = ' '; + sStr[ k ] = cBlankDigit; bFilled = true; } else if ( !bFilled ) // # @@ -4708,7 +4710,7 @@ bool SvNumberformat::ImpNumberFillWithThousands( OUStringBuffer& sBuff, // numb sBuff.insert(0, '0'); break; case '?': - sBuff.insert(0, ' '); + sBuff.insert(0, cBlankDigit); break; } } @@ -4848,7 +4850,7 @@ bool SvNumberformat::ImpNumberFill( OUStringBuffer& sBuff, // number string sBuff.insert(0, '0'); break; case '?': - sBuff.insert(nPosInsertBlank, ' '); + sBuff.insert(nPosInsertBlank, cBlankDigit); break; } } |