diff options
author | Christian Persch <chpe@gnome.org> | 2009-08-20 15:13:43 +0200 |
---|---|---|
committer | Christian Persch <chpe@gnome.org> | 2009-08-22 15:08:43 +0200 |
commit | 8ef30758d56b21aa20c23e5c90a78142183003ed (patch) | |
tree | f2de0445312ea66bd2368f3692bda1b3705de555 /glib/gconvert.c | |
parent | feff29aefc75459bc1b39235cb0e842fbf0fa2b4 (diff) | |
download | glib-8ef30758d56b21aa20c23e5c90a78142183003ed.tar.gz |
Preserve errno
When using errno in g_set_error with _(), preserve errno. Bug #592457.
Diffstat (limited to 'glib/gconvert.c')
-rw-r--r-- | glib/gconvert.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/glib/gconvert.c b/glib/gconvert.c index 7aefe24f3..7a20cb56a 100644 --- a/glib/gconvert.c +++ b/glib/gconvert.c @@ -633,10 +633,13 @@ g_convert_with_iconv (const gchar *str, have_error = TRUE; break; default: - if (error) - g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, - _("Error during conversion: %s"), - g_strerror (errno)); + { + int errsv = errno; + + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, + _("Error during conversion: %s"), + g_strerror (errsv)); + } have_error = TRUE; break; } @@ -940,9 +943,14 @@ g_convert_with_fallback (const gchar *str, } /* fall thru if p is NULL */ default: - g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, - _("Error during conversion: %s"), - g_strerror (errno)); + { + int errsv = errno; + + g_set_error (error, G_CONVERT_ERROR, G_CONVERT_ERROR_FAILED, + _("Error during conversion: %s"), + g_strerror (errsv)); + } + have_error = TRUE; break; } |