1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-29 22:40:34 +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))
(thunk-name (gensym 'thunk)))
`(lambda (,thunk-name)
(letrec ((,tmp-var-name #f)
(,swap-fn-name
(lambda () ,@ (map (lambda (n sn) `(set! ,tmp-var-name ,n ,n ,sn ,sn ,tmp-var-name))
vars saved-value-names)))
,@ (map (lambda (sn n) `(,sn ,n)) saved-value-names vars))
(dynamic-wind
,swap-fn-name
,thunk-name
,swap-fn-name)))))
(letrec ((,tmp-var-name #f)
(,swap-fn-name
(lambda () ,@ (map (lambda (n sn)
`(begin (set! ,tmp-var-name ,n)
(set! ,n ,sn)
(set! ,sn ,tmp-var-name)))
vars saved-value-names)))
,@ (map (lambda (sn n) `(,sn ,n)) saved-value-names vars))
(dynamic-wind
,swap-fn-name
,thunk-name
,swap-fn-name)))))
(define (getter-and-setter-syntax vars)