summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--basic/qa/vba_tests/format.vb3
-rw-r--r--sc/qa/unit/data/contentCSV/numberFormat.csv2
-rw-r--r--sc/qa/unit/data/contentCSV/testNumberFormats.csv56
-rw-r--r--sc/qa/unit/data/ods/formats.odsbin11919 -> 18545 bytes
-rw-r--r--svl/qa/unit/svl.cxx18
-rw-r--r--svl/source/numbers/zformat.cxx8
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
index 27a0601f640e..7522ae980445 100644
--- a/sc/qa/unit/data/ods/formats.ods
+++ b/sc/qa/unit/data/ods/formats.ods
Binary files differ
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;
}
}