2 ** Copyright 2000 Double Precision, Inc.
3 ** See COPYING for distribution information.
5 ** $Id: utf8_chset.c,v 1.5 2004/05/23 14:28:25 mrsam Exp $
14 ** UTF8.toupper/tolower/totitle is implemented by converting UTF8 to
15 ** UCS-4, applying the unicode table lookup, then converting it back to
19 static char *toupper_func(const struct unicode_info
*u
,
20 const char *cp
, int *ip
)
22 unicode_char
*uc
=unicode_utf8_tou(cp
, ip
), *p
;
30 s
=unicode_utf8_fromu(uc
, NULL
);
35 static char *tolower_func(const struct unicode_info
*u
,
36 const char *cp
, int *ip
)
38 unicode_char
*uc
=unicode_utf8_tou(cp
, ip
), *p
;
46 s
=unicode_utf8_fromu(uc
, NULL
);
51 static char *totitle_func(const struct unicode_info
*u
,
52 const char *cp
, int *ip
)
54 unicode_char
*uc
=unicode_utf8_tou(cp
, ip
), *p
;
62 s
=unicode_utf8_fromu(uc
, NULL
);
67 static unicode_char
*tou(const struct unicode_info
*i
, const char *p
,
70 return unicode_utf8_tou(p
, err
);
73 static char *fromu(const struct unicode_info
*i
, const unicode_char
*p
,
76 return unicode_utf8_fromu(p
, err
);
79 const struct unicode_info unicode_UTF8
= {
81 UNICODE_UTF
| UNICODE_MB
| UNICODE_USASCII
| UNICODE_HEADER_QUOPRI
82 | UNICODE_BODY_QUOPRI
,