X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=utf8%2Futf8-locale.c;h=bcfb17e1a9887406540bb8d88e422d73fe0bb22f;hb=37664554e3b02ffcc14d648844fe2ec95c0cf753;hp=115c66ee7312e66bec78e797abaa4f2cc95bc9e2;hpb=af581cf02cbbed0d24636be0b3533587448e7e0f;p=gedcom-parse.git diff --git a/utf8/utf8-locale.c b/utf8/utf8-locale.c index 115c66e..bcfb17e 100644 --- a/utf8/utf8-locale.c +++ b/utf8/utf8-locale.c @@ -9,18 +9,14 @@ /* $Id$ */ /* $Name$ */ -#include "utf8.h" +#include "utf8tools.h" #include #include +#include #include "libcharset.h" static convert_t locale_conv = NULL; -void convert_set_unknown(const char* unknown) -{ - conversion_set_unknown(locale_conv, unknown); -} - void close_conversion_contexts() { cleanup_utf8_conversion(locale_conv); @@ -29,7 +25,7 @@ void close_conversion_contexts() int open_conversion_contexts() { assert (locale_conv == NULL); - locale_conv = initialize_utf8_conversion(locale_charset()); + locale_conv = initialize_utf8_conversion(locale_charset(), 0); if (locale_conv) { atexit(close_conversion_contexts); @@ -40,12 +36,19 @@ int open_conversion_contexts() } } +void convert_set_unknown(const char* unknown) +{ + if (!locale_conv) + open_conversion_contexts(); + conversion_set_unknown(locale_conv, unknown); +} + char* convert_utf8_to_locale(const char* input, int *conv_fails) { if (!locale_conv) open_conversion_contexts(); - return convert_from_utf8(locale_conv, input, conv_fails); + return convert_from_utf8(locale_conv, input, conv_fails, NULL); } char* convert_locale_to_utf8(const char* input) @@ -53,5 +56,5 @@ char* convert_locale_to_utf8(const char* input) if (!locale_conv) open_conversion_contexts(); - return convert_to_utf8(locale_conv, input); + return convert_to_utf8(locale_conv, input, strlen(input)); }