1#ifndef _ATALK_UNICODE_H
2#define _ATALK_UNICODE_H 1
10#define SAFE_FREE(x) do { if ((x) != NULL) {free(x); x=NULL;} } while(0)
18 size_t (*
direct)(
void *cd,
char **inbuf,
size_t *inbytesleft,
19 char **outbuf,
size_t *outbytesleft);
20 size_t (*
pull)(
void *cd,
char **inbuf,
size_t *inbytesleft,
21 char **outbuf,
size_t *outbytesleft);
22 size_t (*
push)(
void *cd,
char **inbuf,
size_t *inbytesleft,
23 char **outbuf,
size_t *outbytesleft);
28#define CHARSET_CLIENT 1
29#define CHARSET_VOLUME 2
30#define CHARSET_PRECOMPOSED 4
31#define CHARSET_DECOMPOSED 8
32#define CHARSET_MULTIBYTE 16
33#define CHARSET_WIDECHAR 32
34#define CHARSET_ICONV 64
36#define IGNORE_CHAR '_'
40#define CONV_IGNORE (1<<0)
44#define CONV_ESCAPEHEX (1<<1)
46#define CONV_ESCAPEDOTS (1<<2)
47#define CONV_UNESCAPEHEX (1<<3)
49#define CONV_TOUPPER (1<<4)
51#define CONV_TOLOWER (1<<5)
53#define CONV_PRECOMPOSE (1<<6)
55#define CONV_DECOMPOSE (1<<7)
57#define CONV_FORCE (1<<8)
59#define CONV__EILSEQ (1<<9)
63#define CONV_REQMANGLE (1<<14)
65#define CONV_REQESCAPE (1<<15)
80 size_t (*
pull)(
void *,
char **inbuf,
size_t *inbytesleft,
81 char **outbuf,
size_t *outbytesleft);
82 size_t (*
push)(
void *,
char **inbuf,
size_t *inbytesleft,
83 char **outbuf,
size_t *outbytesleft);
144 size_t,
char *,
size_t, uint16_t *);
size_t(* direct)(void *cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
Definition unicode.h:18
char * from_name
Definition unicode.h:25
void * cd_pull
Definition unicode.h:24
size_t(* pull)(void *cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
Definition unicode.h:20
size_t(* push)(void *cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
Definition unicode.h:22
char * to_name
Definition unicode.h:25
void * cd_direct
Definition unicode.h:24
void * cd_push
Definition unicode.h:24
const char * name
Definition unicode.h:78
size_t(* push)(void *, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
Definition unicode.h:82
struct charset_functions * prev
Definition unicode.h:86
const long kTextEncoding
Definition unicode.h:79
size_t(* pull)(void *, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
Definition unicode.h:80
uint32_t flags
Definition unicode.h:84
struct charset_functions * next
Definition unicode.h:86
const char * iname
Definition unicode.h:85
int set_charset_name(charset_t, const char *)
Definition charcnv.c:95
size_t ucs2_to_charset(charset_t, const ucs2_t *src, char *dest, size_t)
Definition charcnv.c:561
size_t precompose_w(ucs2_t *, size_t, ucs2_t *, size_t *)
Definition util_unistr.c:644
#define ucs2_t
Definition unicode.h:8
size_t atalk_iconv(atalk_iconv_t, const char **, size_t *, char **, size_t *)
Definition iconv.c:222
void free_charset_names(void)
Definition charcnv.c:105
int islower_w(ucs2_t)
Definition util_unistr.c:111
uint32_t toupper_sp(uint32_t)
Definition utf16_case.c:82
ucs2_t * strndup_w(const ucs2_t *, size_t)
Definition util_unistr.c:418
int strupper_w(ucs2_t *)
Definition util_unistr.c:73
ucs2_t * strdup_w(const ucs2_t *)
Definition util_unistr.c:444
int strcmp_w(const ucs2_t *, const ucs2_t *)
Definition util_unistr.c:233
struct charset_functions * find_charset_functions(const char *)
Definition iconv.c:130
ucs2_t * strncat_w(ucs2_t *, const ucs2_t *, const size_t)
Definition util_unistr.c:481
ucs2_t toupper_w(ucs2_t)
Definition utf16_case.c:18
void init_iconv(void)
Definition charcnv.c:195
size_t charset_decompose(charset_t, char *, size_t, char *, size_t)
Definition charcnv.c:606
size_t strnlen_w(const ucs2_t *, size_t)
Definition util_unistr.c:158
atalk_iconv_t atalk_iconv_open(const char *, const char *)
Definition iconv.c:263
ucs2_t * strcasechr_w(const ucs2_t *s, ucs2_t c)
Definition util_unistr.c:194
size_t charset_precompose(charset_t, char *, size_t, char *, size_t)
Definition charcnv.c:576
ucs2_t * strcasestr_w(const ucs2_t *, const ucs2_t *)
Definition util_unistr.c:297
size_t charset_strlower(charset_t, const char *, size_t, char *, size_t)
Definition charcnv.c:530
size_t decompose_w(ucs2_t *, size_t, ucs2_t *, size_t *)
Definition util_unistr.c:757
int strcasecmp_w(const ucs2_t *, const ucs2_t *)
Definition util_unistr.c:342
int atalk_iconv_close(atalk_iconv_t)
Definition iconv.c:363
size_t charset_strupper(charset_t, const char *, size_t, char *, size_t)
Definition charcnv.c:507
ucs2_t * strncpy_w(ucs2_t *, const ucs2_t *, const size_t)
Definition util_unistr.c:455
int isupper_w(ucs2_t)
Definition util_unistr.c:127
uint32_t tolower_sp(uint32_t)
Definition utf16_case.c:186
int strlower_w(ucs2_t *)
Definition util_unistr.c:35
int strncmp_w(const ucs2_t *, const ucs2_t *, size_t)
Definition util_unistr.c:251
size_t convert_charset(charset_t, charset_t, charset_t, const char *, size_t, char *, size_t, uint16_t *)
Definition charcnv.c:966
int strncasecmp_w(const ucs2_t *, const ucs2_t *, size_t)
Definition util_unistr.c:378
size_t strlen_w(const ucs2_t *)
Definition util_unistr.c:143
ucs2_t * strcat_w(ucs2_t *, const ucs2_t *)
Definition util_unistr.c:498
charset_t add_charset(const char *name)
Definition charcnv.c:136
ucs2_t tolower_w(ucs2_t)
Definition utf16_case.c:126
ucs2_t * strchr_w(const ucs2_t *, ucs2_t)
Definition util_unistr.c:172
ucs2_t * strstr_w(const ucs2_t *s, const ucs2_t *ins)
Definition util_unistr.c:269
int atalk_register_charset(struct charset_functions *)
Definition iconv.c:145
size_t ucs2_to_charset_allocate(charset_t, char **dest, const ucs2_t *src)
Definition charcnv.c:569
charset_t
Definition unicode.h:68
@ CH_MAC
Definition unicode.h:68
@ CH_UNIX
Definition unicode.h:68
@ CH_UCS2
Definition unicode.h:68
@ CH_UTF8
Definition unicode.h:68
@ CH_UTF8_MAC
Definition unicode.h:68
size_t convert_string_allocate(charset_t, charset_t, void const *, size_t, char **)
Definition charcnv.c:462
size_t convert_string(charset_t, charset_t, void const *, size_t, void *, size_t)
Definition charcnv.c:313