diff --git a/basis/interpolate/interpolate-docs.factor b/basis/interpolate/interpolate-docs.factor index 768b2e9025..1f731ec058 100644 --- a/basis/interpolate/interpolate-docs.factor +++ b/basis/interpolate/interpolate-docs.factor @@ -4,10 +4,11 @@ IN: interpolate HELP: interpolate { $values { "str" string } } { $description "String interpolation using named variables and/or stack arguments, writing to the " { $link output-stream } "." } +{ $notes "Stack arguments are numbered from the top of the stack." } { $examples { $example "USING: interpolate ;" - "\"Bob\" \"Alice\" \"Hi ${0}, it's ${1}.\" interpolate" + "\"Bob\" \"Alice\" \"Hi ${1}, it's ${0}.\" interpolate" "Hi Bob, it's Alice." } { $example @@ -19,6 +20,7 @@ HELP: interpolate HELP: interpolate>string { $values { "str" string } { "newstr" string } } -{ $description "String interpolation using named variables and/or stack arguments, captured as a " { $link string } "." } ; +{ $description "String interpolation using named variables and/or stack arguments, captured as a " { $link string } "." } +{ $notes "Stack arguments are numbered from the top of the stack." } ; { interpolate interpolate>string } related-words diff --git a/basis/interpolate/interpolate-tests.factor b/basis/interpolate/interpolate-tests.factor index d456ce0a5c..b694878427 100644 --- a/basis/interpolate/interpolate-tests.factor +++ b/basis/interpolate/interpolate-tests.factor @@ -3,9 +3,9 @@ USING: interpolate io.streams.string namespaces tools.test locals ; IN: interpolate.tests -{ "A B" } [ "A" "B" "${0} ${1}" interpolate>string ] unit-test -{ "B A" } [ "A" "B" "${1} ${0}" interpolate>string ] unit-test -{ "C A" } [ "A" "B" "C" "${2} ${0}" interpolate>string ] unit-test +{ "A B" } [ "A" "B" "${1} ${0}" interpolate>string ] unit-test +{ "B A" } [ "A" "B" "${0} ${1}" interpolate>string ] unit-test +{ "C A" } [ "A" "B" "C" "${0} ${2}" interpolate>string ] unit-test { "Hello, Jane." } [ "Jane" "name" set diff --git a/basis/interpolate/interpolate.factor b/basis/interpolate/interpolate.factor index ccfcf6c7f2..d8c7c96589 100644 --- a/basis/interpolate/interpolate.factor +++ b/basis/interpolate/interpolate.factor @@ -44,7 +44,7 @@ TUPLE: stack-var n ; name>> quot call '[ _ @ present write ] ] [ dup stack-var? [ - n>> vars swap - 1 + '[ _ npick present write ] + n>> 1 + '[ _ npick present write ] ] [ '[ _ write ] ] if