1 /*
2 ** Copyright 2000-2003 Double Precision, Inc.
3 ** See COPYING for distribution information.
4 **
5 ** $Id: unicode2.c,v 1.3 2003/03/07 00:47:31 mrsam Exp $
6 */
7
8 #include "unicode_config.h"
9 #include "unicode.h"
10 #include <string.h>
11 #include <ctype.h>
12 #include <stdlib.h>
13
unicode_toutf8(const unicode_char * u)14 char *unicode_toutf8(const unicode_char *u)
15 {
16 return (unicode_utf8_fromu(u, 0));
17 }
18
unicode_fromutf8(const char * c)19 unicode_char *unicode_fromutf8(const char *c)
20 {
21 return (unicode_utf8_tou(c, 0));
22 }
23
unicode_ctoutf8(const struct unicode_info * ui,const char * c,int * err)24 char *unicode_ctoutf8(const struct unicode_info *ui, const char *c,
25 int *err)
26 {
27 unicode_char *uc= (*ui->c2u)(ui, c, err);
28 char *p;
29
30 if (!uc) return (0);
31
32 p=unicode_utf8_fromu(uc, err);
33 if (err && *err > 0)
34 *err=0;
35
36 free(uc);
37 return (p);
38 }
39
unicode_cfromutf8(const struct unicode_info * ui,const char * c,int * err)40 char *unicode_cfromutf8(const struct unicode_info *ui, const char *c,
41 int *err)
42 {
43 unicode_char *uc;
44 char *p;
45
46 uc=unicode_utf8_tou(c, err);
47 if (!uc) return (0);
48
49 p=(*ui->u2c)(ui, uc, err);
50 free(uc);
51 if (err && *err > 0)
52 *err=0;
53 return (p);
54 }
55