2 ** Copyright 2000-2003 Double Precision, Inc.
3 ** See COPYING for distribution information.
7 #include "unicode_config.h"
10 extern const unsigned unicode_case_hash
;
11 extern const unicode_char unicode_case_tab
[][4];
12 extern const unsigned unicode_case_offset
[];
14 static unsigned find_case(unicode_char c
)
16 unsigned idx
= c
% unicode_case_hash
;
18 unsigned i
=unicode_case_offset
[idx
];
26 uc
=unicode_case_tab
[++i
][0];
29 } while ( (uc
% unicode_case_hash
) == idx
);
34 unicode_char
unicode_uc(unicode_char c
)
36 unsigned i
=find_case(c
);
38 return (unicode_case_tab
[i
][0] != c
? c
:unicode_case_tab
[i
][1]);
41 unicode_char
unicode_lc(unicode_char c
)
43 unsigned i
=find_case(c
);
45 return (unicode_case_tab
[i
][0] != c
? c
:unicode_case_tab
[i
][2]);
48 unicode_char
unicode_tc(unicode_char c
)
56 return (unicode_case_tab
[i
][0] != c
? oc
:unicode_case_tab
[i
][3]);