fix modcollapse in some string planet path cases

svn: r10175
This commit is contained in:
Matthew Flatt 2008-06-06 15:35:06 +00:00
parent 31bb298e67
commit 762e04ba60

View File

@ -162,21 +162,26 @@
,@(if (null? (cdr pkg+vers)) ,@(if (null? (cdr pkg+vers))
null null
`(,(string->number (cadr pkg+vers)) `(,(string->number (cadr pkg+vers))
,(let ([vers (caddr pkg+vers)]) . ,(if (null? (cddr pkg+vers))
(cond null
[(regexp-match? #rx"<=" vers) (list
`(- ,(string->number (substring vers 2)))] (let ([vers (caddr pkg+vers)])
[(regexp-match? #rx">=" vers) (cond
`(+ ,(string->number (substring vers 2)))] [(regexp-match? #rx"<=" vers)
[(regexp-match? #rx"=" vers) `(- ,(string->number (substring vers 2)))]
(string->number (substring vers 1))] [(regexp-match? #rx">=" vers)
[(regexp-match #rx"(.*)-(.*)" vers) `(+ ,(string->number (substring vers 2)))]
=> (lambda (m) [(regexp-match? #rx"=" vers)
`(,(string->number (cadr m)) (string->number (substring vers 1))]
,(string->number (caddr m))))] [(regexp-match #rx"(.*)-(.*)" vers)
[else (error 'collapse-module-path => (lambda (m)
"confused when normalizing planet path: ~e" `(,(string->number (cadr m))
s)]))))) ,(string->number (caddr m))))]
[(string->number vers)
=> (lambda (n) n)]
[else (error 'collapse-module-path
"confused when normalizing planet path: ~e"
s)])))))))
,@(if (null? path) ,@(if (null? path)
null null
(reverse (cdr (reverse path)))))))] (reverse (cdr (reverse path)))))))]