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