diff --git a/scsh/scsh.scm b/scsh/scsh.scm index 5d42e02..3b34e77 100644 --- a/scsh/scsh.scm +++ b/scsh/scsh.scm @@ -309,15 +309,18 @@ (define (setenv var val) (let* ((env (thread-read-env)) - (alist (alist-update - var - val - (fold cons '() (env:alist env))))) + (alist (if val + (alist-update + var + val + (env:alist env)) + (alist-delete + var + (env:alist env))))) (thread-set-env! (make-env #f - alist - )))) + alist)))) (define (alist->env alist) (thread-set-env!