fixing bug in char-up/downcase bsearch

This commit is contained in:
Alex Shinn 2017-03-26 22:52:34 +09:00
parent c08aa4e93b
commit 30486cb6b6
2 changed files with 5 additions and 2 deletions

View file

@ -3,8 +3,7 @@
(import (scheme base)) (import (scheme base))
(cond-expand (cond-expand
(full-unicode (full-unicode
(import (scheme write) (import (chibi char-set full)
(chibi char-set full)
(chibi char-set base) (chibi char-set base)
(chibi iset base)) (chibi iset base))
(include "char/full.scm") (include "char/full.scm")

View file

@ -20,6 +20,8 @@
(integer->char (vector-ref char-downcase-map (+ mid 1)))) (integer->char (vector-ref char-downcase-map (+ mid 1))))
((< n m) ((< n m)
(lp lo (- mid 2))) (lp lo (- mid 2)))
((= (+ mid 2) hi)
ch)
(else (else
(lp (+ mid 2) hi))))))) (lp (+ mid 2) hi)))))))
((iset-contains? (caar ls) n) ((iset-contains? (caar ls) n)
@ -43,6 +45,8 @@
(integer->char (vector-ref char-upcase-map (+ mid 1)))) (integer->char (vector-ref char-upcase-map (+ mid 1))))
((< n m) ((< n m)
(lp lo (- mid 2))) (lp lo (- mid 2)))
((= (+ mid 2) hi)
ch)
(else (else
(lp (+ mid 2) hi))))))) (lp (+ mid 2) hi)))))))
((iset-contains? (caar ls) (- n (cdar ls))) ((iset-contains? (caar ls) (- n (cdar ls)))