From 50421b7809c47bd95c59b4a5627e2f89c8bccfa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Tue, 29 Oct 2013 08:47:48 +0000 Subject: SkypeClassic: Folders structure and project cleanup git-svn-id: http://svn.miranda-ng.org/main/trunk@6668 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/SkypeClassic/src/utf8.h | 47 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 protocols/SkypeClassic/src/utf8.h (limited to 'protocols/SkypeClassic/src/utf8.h') diff --git a/protocols/SkypeClassic/src/utf8.h b/protocols/SkypeClassic/src/utf8.h new file mode 100644 index 0000000000..70c533deca --- /dev/null +++ b/protocols/SkypeClassic/src/utf8.h @@ -0,0 +1,47 @@ +/* + * Convert a string between UTF-8 and the locale's charset. + * Invalid bytes are replaced by '#', and characters that are + * not available in the target encoding are replaced by '?'. + * + * If the locale's charset is not set explicitly then it is + * obtained using nl_langinfo(CODESET), where available, the + * environment variable CHARSET, or assumed to be US-ASCII. + * + * Return value of conversion functions: + * + * -1 : memory allocation failed + * 0 : data was converted exactly + * 1 : valid data was converted approximately (using '?') + * 2 : input was invalid (but still converted, using '#') + * 3 : unknown encoding (but still converted, using '?') + */ + +#ifndef __UTF8_H +#define __UTF8_H + +#ifdef __cplusplus +extern "C" { +#endif + +void convert_set_charset(const char *charset); + +int utf8_encode(const char *from, char **to); +int utf8_decode(const char *from, char **to); +wchar_t *make_unicode_string(const unsigned char *utf8); +unsigned char *make_utf8_string(const wchar_t *unicode); +#ifdef _UNICODE +#define make_tchar_string make_unicode_string +// Helpers for strings that only can contain 7bit chars to not make unneccessary memory allocation +#define make_nonutf_tchar_string(x) make_tchar_string(x) +#define free_nonutf_tchar_string(x) if(x) free(x); +#else +char *make_tchar_string(const unsigned char *utf8); +#define make_nonutf_tchar_string(x) (char*)x +#define free_nonutf_tchar_string(x) +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __UTF8_H */ -- cgit v1.2.3