From e1df9df735e0e2300e70494743327e141f729a24 Mon Sep 17 00:00:00 2001 From: Jon Harper Date: Sun, 26 Feb 2017 15:15:47 +0100 Subject: [PATCH] formatting: fix missing '+' for %+e with negative exponent --- basis/formatting/formatting-tests.factor | 1 + basis/formatting/formatting.factor | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/basis/formatting/formatting-tests.factor b/basis/formatting/formatting-tests.factor index 8433ac5fe7..0b1ff20a97 100755 --- a/basis/formatting/formatting-tests.factor +++ b/basis/formatting/formatting-tests.factor @@ -39,6 +39,7 @@ IN: formatting.tests { " +1.0E+01" } [ 10 "%+10.1E" sprintf ] unit-test { "-001.0E+01" } [ -10 "%+010.1E" sprintf ] unit-test { "+001.0E+01" } [ 10 "%+010.1E" sprintf ] unit-test +{ "+001.0E-01" } [ 0.1 "%+010.1E" sprintf ] unit-test { "ff" } [ 0xff "%x" sprintf ] unit-test { "FF" } [ 0xff "%X" sprintf ] unit-test diff --git a/basis/formatting/formatting.factor b/basis/formatting/formatting.factor index f98d1a04e3..5d811f7803 100644 --- a/basis/formatting/formatting.factor +++ b/basis/formatting/formatting.factor @@ -47,7 +47,7 @@ pad-align = ("-")? => [[ \ pad-tail \ pad-head ? ]] pad-width = ([0-9])* => [[ >digits ]] pad = pad-align pad-char pad-width => [[ >quotation dup first 0 = [ drop [ ] ] when ]] -sign_ = [+ ] => [[ '[ dup CHAR: - swap index [ _ prefix ] unless ] ]] +sign_ = [+ ] => [[ '[ dup first CHAR: - = [ _ prefix ] unless ] ]] sign = (sign_)? => [[ [ ] or ]] width_ = "." ([0-9])* => [[ second >digits '[ _ short head ] ]]