X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flibpspp%2Fi18n.h;h=e2663a022094b65e5fc5f2aa6e2d303508c2a83b;hb=2b84fc2b70df7767ee9a279fffab5db1b3c8023e;hp=0633ebc82f807b9fb1d89429c3bf99fa9699930c;hpb=c13375ebe886fc3ed5ce70a260bb2b01cebb4b1f;p=pspp diff --git a/src/libpspp/i18n.h b/src/libpspp/i18n.h index 0633ebc82f..e2663a0220 100644 --- a/src/libpspp/i18n.h +++ b/src/libpspp/i18n.h @@ -17,24 +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); -enum conv_id - { - CONV_PSPP_TO_UTF8, - CONV_SYSTEM_TO_PSPP, - CONV_UTF8_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 */