diff options
Diffstat (limited to 'guile/starlet/playback.scm')
-rw-r--r-- | guile/starlet/playback.scm | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/guile/starlet/playback.scm b/guile/starlet/playback.scm index 5a3c2a1..c340c52 100644 --- a/guile/starlet/playback.scm +++ b/guile/starlet/playback.scm @@ -302,9 +302,24 @@ (define (match-fix-attr attr-el fix attr) - (if (fixture? attr-el) - (eq? attr-el fix) - (eqv? attr-el (cons fix attr)))) + (cond + + ((fixture? attr-el) + (eq? attr-el fix)) + + ((and (pair? attr-el) + (fixture? (car attr-el)) + (fixture-attribute? (cdr attr-el))) + (and (eq? (car attr-el) fix) + (eq? (cdr attr-el) attr))) + + ((and (pair? attr-el) + (fixture? (car attr-el)) + (symbol? (cdr attr-el))) + (and (eq? (car attr-el) fix) + (eq? (cdr attr-el) (get-attr-name attr)))) + + (else #f))) (define (in-cue-part? cue-part fix attr) |