X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flibpspp%2Fi18n.h;h=e2663a022094b65e5fc5f2aa6e2d303508c2a83b;hb=7f7e4dc8457c408269e94307d9545fd504891afc;hp=51ca28edb04a14d3ae14c7eff6eaeb5a4ee61e18;hpb=43b1296aafe7582e7dbe6c2b6a8b478d7d9b0fcf;p=pspp diff --git a/src/libpspp/i18n.h b/src/libpspp/i18n.h index 51ca28edb0..e2663a0220 100644 --- a/src/libpspp/i18n.h +++ b/src/libpspp/i18n.h @@ -17,23 +17,51 @@ #ifndef I18N_H #define I18N_H -const char * get_pspp_locale(void); -void set_pspp_locale(const char *locale); -const char * get_pspp_charset(void); +#include -void i18n_done(void); -void i18n_init(void); +void i18n_done (void); +void i18n_init (void); -enum conv_id - { - CONV_PSPP_TO_UTF8, - CONV_SYSTEM_TO_PSPP, - n_CONV - }; +#define UTF8 "UTF-8" +struct pool; -char * recode_string(enum conv_id how, const char *text, int len); +/* +Converts the string TEXT, which should be encoded in FROM-encoding, to a +dynamically allocated string in TO-encoding. Any characters which cannot +be converted will be represented by '?'. + +LENGTH should be the length of the string or -1, if null terminated. + +The returned string will be allocated on POOL. + +This function's behaviour differs from that of g_convert_with_fallback provided +by GLib. The GLib function will fail (returns NULL) if any part of the input +string is not valid in the declared input encoding. This function however perseveres +even in the presence of badly encoded input. +*/ +char *recode_string_pool (const char *to, const char *from, + const char *text, int length, struct pool *pool); + + + +/* Similar to recode_string_pool, but allocates the returned value on the heap instead of + in a pool. It is the caller's responsibility to free the returned value. */ +char *recode_string (const char *to, const char *from, + const char *text, int len); + + +bool valid_encoding (const char *enc); + +/* Return the decimal separator according to the + system locale */ +char get_system_decimal (void); + +const char * get_default_encoding (void); +void set_default_encoding (const char *enc); + +bool set_encoding_from_locale (const char *loc); #endif /* i18n.h */