formatting: adding vprintf by request.
parent
40fcee3f16
commit
f29aac24bb
|
@ -21,6 +21,8 @@ IN: formatting.tests
|
||||||
[ "1.2346" ] [ 1.23456789 "%.4f" sprintf ] unit-test
|
[ "1.2346" ] [ 1.23456789 "%.4f" sprintf ] unit-test
|
||||||
[ " 1.23" ] [ 1.23456789 "%6.2f" sprintf ] unit-test
|
[ " 1.23" ] [ 1.23456789 "%6.2f" sprintf ] unit-test
|
||||||
|
|
||||||
|
{ "foo: 1 bar: 2" } [ { 1 2 3 } "foo: %d bar: %s" vsprintf ] unit-test
|
||||||
|
|
||||||
os windows? [
|
os windows? [
|
||||||
[ "1.234000e+008" ] [ 123400000 "%e" sprintf ] unit-test
|
[ "1.234000e+008" ] [ 123400000 "%e" sprintf ] unit-test
|
||||||
[ "-1.234000e+008" ] [ -123400000 "%e" sprintf ] unit-test
|
[ "-1.234000e+008" ] [ -123400000 "%e" sprintf ] unit-test
|
||||||
|
|
|
@ -98,6 +98,15 @@ MACRO: printf ( format-string -- )
|
||||||
: sprintf ( format-string -- result )
|
: sprintf ( format-string -- result )
|
||||||
[ printf ] with-string-writer ; inline
|
[ printf ] with-string-writer ; inline
|
||||||
|
|
||||||
|
: vprintf ( seq format-string -- )
|
||||||
|
parse-printf reverse! [
|
||||||
|
first dup string?
|
||||||
|
[ '[ _ write ] ] [ '[ unclip-slice @ write ] ] if
|
||||||
|
] map concat call( x -- x ) drop ;
|
||||||
|
|
||||||
|
: vsprintf ( seq format-string -- result )
|
||||||
|
[ vprintf ] with-string-writer ; inline
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
: pad-00 ( n -- string ) number>string 2 CHAR: 0 pad-head ; inline
|
: pad-00 ( n -- string ) number>string 2 CHAR: 0 pad-head ; inline
|
||||||
|
|
Loading…
Reference in New Issue