X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flibpspp%2Fi18n.h;h=e2663a022094b65e5fc5f2aa6e2d303508c2a83b;hb=7c6e9646a94126a410fab4d00714396b98923230;hp=c167e1f99b2ce63ebfd109494e08951b1ac17a9f;hpb=dd5535725f86158e55b3fc263c17058005b0c0a5;p=pspp diff --git a/src/libpspp/i18n.h b/src/libpspp/i18n.h index c167e1f99b..e2663a0220 100644 --- a/src/libpspp/i18n.h +++ b/src/libpspp/i18n.h @@ -17,18 +17,51 @@ #ifndef I18N_H #define I18N_H +#include + void i18n_done (void); void i18n_init (void); - #define UTF8 "UTF-8" -char * recode_string (const char *to, const char *from, +struct pool; + + +/* +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 */