fix syntax error check in 'bitmap'

closes PR 14763
This commit is contained in:
Robby Findler 2014-10-04 09:28:29 -05:00
parent c89434d56b
commit d46b097bc8

View File

@ -1356,23 +1356,23 @@
(eq? (car arg) 'planet)) (eq? (car arg) 'planet))
(raise-syntax-error 'bitmap "planet paths not yet supported" stx)] (raise-syntax-error 'bitmap "planet paths not yet supported" stx)]
[(symbol? arg) [(symbol? arg)
(let ([pieces (regexp-split #rx"/" (symbol->string arg))]) (define pieces (regexp-split #rx"/" (symbol->string arg)))
(cond (cond
[(null? pieces) [(or (null? pieces) (null? (cdr pieces)))
(raise-syntax-error 'bitmap "expected a path with a / in it" stx)] (raise-syntax-error 'bitmap "expected a path with a / in it" stx)]
[else [else
(define fn (last pieces)) (define fn (last pieces))
(define colls (reverse (cdr (reverse pieces)))) (define colls (reverse (cdr (reverse pieces))))
(define candidate (define candidate
(apply collection-file-path fn colls (apply collection-file-path fn colls
#:fail #:fail
(λ (msg) (raise-syntax-error 'bitmap msg stx)))) (λ (msg) (raise-syntax-error 'bitmap msg stx))))
(unless (file-exists? candidate) (unless (file-exists? candidate)
(raise-syntax-error 'bitmap (raise-syntax-error 'bitmap
(format "could not find ~s, expected it to be in ~a" (format "could not find ~s, expected it to be in ~a"
arg candidate) arg candidate)
stx)) stx))
(cons fn colls)]))] (cons fn colls)])]
[(string? arg) [(string? arg)
(path->complete-path (path->complete-path
arg arg