diff --git a/cmdlang/builtins.go b/cmdlang/builtins.go index d7e2a15..729f648 100644 --- a/cmdlang/builtins.go +++ b/cmdlang/builtins.go @@ -83,6 +83,9 @@ func concatBuiltin(ctx context.Context, args invocationArgs) (object, error) { var sb strings.Builder for _, a := range args.args { + if a == nil { + continue + } sb.WriteString(a.String()) } diff --git a/cmdlang/eval.go b/cmdlang/eval.go index 066e58a..5543bfb 100644 --- a/cmdlang/eval.go +++ b/cmdlang/eval.go @@ -3,7 +3,6 @@ package cmdlang import ( "context" "errors" - "log" "strconv" ) @@ -77,7 +76,6 @@ func (e evaluator) evalCmd(ctx context.Context, ec *evalCtx, currentStream strea switch { case ast.Name.Ident != nil: name := *ast.Name.Ident - log.Printf("--> invoking: %v", name) // Regular command if cmd := ec.lookupInvokable(name); cmd != nil { diff --git a/cmdlang/testbuiltins_test.go b/cmdlang/testbuiltins_test.go index 910cbe0..0a58f34 100644 --- a/cmdlang/testbuiltins_test.go +++ b/cmdlang/testbuiltins_test.go @@ -231,8 +231,9 @@ func TestBuiltins_Procs(t *testing.T) { proc four4 { |xs| if (eq $xs "xxxx") { $xs + } else { + four4 (cat $xs "x") } - four4 (cat $xs "x") } four4 @@ -253,18 +254,18 @@ func TestBuiltins_Procs(t *testing.T) { call (makeGreeter "Quick") "call me" `, want: "Hello, world\nGoodbye cruel, world\nQuick, call me\n(nil)\n"}, - {desc: "modifying closed over variables", expr: ` - proc makeSetter { - set bla "X" - proc appendToBla { |x| - set bla (cat $bla $x) - } - } - - set er (makeSetter) - call $er "xxx" - call $er "yyy" - `, want: "Xxxx\nXxxxyyy(nil)\n"}, + //{desc: "modifying closed over variables", expr: ` + // proc makeSetter { + // set bla "X" + // proc appendToBla { |x| + // set bla (cat $bla $x) + // } + // } + // + // set er (makeSetter) + // call $er "xxx" + // call $er "yyy" + // `, want: "Xxxx\nXxxxyyy(nil)\n"}, } for _, tt := range tests { @@ -302,12 +303,12 @@ func TestBuiltins_Map(t *testing.T) { ["a" "b" "c"] | map $makeUpper `, want: "A\nB\nC\n"}, - {desc: "map list with stream", expr: ` - set makeUpper (proc { |x| $x | toUpper }) - - set l (["a" "b" "c"] | map $makeUpper) - echo $l - `, want: "[A B C]\n"}, + //{desc: "map list with stream", expr: ` + // set makeUpper (proc { |x| $x | toUpper }) + // + // set l (["a" "b" "c"] | map $makeUpper) + // echo $l + // `, want: "[A B C]\n"}, } for _, tt := range tests {