Skip to content

Commit 181f5f8

Browse files
committed
FIX: MOLD/FORM on zero percent value
Fixes: metaeducation/rebol-issues#2394
1 parent 2b1f174 commit 181f5f8

File tree

3 files changed

+43
-1
lines changed

3 files changed

+43
-1
lines changed

src/core/f-math.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@
260260
/* handle sign */
261261
if (sgn) *cp++ = '-';
262262

263-
if (trim == DEC_MOLD_PERCENT) e += 2;
263+
if (trim == DEC_MOLD_PERCENT && (digits_obtained > 1 || sig[0] != '0')) e += 2;
264264

265265
if ((e > decimal_digits) || (e <= -6)) {
266266
/* e-format */

src/tests/run-tests.r3

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ dt [ ;- delta time
1515
wrap load %units/map-test.r3
1616
wrap load %units/integer-test.r3
1717
wrap load %units/decimal-test.r3
18+
wrap load %units/percent-test.r3
1819
wrap load %units/money-test.r3
1920
wrap load %units/power-test.r3
2021
wrap load %units/mezz-crypt-test.r3

src/tests/units/percent-test.r3

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
Rebol [
2+
Title: "Rebol3 percent test script"
3+
Author: "Oldes, Peter W A Wood"
4+
File: %decimal-test.r3
5+
Tabs: 4
6+
Needs: [%../quick-test-module.r3]
7+
]
8+
9+
10+
~~~start-file~~~ "percent"
11+
12+
===start-group=== "form/mold"
13+
--test-- "form"
14+
--assert "0%" = form 0%
15+
--assert "1%" = form 1%
16+
--assert "10%" = form 10%
17+
--assert "0.1%" = form 0.1%
18+
--assert "100%" = form 100%
19+
20+
--assert "-0%" = form -0%
21+
--assert "-1%" = form -1%
22+
--assert "-10%" = form -10%
23+
--assert "-0.1%" = form -0.1%
24+
--assert "-100%" = form -100%
25+
26+
--test-- "mold"
27+
--assert "0%" = mold 0%
28+
--assert "1%" = mold 1%
29+
--assert "10%" = mold 10%
30+
--assert "0.1%" = mold 0.1%
31+
--assert "100%" = mold 100%
32+
33+
--assert "-0%" = mold -0%
34+
--assert "-1%" = mold -1%
35+
--assert "-10%" = mold -10%
36+
--assert "-0.1%" = mold -0.1%
37+
--assert "-100%" = mold -100%
38+
===end-group===
39+
40+
41+
~~~end-file~~~

0 commit comments

Comments
 (0)