mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-27 06:26:15 +01:00
GLocalFileOutputStream: Further deduplicate error code path
Just code cleanup. https://bugzilla.gnome.org/699959
This commit is contained in:
parent
5e65cd4e51
commit
7fc2ab9493
@ -544,6 +544,28 @@ _g_local_file_output_stream_new (int fd)
|
|||||||
return G_FILE_OUTPUT_STREAM (stream);
|
return G_FILE_OUTPUT_STREAM (stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
set_error_from_open_errno (const char *filename,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
int errsv = errno;
|
||||||
|
|
||||||
|
if (errsv == EINVAL)
|
||||||
|
/* This must be an invalid filename, on e.g. FAT */
|
||||||
|
g_set_error_literal (error, G_IO_ERROR,
|
||||||
|
G_IO_ERROR_INVALID_FILENAME,
|
||||||
|
_("Invalid filename"));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
char *display_name = g_filename_display_name (filename);
|
||||||
|
g_set_error (error, G_IO_ERROR,
|
||||||
|
g_io_error_from_errno (errsv),
|
||||||
|
_("Error opening file '%s': %s"),
|
||||||
|
display_name, g_strerror (errsv));
|
||||||
|
g_free (display_name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static GFileOutputStream *
|
static GFileOutputStream *
|
||||||
output_stream_open (const char *filename,
|
output_stream_open (const char *filename,
|
||||||
gint open_flags,
|
gint open_flags,
|
||||||
@ -557,22 +579,7 @@ output_stream_open (const char *filename,
|
|||||||
fd = g_open (filename, open_flags, mode);
|
fd = g_open (filename, open_flags, mode);
|
||||||
if (fd == -1)
|
if (fd == -1)
|
||||||
{
|
{
|
||||||
int errsv = errno;
|
set_error_from_open_errno (filename, error);
|
||||||
|
|
||||||
if (errsv == EINVAL)
|
|
||||||
/* This must be an invalid filename, on e.g. FAT */
|
|
||||||
g_set_error_literal (error, G_IO_ERROR,
|
|
||||||
G_IO_ERROR_INVALID_FILENAME,
|
|
||||||
_("Invalid filename"));
|
|
||||||
else
|
|
||||||
{
|
|
||||||
char *display_name = g_filename_display_name (filename);
|
|
||||||
g_set_error (error, G_IO_ERROR,
|
|
||||||
g_io_error_from_errno (errsv),
|
|
||||||
_("Error opening file '%s': %s"),
|
|
||||||
display_name, g_strerror (errsv));
|
|
||||||
g_free (display_name);
|
|
||||||
}
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1111,22 +1118,7 @@ _g_local_file_output_stream_replace (const char *filename,
|
|||||||
}
|
}
|
||||||
else if (fd == -1)
|
else if (fd == -1)
|
||||||
{
|
{
|
||||||
int errsv = errno;
|
set_error_from_open_errno (filename, error);
|
||||||
|
|
||||||
if (errsv == EINVAL)
|
|
||||||
/* This must be an invalid filename, on e.g. FAT */
|
|
||||||
g_set_error_literal (error, G_IO_ERROR,
|
|
||||||
G_IO_ERROR_INVALID_FILENAME,
|
|
||||||
_("Invalid filename"));
|
|
||||||
else
|
|
||||||
{
|
|
||||||
char *display_name = g_filename_display_name (filename);
|
|
||||||
g_set_error (error, G_IO_ERROR,
|
|
||||||
g_io_error_from_errno (errsv),
|
|
||||||
_("Error opening file '%s': %s"),
|
|
||||||
display_name, g_strerror (errsv));
|
|
||||||
g_free (display_name);
|
|
||||||
}
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user