summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/d5/tengo/stdlib/fmt.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/d5/tengo/stdlib/fmt.go')
-rw-r--r--vendor/github.com/d5/tengo/stdlib/fmt.go20
1 files changed, 7 insertions, 13 deletions
diff --git a/vendor/github.com/d5/tengo/stdlib/fmt.go b/vendor/github.com/d5/tengo/stdlib/fmt.go
index 9c75fc33..b8f64278 100644
--- a/vendor/github.com/d5/tengo/stdlib/fmt.go
+++ b/vendor/github.com/d5/tengo/stdlib/fmt.go
@@ -44,12 +44,12 @@ func fmtPrintf(args ...objects.Object) (ret objects.Object, err error) {
return nil, nil
}
- formatArgs := make([]interface{}, numArgs-1, numArgs-1)
- for idx, arg := range args[1:] {
- formatArgs[idx] = objects.ToInterface(arg)
+ s, err := objects.Format(format.Value, args[1:]...)
+ if err != nil {
+ return nil, err
}
- fmt.Printf(format.Value, formatArgs...)
+ fmt.Print(s)
return nil, nil
}
@@ -84,15 +84,9 @@ func fmtSprintf(args ...objects.Object) (ret objects.Object, err error) {
return format, nil // okay to return 'format' directly as String is immutable
}
- formatArgs := make([]interface{}, numArgs-1, numArgs-1)
- for idx, arg := range args[1:] {
- formatArgs[idx] = objects.ToInterface(arg)
- }
-
- s := fmt.Sprintf(format.Value, formatArgs...)
-
- if len(s) > tengo.MaxStringLen {
- return nil, objects.ErrStringLimit
+ s, err := objects.Format(format.Value, args[1:]...)
+ if err != nil {
+ return nil, err
}
return &objects.String{Value: s}, nil