Fix infinite recursion bug in HACK-BRACKET-SPEC:

The LOOSE and RANGES lists weren't getting sorted in the fixpoint
comparison.
This commit is contained in:
sperber 2002-02-21 13:44:47 +00:00
parent be84d5ec47
commit 64cdef6fc7
1 changed files with 53 additions and 51 deletions

View File

@ -562,7 +562,6 @@
;; Repeat until stable:
(let ((loose (sort-list loose0 loose<=)) ; Sort loose chars and ranges.
(ranges (sort-list ranges0 range<)))
;; If ] opens or closes a range, shrink it out.
;; If - opens a range, shrink it out.
(receive (loose ranges)
@ -588,6 +587,9 @@
(append new-ranges0 new-ranges)))))
(values loose '())))
(let ((loose (sort-list loose loose<=)) ; Sort loose chars and ranges.
(ranges (sort-list ranges range<)))
(? ((or (not (equal? loose0 loose)) ; Loop if anything changed.
(not (equal? ranges0 ranges)))
(lp loose ranges end-hyphen?))
@ -622,4 +624,4 @@
(apply string-append
(map (lambda (r) (string (car r) #\- (cdr r)))
ranges))
"]")))))))
"]"))))))))