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.23" ] [ 1.23456789 "%6.2f" sprintf ] unit-test
|
||||
|
||||
{ "foo: 1 bar: 2" } [ { 1 2 3 } "foo: %d bar: %s" vsprintf ] unit-test
|
||||
|
||||
os windows? [
|
||||
[ "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 )
|
||||
[ 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
|
||||
|
||||
: pad-00 ( n -- string ) number>string 2 CHAR: 0 pad-head ; inline
|
||||
|
|
Loading…
Reference in New Issue