even better code
svn: r4937
This commit is contained in:
parent
a0243b4616
commit
ed58b58c90
|
@ -456,19 +456,15 @@
|
||||||
pfx)]
|
pfx)]
|
||||||
[(subq) (lambda xs (regexp-quote (apply sub xs)))])
|
[(subq) (lambda xs (regexp-quote (apply sub xs)))])
|
||||||
(let loop ([i 0] [ps (regexp-match-positions* item glob)] [r '()])
|
(let loop ([i 0] [ps (regexp-match-positions* item glob)] [r '()])
|
||||||
(cond [(null? ps)
|
(if (null? ps)
|
||||||
(let ([r (apply app (reverse! (cons (subq glob i) r)))])
|
(let ([r (apply app (reverse! (cons (subq glob i) r)))])
|
||||||
(rx (app pfx r sfx)))]
|
(rx (app pfx r sfx)))
|
||||||
[(= 1 (- (cdar ps) (caar ps)))
|
(loop (cdar ps) (cdr ps)
|
||||||
(loop (cdar ps)
|
;; length=1 is only for `*' or `?'
|
||||||
(cdr ps)
|
(cons (if (= 1 (- (cdar ps) (caar ps)))
|
||||||
(cons (if (equal? star (ref glob (caar ps))) any one)
|
(if (equal? star (ref glob (caar ps))) any one)
|
||||||
|
(sub glob (caar ps) (cdar ps)))
|
||||||
(if (= i (caar ps))
|
(if (= i (caar ps))
|
||||||
r (cons (subq glob i (caar ps)) r))))]
|
r (cons (subq glob i (caar ps)) r))))))))))
|
||||||
[else (loop (cdar ps)
|
|
||||||
(cdr ps)
|
|
||||||
(cons (sub glob (caar ps) (cdar ps))
|
|
||||||
(if (= i (caar ps))
|
|
||||||
r (cons (subq glob i (caar ps)) r))))]))))))
|
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user