From 50725002be0baa6c942a63f16dd290a018407522 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Fri, 17 Apr 2015 17:50:00 -0700 Subject: [PATCH] formatting: support space prefix for numbers. --- basis/formatting/formatting-tests.factor | 2 ++ basis/formatting/formatting.factor | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/basis/formatting/formatting-tests.factor b/basis/formatting/formatting-tests.factor index a5a463ff04..92b28650cc 100755 --- a/basis/formatting/formatting-tests.factor +++ b/basis/formatting/formatting-tests.factor @@ -11,6 +11,8 @@ IN: formatting.tests [ "10" ] [ 10 "%d" sprintf ] unit-test [ "+10" ] [ 10 "%+d" sprintf ] unit-test [ "-10" ] [ -10 "%d" sprintf ] unit-test +[ " 23" ] [ 23 "% d" sprintf ] unit-test +[ "-23" ] [ -23 "% d" sprintf ] unit-test [ " -10" ] [ -10 "%5d" sprintf ] unit-test [ "-0010" ] [ -10 "%05d" sprintf ] unit-test [ "+0010" ] [ 10 "%+05d" sprintf ] unit-test diff --git a/basis/formatting/formatting.factor b/basis/formatting/formatting.factor index aa7d6c0f80..69d8f544e2 100644 --- a/basis/formatting/formatting.factor +++ b/basis/formatting/formatting.factor @@ -48,7 +48,8 @@ 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 [ "+" prepend ] unless ] [ ] ? ]] +sign_ = [+ ] => [[ '[ dup CHAR: - swap index [ _ prefix ] unless ] ]] +sign = (sign_)? => [[ [ ] or ]] width_ = "." ([0-9])* => [[ second >digits '[ _ short head ] ]] width = (width_)? => [[ [ ] or ]]