diff --git a/lib/unicode_normalize/normalize.rb b/lib/unicode_normalize/normalize.rb index 8bc8c6f607..fa18407a6c 100644 --- a/lib/unicode_normalize/normalize.rb +++ b/lib/unicode_normalize/normalize.rb @@ -43,11 +43,11 @@ module UnicodeNormalize ## Hangul Algorithm def self.hangul_decomp_one(target) - sIndex = target.ord - SBASE - return target if sIndex < 0 || sIndex >= SCOUNT - l = LBASE + sIndex / NCOUNT - v = VBASE + (sIndex % NCOUNT) / TCOUNT - t = TBASE + sIndex % TCOUNT + index = target.ord - SBASE + return target if index < 0 || index >= SCOUNT + l = LBASE + index / NCOUNT + v = VBASE + (index % NCOUNT) / TCOUNT + t = TBASE + index % TCOUNT (t==TBASE ? [l, v] : [l, v, t]).pack('U*') + target[1..-1] end