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 '_'
39#define CONV_IGNORE (1<<0)
40#define CONV_ESCAPEHEX (1<<1)
43#define CONV_ESCAPEDOTS (1<<2)
44#define CONV_UNESCAPEHEX (1<<3)
45#define CONV_TOUPPER (1<<4)
46#define CONV_TOLOWER (1<<5)
47#define CONV_PRECOMPOSE (1<<6)
48#define CONV_DECOMPOSE (1<<7)
49#define CONV_FORCE (1<<8)
50#define CONV__EILSEQ (1<<9)
53#define CONV_REQMANGLE (1<<14)
54#define CONV_REQESCAPE (1<<15)
69 size_t (*
pull)(
void *,
char **inbuf,
size_t *inbytesleft,
70 char **outbuf,
size_t *outbytesleft);
71 size_t (*
push)(
void *,
char **inbuf,
size_t *inbytesleft,
72 char **outbuf,
size_t *outbytesleft);
128 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:67
size_t(* push)(void *, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
Definition unicode.h:71
struct charset_functions * prev
Definition unicode.h:75
const long kTextEncoding
Definition unicode.h:68
size_t(* pull)(void *, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
Definition unicode.h:69
uint32_t flags
Definition unicode.h:73
struct charset_functions * next
Definition unicode.h:75
const char * iname
Definition unicode.h:74
int set_charset_name(charset_t, const char *)
Definition charcnv.c:85
size_t ucs2_to_charset(charset_t, const ucs2_t *src, char *dest, size_t)
Copy a string from a UCS2 src to a unix char * destination, allocating a buffer.
Definition charcnv.c:553
size_t precompose_w(ucs2_t *, size_t, ucs2_t *, size_t *)
pre|decomposition
Definition util_unistr.c:541
#define ucs2_t
Definition unicode.h:8
size_t atalk_iconv(atalk_iconv_t, const char **, size_t *, char **, size_t *)
This is a simple portable iconv() implementaion.
Definition iconv.c:215
void free_charset_names(void)
Definition charcnv.c:95
uint32_t toupper_sp(uint32_t)
Definition utf16_case.c:82
ucs2_t * strndup_w(const ucs2_t *, size_t)
wide strndup()
Definition util_unistr.c:383
int strupper_w(ucs2_t *)
Convert a string to upper case.
Definition util_unistr.c:71
ucs2_t * strdup_w(const ucs2_t *)
wide strdup()
Definition util_unistr.c:409
int strcmp_w(const ucs2_t *, const ucs2_t *)
wide strcmp()
Definition util_unistr.c:201
struct charset_functions * find_charset_functions(const char *)
Definition iconv.c:123
ucs2_t toupper_w(ucs2_t)
Definition utf16_case.c:18
void init_iconv(void)
Initialize iconv conversion descriptors.
Definition charcnv.c:185
size_t charset_decompose(charset_t, char *, size_t, char *, size_t)
Definition charcnv.c:598
size_t strnlen_w(const ucs2_t *, size_t)
wide strnlen()
Definition util_unistr.c:125
atalk_iconv_t atalk_iconv_open(const char *, const char *)
Definition iconv.c:256
ucs2_t * strcasechr_w(const ucs2_t *s, ucs2_t c)
wide strcasechr()
Definition util_unistr.c:159
size_t charset_precompose(charset_t, char *, size_t, char *, size_t)
Definition charcnv.c:568
ucs2_t * strcasestr_w(const ucs2_t *, const ucs2_t *)
wide strcasestr()
Definition util_unistr.c:262
size_t charset_strlower(charset_t, const char *, size_t, char *, size_t)
Definition charcnv.c:519
size_t decompose_w(ucs2_t *, size_t, ucs2_t *, size_t *)
Definition util_unistr.c:654
int strcasecmp_w(const ucs2_t *, const ucs2_t *)
wide strcasecmp()
Definition util_unistr.c:307
int atalk_iconv_close(atalk_iconv_t)
Definition iconv.c:356
size_t charset_strupper(charset_t, const char *, size_t, char *, size_t)
Definition charcnv.c:496
uint32_t tolower_sp(uint32_t)
Definition utf16_case.c:186
int strlower_w(ucs2_t *)
Convert a string to lower case.
Definition util_unistr.c:34
int strncmp_w(const ucs2_t *, const ucs2_t *, size_t)
wide strncmp()
Definition util_unistr.c:218
size_t convert_charset(charset_t, charset_t, charset_t, const char *, size_t, char *, size_t, uint16_t *)
Definition charcnv.c:961
int strncasecmp_w(const ucs2_t *, const ucs2_t *, size_t)
wide strncasecmp()
Definition util_unistr.c:343
size_t strlen_w(const ucs2_t *)
wide strlen()
Definition util_unistr.c:109
charset_t add_charset(const char *name)
Definition charcnv.c:126
ucs2_t tolower_w(ucs2_t)
Definition utf16_case.c:126
ucs2_t * strchr_w(const ucs2_t *, ucs2_t)
wide strchr()
Definition util_unistr.c:138
ucs2_t * strstr_w(const ucs2_t *s, const ucs2_t *ins)
wide strstr()
Definition util_unistr.c:235
int atalk_register_charset(struct charset_functions *)
Definition iconv.c:138
size_t ucs2_to_charset_allocate(charset_t, char **dest, const ucs2_t *src)
Definition charcnv.c:561
charset_t
Definition unicode.h:57
@ CH_MAC
Definition unicode.h:57
@ CH_UNIX
Definition unicode.h:57
@ CH_UCS2
Definition unicode.h:57
@ CH_UTF8
Definition unicode.h:57
@ CH_UTF8_MAC
Definition unicode.h:57
size_t convert_string_allocate(charset_t, charset_t, void const *, size_t, char **)
Definition charcnv.c:451
size_t convert_string(charset_t, charset_t, void const *, size_t, void *, size_t)
Definition charcnv.c:301