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

* syncase.scm (gensym): fix bad let.

This commit is contained in:
Rob Browning 2002-03-04 14:53:35 +00:00
parent 2d17159f2e
commit 4d1c1da728

View file

@ -170,22 +170,23 @@
(let ((counter 0) (let ((counter 0)
(symlock (make-mutex))) (symlock (make-mutex)))
(lambda (. rest) (lambda (. rest)
(let ((counter-val #f))
(lock-mutex symlock) (lock-mutex symlock)
(let* ((val (number->string counter)) (set! counter-val counter)
(result
(set! counter (+ counter 1)) (set! counter (+ counter 1))
(unlock-mutex symlock)
(let* ((valstr (number->string counter-val)))
(cond (cond
((null? rest) ((null? rest)
(string->symbol (string-append "syntmp-" val))) (string->symbol (string-append "syntmp-" valstr)))
((null? (cdr rest)) ((null? (cdr rest))
(string->symbol (string-append "syntmp-" (car rest) "-" val))) (string->symbol (string-append "syntmp-" (car rest) "-" valstr)))
(else (else
'bad-args))))
(unlock-mutex symlock)
(if (eq? result 'bad-args) (if (eq? result 'bad-args)
(error (error
"syncase's gensym called with the wrong number of arguments") (string-append
result))))) "syncase's gensym expected 0 or 1 arguments, got "
(length rest)))))))))))
;;; Load the preprocessed code ;;; Load the preprocessed code