Convert filenames to UTF-8 before putting them in GErrors. (#154078,

2004-09-30  Matthias Clasen  <mclasen@redhat.com>

	* glib/gfileutils.c: Convert filenames to UTF-8 before
	putting them in GErrors.  (#154078, Morten Welinder)
This commit is contained in:
Matthias Clasen 2004-09-30 04:05:30 +00:00 committed by Matthias Clasen
parent 4abac1a85f
commit 78193c3395
6 changed files with 76 additions and 12 deletions

View File

@ -1,3 +1,8 @@
2004-09-30 Matthias Clasen <mclasen@redhat.com>
* glib/gfileutils.c: Convert filenames to UTF-8 before
putting them in GErrors. (#154078, Morten Welinder)
2004-09-22 Tor Lillqvist <tml@iki.fi> 2004-09-22 Tor Lillqvist <tml@iki.fi>
* glib/gmessages.c: [Win32] Don't ever open a console * glib/gmessages.c: [Win32] Don't ever open a console

View File

@ -1,3 +1,8 @@
2004-09-30 Matthias Clasen <mclasen@redhat.com>
* glib/gfileutils.c: Convert filenames to UTF-8 before
putting them in GErrors. (#154078, Morten Welinder)
2004-09-22 Tor Lillqvist <tml@iki.fi> 2004-09-22 Tor Lillqvist <tml@iki.fi>
* glib/gmessages.c: [Win32] Don't ever open a console * glib/gmessages.c: [Win32] Don't ever open a console

View File

@ -1,3 +1,8 @@
2004-09-30 Matthias Clasen <mclasen@redhat.com>
* glib/gfileutils.c: Convert filenames to UTF-8 before
putting them in GErrors. (#154078, Morten Welinder)
2004-09-22 Tor Lillqvist <tml@iki.fi> 2004-09-22 Tor Lillqvist <tml@iki.fi>
* glib/gmessages.c: [Win32] Don't ever open a console * glib/gmessages.c: [Win32] Don't ever open a console

View File

@ -1,3 +1,8 @@
2004-09-30 Matthias Clasen <mclasen@redhat.com>
* glib/gfileutils.c: Convert filenames to UTF-8 before
putting them in GErrors. (#154078, Morten Welinder)
2004-09-22 Tor Lillqvist <tml@iki.fi> 2004-09-22 Tor Lillqvist <tml@iki.fi>
* glib/gmessages.c: [Win32] Don't ever open a console * glib/gmessages.c: [Win32] Don't ever open a console

View File

@ -1,3 +1,8 @@
2004-09-30 Matthias Clasen <mclasen@redhat.com>
* glib/gfileutils.c: Convert filenames to UTF-8 before
putting them in GErrors. (#154078, Morten Welinder)
2004-09-22 Tor Lillqvist <tml@iki.fi> 2004-09-22 Tor Lillqvist <tml@iki.fi>
* glib/gmessages.c: [Win32] Don't ever open a console * glib/gmessages.c: [Win32] Don't ever open a console

View File

@ -387,22 +387,31 @@ get_contents_stdio (const gchar *filename,
if (str == NULL) if (str == NULL)
{ {
gchar *utf8_filename = g_filename_to_utf8 (filename, -1,
NULL, NULL, NULL);
g_set_error (error, g_set_error (error,
G_FILE_ERROR, G_FILE_ERROR,
G_FILE_ERROR_NOMEM, G_FILE_ERROR_NOMEM,
_("Could not allocate %lu bytes to read file \"%s\""), _("Could not allocate %lu bytes to read file \"%s\""),
(gulong) total_allocated, filename); (gulong) total_allocated,
utf8_filename ? utf8_filename : "???");
g_free (utf8_filename);
goto error; goto error;
} }
} }
if (ferror (f)) if (ferror (f))
{ {
gchar *utf8_filename = g_filename_to_utf8 (filename, -1,
NULL, NULL, NULL);
g_set_error (error, g_set_error (error,
G_FILE_ERROR, G_FILE_ERROR,
g_file_error_from_errno (errno), g_file_error_from_errno (errno),
_("Error reading file '%s': %s"), _("Error reading file '%s': %s"),
filename, g_strerror (errno)); utf8_filename ? utf8_filename : "???",
g_strerror (errno));
g_free (utf8_filename);
goto error; goto error;
} }
@ -452,11 +461,15 @@ get_contents_regfile (const gchar *filename,
if (buf == NULL) if (buf == NULL)
{ {
gchar *utf8_filename = g_filename_to_utf8 (filename, -1,
NULL, NULL, NULL);
g_set_error (error, g_set_error (error,
G_FILE_ERROR, G_FILE_ERROR,
G_FILE_ERROR_NOMEM, G_FILE_ERROR_NOMEM,
_("Could not allocate %lu bytes to read file \"%s\""), _("Could not allocate %lu bytes to read file \"%s\""),
(gulong) alloc_size, filename); (gulong) alloc_size,
utf8_filename ? utf8_filename : "???");
g_free (utf8_filename);
goto error; goto error;
} }
@ -473,12 +486,15 @@ get_contents_regfile (const gchar *filename,
if (errno != EINTR) if (errno != EINTR)
{ {
g_free (buf); g_free (buf);
gchar *utf8_filename = g_filename_to_utf8 (filename, -1,
NULL, NULL, NULL);
g_set_error (error, g_set_error (error,
G_FILE_ERROR, G_FILE_ERROR,
g_file_error_from_errno (errno), g_file_error_from_errno (errno),
_("Failed to read from file '%s': %s"), _("Failed to read from file '%s': %s"),
filename, g_strerror (errno)); utf8_filename ? utf8_filename : "???",
g_strerror (errno));
g_free (utf8_filename);
goto error; goto error;
} }
@ -521,11 +537,15 @@ get_contents_posix (const gchar *filename,
if (fd < 0) if (fd < 0)
{ {
gchar *utf8_filename = g_filename_to_utf8 (filename, -1,
NULL, NULL, NULL);
g_set_error (error, g_set_error (error,
G_FILE_ERROR, G_FILE_ERROR,
g_file_error_from_errno (errno), g_file_error_from_errno (errno),
_("Failed to open file '%s': %s"), _("Failed to open file '%s': %s"),
filename, g_strerror (errno)); utf8_filename ? utf8_filename : "???",
g_strerror (errno));
g_free (utf8_filename);
return FALSE; return FALSE;
} }
@ -535,11 +555,15 @@ get_contents_posix (const gchar *filename,
{ {
close (fd); close (fd);
gchar *utf8_filename = g_filename_to_utf8 (filename, -1,
NULL, NULL, NULL);
g_set_error (error, g_set_error (error,
G_FILE_ERROR, G_FILE_ERROR,
g_file_error_from_errno (errno), g_file_error_from_errno (errno),
_("Failed to get attributes of file '%s': fstat() failed: %s"), _("Failed to get attributes of file '%s': fstat() failed: %s"),
filename, g_strerror (errno)); utf8_filename ? utf8_filename : "???",
g_strerror (errno));
g_free (utf8_filename);
return FALSE; return FALSE;
} }
@ -561,11 +585,16 @@ get_contents_posix (const gchar *filename,
if (f == NULL) if (f == NULL)
{ {
gchar *utf8_filename = g_filename_to_utf8 (filename, -1,
NULL, NULL, NULL);
g_set_error (error, g_set_error (error,
G_FILE_ERROR, G_FILE_ERROR,
g_file_error_from_errno (errno), g_file_error_from_errno (errno),
_("Failed to open file '%s': fdopen() failed: %s"), _("Failed to open file '%s': fdopen() failed: %s"),
filename, g_strerror (errno)); utf8_filename ? utf8_filename : "???",
g_strerror (errno));
g_free (utf8_filename);
return FALSE; return FALSE;
} }
@ -589,11 +618,16 @@ get_contents_win32 (const gchar *filename,
if (f == NULL) if (f == NULL)
{ {
gchar *utf8_filename = g_filename_to_utf8 (filename, -1,
NULL, NULL, NULL);
g_set_error (error, g_set_error (error,
G_FILE_ERROR, G_FILE_ERROR,
g_file_error_from_errno (errno), g_file_error_from_errno (errno),
_("Failed to open file '%s': %s"), _("Failed to open file '%s': %s"),
filename, g_strerror (errno)); utf8_filename ? utf8_filename : "???",
g_strerror (errno));
g_free (utf8_filename);
return FALSE; return FALSE;
} }
@ -1147,11 +1181,16 @@ g_file_read_link (const gchar *filename,
read_size = readlink (filename, buffer, size); read_size = readlink (filename, buffer, size);
if (read_size < 0) { if (read_size < 0) {
g_free (buffer); g_free (buffer);
gchar *utf8_filename = g_filename_to_utf8 (filename, -1,
NULL, NULL, NULL);
g_set_error (error, g_set_error (error,
G_FILE_ERROR, G_FILE_ERROR,
g_file_error_from_errno (errno), g_file_error_from_errno (errno),
_("Failed to read the symbolic link '%s': %s"), _("Failed to read the symbolic link '%s': %s"),
filename, g_strerror (errno)); utf8_filename ? utf8_filename : "???",
g_strerror (errno));
g_free (utf8_filename);
return NULL; return NULL;
} }