Adds string-buf to display and display-lines

This commit is contained in:
sloum 2021-08-11 01:04:46 +00:00
parent 7f3ec19674
commit d312f24af0
2 changed files with 18 additions and 4 deletions

20
lib.go
View File

@ -745,10 +745,7 @@ var stdLibrary = vars{
}
return true
case *IOHandle:
if v.Open {
return true
}
return false
return v.Open {
case []expression:
if len(v) > 0 {
return true
@ -805,6 +802,13 @@ var stdLibrary = vars{
switch val := a[i].(type) {
case string:
out.WriteString(val)
case *IOHandle:
buf, ok := i.Obj.(*strings.Builder)
if ok {
out.WriteString(buf.String())
} else {
out.WriteString(String(val))
}
default:
out.WriteString(String(val))
}
@ -819,6 +823,14 @@ var stdLibrary = vars{
case string:
out.WriteString(val)
out.WriteRune('\n')
case *IOHandle:
buf, ok := i.Obj.(*strings.Builder)
if ok {
out.WriteString(buf.String())
} else {
out.WriteString(String(val))
}
out.WriteRune('\n')
default:
out.WriteString(String(val))
out.WriteRune('\n')

2
test Normal file
View File

@ -0,0 +1,2 @@
slope -run '(define a 0)(define show-paths (lambda
(L)(if (null? L)(exit 1)(begin (set! a (+ a 1))(display a " " (car L) "\n)(show-paths (cdr L))))))(show-paths (string->list (env "PATH") ":"))'