devops: Fix version-comparator.
authorMatt Birkholz <matt@birchwood-abbey.net>
Fri, 21 Jul 2017 01:02:08 +0000 (18:02 -0700)
committerMatt Birkholz <matt@birchwood-abbey.net>
Fri, 21 Jul 2017 04:53:55 +0000 (21:53 -0700)
src/devops/devops.scm

index cd46a03ec904f8624e08003a366c2df832942888..cceddbd03067243f47c4b2e70dacd5da15379d0d 100644 (file)
@@ -707,20 +707,21 @@ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
 (define (version-comparator < >)
   (named-lambda (version-compare v1 v2)
-    (cond ((eq? #f v1)
-          #t)
-         ((eq? #f v2)
-          #f)
-         ((null? v2)
-          #f)
-         ((null? v1) ;; and (pair? v2)
-          #t)
-         ((< (car v1) (car v2))
-          #t)
-         ((> (car v1) (car v2))
-          #f)
-         (else
-          (version<? (cdr v1) (cdr v2))))))
+    (let loop ((v1 v1) (v2 v2))
+      (cond ((eq? #f v1)
+            #t)
+           ((eq? #f v2)
+            #f)
+           ((null? v2)
+            #f)
+           ((null? v1) ;; and (pair? v2)
+            #t)
+           ((< (car v1) (car v2))
+            #t)
+           ((> (car v1) (car v2))
+            #f)
+           (else
+            (loop (cdr v1) (cdr v2)))))))
 
 (define (->version string)
   (and string