1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-30 06:50:31 +02:00

* calling.scm (excursion-function-syntax): Use a sequence of

set!'s, not a single multi-variable set!; we removed support for
that syntax a long time ago.  (Thanks to Shuji Narazaki.)
This commit is contained in:
Jim Blandy 1998-10-14 08:39:51 +00:00
parent cd6c612a27
commit 63da7567af

View file

@ -133,15 +133,18 @@
(swap-fn-name (gensym 'swap)) (swap-fn-name (gensym 'swap))
(thunk-name (gensym 'thunk))) (thunk-name (gensym 'thunk)))
`(lambda (,thunk-name) `(lambda (,thunk-name)
(letrec ((,tmp-var-name #f) (letrec ((,tmp-var-name #f)
(,swap-fn-name (,swap-fn-name
(lambda () ,@ (map (lambda (n sn) `(set! ,tmp-var-name ,n ,n ,sn ,sn ,tmp-var-name)) (lambda () ,@ (map (lambda (n sn)
vars saved-value-names))) `(begin (set! ,tmp-var-name ,n)
,@ (map (lambda (sn n) `(,sn ,n)) saved-value-names vars)) (set! ,n ,sn)
(dynamic-wind (set! ,sn ,tmp-var-name)))
,swap-fn-name vars saved-value-names)))
,thunk-name ,@ (map (lambda (sn n) `(,sn ,n)) saved-value-names vars))
,swap-fn-name))))) (dynamic-wind
,swap-fn-name
,thunk-name
,swap-fn-name)))))
(define (getter-and-setter-syntax vars) (define (getter-and-setter-syntax vars)