X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flibpspp%2Fi18n.h;h=e2663a022094b65e5fc5f2aa6e2d303508c2a83b;hb=43b96ca660fb4c57674f1625aad48b83c0170de0;hp=db15bad86940a955f0a0a942af548a8a7b177edb;hpb=51996c07fc2b308ad29dcbaa93e4d5d3d21b3331;p=pspp diff --git a/src/libpspp/i18n.h b/src/libpspp/i18n.h index db15bad869..e2663a0220 100644 --- a/src/libpspp/i18n.h +++ b/src/libpspp/i18n.h @@ -17,27 +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 */