* mu-util.c: only convert if the locale is not already in UTF8
This commit is contained in:
@ -375,12 +375,18 @@ gboolean
|
|||||||
mu_util_fputs_encoded (const char *str, FILE *stream)
|
mu_util_fputs_encoded (const char *str, FILE *stream)
|
||||||
{
|
{
|
||||||
char *conv;
|
char *conv;
|
||||||
GError *err;
|
const char *dummy;
|
||||||
int rv;
|
int rv;
|
||||||
|
|
||||||
g_return_val_if_fail (str, FALSE);
|
g_return_val_if_fail (str, FALSE);
|
||||||
g_return_val_if_fail (stream, FALSE);
|
g_return_val_if_fail (stream, FALSE);
|
||||||
|
|
||||||
|
/* g_get_charset return TRUE when the locale is UTF8 */
|
||||||
|
if (g_get_charset(&dummy))
|
||||||
|
rv = fputs (str, stream);
|
||||||
|
else { /* charset is _not_ utf8, so we actually have to
|
||||||
|
* convert it..*/
|
||||||
|
GError *err;
|
||||||
err = NULL;
|
err = NULL;
|
||||||
conv = g_locale_from_utf8 (str, -1, NULL, NULL, &err);
|
conv = g_locale_from_utf8 (str, -1, NULL, NULL, &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -388,9 +394,9 @@ mu_util_fputs_encoded (const char *str, FILE *stream)
|
|||||||
g_error_free (err);
|
g_error_free (err);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
rv = fputs (conv, stream);
|
rv = fputs (conv, stream);
|
||||||
g_free (conv);
|
g_free (conv);
|
||||||
|
}
|
||||||
|
|
||||||
if (rv == EOF) { /* note, apparently, does not set errno */
|
if (rv == EOF) { /* note, apparently, does not set errno */
|
||||||
g_printerr ("fputs failed");
|
g_printerr ("fputs failed");
|
||||||
|
|||||||
Reference in New Issue
Block a user