bkyk8rc3zvpnsf5inmcqq4n3k98cv6hj-my-site-hyper-literate-git.test.suzanne.soy-0.0.1

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit c51b4cf52e1b42577a5f929efdeedfe765e21555
parent 6b7db8a6867f30857da123cad6206540eac613f9
Author: Eli Barzilay <eli@racket-lang.org>
Date:   Sat, 31 May 2008 16:26:44 +0000

force library order

svn: r10070

original commit: cf5b2dba5b667ed1315ba117fb08b83e17aef4d2

Diffstat:
Mcollects/scribble/basic.ss | 11++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/collects/scribble/basic.ss b/collects/scribble/basic.ss @@ -230,6 +230,15 @@ ;; parts first, then modules, then bindings, delayed means it's not ;; the last round, and #f means no desc (define desc-order '(part mod libs delayed #f)) + ;; this defines an imposed ordering for module names + (define lib-order '(#rx"^scheme(?:/|$)" #rx"^r.rs(?:/|$)" #rx"^lang(?:/|$)")) + (define (lib<? lib1 lib2) + (define (lib-level lib) + (let loop ([i 0] [rxs lib-order]) + (if (or (null? rxs) (regexp-match? (car rxs) lib)) + i (loop (add1 i) (cdr rxs))))) + (let ([l1 (lib-level lib1)] [l2 (lib-level lib2)]) + (if (= l1 l2) (string<? lib1 lib2) (< l1 l2)))) (define (compare-desc e1 e2) (let* ([d1 (get-desc e1)] [d2 (get-desc e2)] [t1 (car d1)] [t2 (car d2)]) @@ -238,7 +247,7 @@ [else (case t1 ; equal to t2 [(part) '=] ; will just compare tags [(mod) '=] ; the text fields are the names of the modules - [(libs) (compare-lists (cdr d1) (cdr d2) string<?)] + [(libs) (compare-lists (cdr d1) (cdr d2) lib<?)] [(delayed) '>] ; dosn't matter, will run again [(#f) '=])]))) (define (entry<? e1 e2)