X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flibpspp%2Fi18n.h;h=e2663a022094b65e5fc5f2aa6e2d303508c2a83b;hb=43b96ca660fb4c57674f1625aad48b83c0170de0;hp=2c30a70012e18fd2c556c158f9355edb3a0a5d31;hpb=14aac9fe7a7efbb6c9bded2ed5969a643cb76645;p=pspp diff --git a/src/libpspp/i18n.h b/src/libpspp/i18n.h index 2c30a70012..e2663a0220 100644 --- a/src/libpspp/i18n.h +++ b/src/libpspp/i18n.h @@ -24,7 +24,31 @@ 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);