From 762e04ba602f32f39a070316a8c6ed7c96354071 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 6 Jun 2008 15:35:06 +0000 Subject: [PATCH] fix modcollapse in some string planet path cases svn: r10175 --- collects/syntax/modcollapse.ss | 35 +++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/collects/syntax/modcollapse.ss b/collects/syntax/modcollapse.ss index 36e2dca384..4d9335f676 100644 --- a/collects/syntax/modcollapse.ss +++ b/collects/syntax/modcollapse.ss @@ -162,21 +162,26 @@ ,@(if (null? (cdr pkg+vers)) null `(,(string->number (cadr pkg+vers)) - ,(let ([vers (caddr pkg+vers)]) - (cond - [(regexp-match? #rx"<=" vers) - `(- ,(string->number (substring vers 2)))] - [(regexp-match? #rx">=" vers) - `(+ ,(string->number (substring vers 2)))] - [(regexp-match? #rx"=" vers) - (string->number (substring vers 1))] - [(regexp-match #rx"(.*)-(.*)" vers) - => (lambda (m) - `(,(string->number (cadr m)) - ,(string->number (caddr m))))] - [else (error 'collapse-module-path - "confused when normalizing planet path: ~e" - s)]))))) + . ,(if (null? (cddr pkg+vers)) + null + (list + (let ([vers (caddr pkg+vers)]) + (cond + [(regexp-match? #rx"<=" vers) + `(- ,(string->number (substring vers 2)))] + [(regexp-match? #rx">=" vers) + `(+ ,(string->number (substring vers 2)))] + [(regexp-match? #rx"=" vers) + (string->number (substring vers 1))] + [(regexp-match #rx"(.*)-(.*)" vers) + => (lambda (m) + `(,(string->number (cadr m)) + ,(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) null (reverse (cdr (reverse path)))))))]