// printValues neatly prints the values returned from execution, followed by a newline. // It also handles the ')debug types' output. // The return value reports whether it printed anything. func printValues(conf *config.Config, writer io.Writer, values []value.Value) bool { if len(values) == 0 { return false } if conf.Debug("types") { for i, v := range values { if i > 0 { fmt.Fprint(writer, ",") } fmt.Fprintf(writer, "%T", v) } fmt.Fprintln(writer) } printed := false for _, v := range values { if _, ok := v.(parse.Assignment); ok { continue } s := v.Sprint(conf) if printed && len(s) > 0 && s[len(s)-1] != '\n' { fmt.Fprint(writer, " ") } fmt.Fprint(writer, s) printed = true } if printed { fmt.Fprintln(writer) } return printed }
// printValues neatly prints the values returned from execution, followed by a newline. // It also handles the ')debug types' output. func printValues(conf *config.Config, writer io.Writer, values []value.Value) { if len(values) == 0 { return } if conf.Debug("types") { for i, v := range values { if i > 0 { fmt.Fprint(writer, ",") } fmt.Fprintf(writer, "%T", v) } fmt.Fprintln(writer) } for i, v := range values { s := v.Sprint(conf) if i > 0 && len(s) > 0 && s[len(s)-1] != '\n' { fmt.Fprint(writer, " ") } fmt.Fprint(writer, s) } fmt.Fprintln(writer) }