From 4a7620c882996898829a0ff6f6889ba606a3de9b Mon Sep 17 00:00:00 2001 From: mainzelm Date: Sun, 28 Apr 2002 18:47:00 +0000 Subject: [PATCH] Fixed bug in setenv: #f was not handled as deleting the variable. Also removed superfluous list-copying before call to alist-update as this has no side effects. --- scsh/scsh.scm | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) 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!