X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flibpspp%2Fi18n.c;h=8e99aa04236cb1cf7cd326848b20461f4ceb2e7d;hb=70514b3f2f32d57e58b04c01c83bc5f372559824;hp=e08ba2804bbf4d6b0dbe7c6cf81b820c7a239462;hpb=b5c82cc9aabe7e641011130240ae1b2e84348e23;p=pspp diff --git a/src/libpspp/i18n.c b/src/libpspp/i18n.c index e08ba2804b..8e99aa0423 100644 --- a/src/libpspp/i18n.c +++ b/src/libpspp/i18n.c @@ -73,19 +73,22 @@ create_iconv (const char* tocode, const char* fromcode) hmapx_insert (&map, converter, hash); /* I don't think it's safe to translate this string or to use messaging - as the convertors have not yet been set up */ + as the converters have not yet been set up */ if ( (iconv_t) -1 == converter->conv && 0 != strcmp (tocode, fromcode)) { const int err = errno; fprintf (stderr, "Warning: " - "cannot create a convertor for \"%s\" to \"%s\": %s\n", + "cannot create a converter for \"%s\" to \"%s\": %s\n", fromcode, tocode, strerror (err)); } return converter->conv; } + +/* 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 length) @@ -94,10 +97,19 @@ recode_string (const char *to, const char *from, } -/* Return a string based on TEXT which must be encoded using FROM. - The returned string will be encoded in TO. - If length is not -1, then it must be the number of bytes in TEXT. - The returned string must be freed when no longer required. +/* +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,