From e4a66b0d1165be7d6c90cd9c27af275aad55f179 Mon Sep 17 00:00:00 2001 From: Eli Barzilay Date: Tue, 15 Jul 2008 19:15:45 +0000 Subject: [PATCH] this code now uses version/utils svn: r10780 --- collects/dynext/filename-version.ss | 32 +++++++++-------------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/collects/dynext/filename-version.ss b/collects/dynext/filename-version.ss index 4e3def5a06..1639685e85 100644 --- a/collects/dynext/filename-version.ss +++ b/collects/dynext/filename-version.ss @@ -1,30 +1,18 @@ #lang scheme/base ;; This module provides the string that should replace xxxxxxx's in -;; file names. The version number is combined to a single integer, -;; and converted to a string in base 36. The version is X.Y.Z.W, with -;; the general restrictions that Y<100 and Z<1000. This code further -;; assumes X<200, W<1000 and will throw an error if not -- if that -;; happens it's time to change the naming scheme or add more x's. +;; file names. The version number is combined into a single integer, +;; and converted to a string in base 36. (provide filename-version-part) (require version/utils) -(define (num->str n digits) - (let ([radix (string-length digits)]) - (let loop ([n n] [r '()]) - (if (<= n 0) - (list->string r) - (loop (quotient n radix) - (cons (string-ref digits (modulo n radix)) r)))))) - (define filename-version-part - (let loop ([n 0] - [l (version->list (version))] - [radix '(200 100 1000 1000)]) - (cond [(null? l) - (let ([s (num->str n "0123456789abcdefghijklmnopqrstuvwxyz")]) - (string-append (make-string (- 7 (string-length s)) #\_) s))] - [(not (< -1 (car l) (car radix))) - (error 'version "internal error, see dynext/filename-version.ss")] - [else (loop (+ (car l) (* (car radix) n)) (cdr l) (cdr radix))]))) + (let* ([ver (version->integer (version))] + [digits "0123456789abcdefghijklmnopqrstuvwxyz"] + [radix (string-length digits)]) + (let loop ([n ver] [r '()]) + (cond [(> n 0) (loop (quotient n radix) + (cons (string-ref digits (modulo n radix)) r))] + [(< (length r) 7) (loop n (cons #\_ r))] + [else (list->string r)]))))