mirror of
https://gitlab.gnome.org/GNOME/nautilus
synced 2024-08-27 11:29:24 +00:00
file-operations: deduplicate code
Some duplicate code can be removed by refactoring mark_desktop_file_executable(). https://bugzilla.gnome.org/show_bug.cgi?id=782658
This commit is contained in:
parent
f8868596c3
commit
80ebc12c49
|
@ -7983,9 +7983,10 @@ mark_desktop_file_executable (CommonJob *common,
|
|||
gboolean interactive)
|
||||
{
|
||||
GError *error;
|
||||
guint32 current_perms, new_perms;
|
||||
guint32 current_perms;
|
||||
guint32 new_perms;
|
||||
int response;
|
||||
GFileInfo *info;
|
||||
g_autoptr (GFileInfo) info = NULL;
|
||||
|
||||
retry:
|
||||
|
||||
|
@ -7997,86 +7998,47 @@ retry:
|
|||
common->cancellable,
|
||||
&error);
|
||||
|
||||
if (info == NULL)
|
||||
{
|
||||
if (interactive)
|
||||
{
|
||||
response = run_error (common,
|
||||
g_strdup (_("Unable to mark launcher trusted (executable)")),
|
||||
error->message,
|
||||
NULL,
|
||||
FALSE,
|
||||
CANCEL, RETRY,
|
||||
NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
response = 0;
|
||||
}
|
||||
|
||||
if (response == 0 || response == GTK_RESPONSE_DELETE_EVENT)
|
||||
{
|
||||
abort_job (common);
|
||||
}
|
||||
else if (response == 1)
|
||||
{
|
||||
goto retry;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_assert_not_reached ();
|
||||
}
|
||||
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
||||
if (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_UNIX_MODE))
|
||||
if (info != NULL && g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_UNIX_MODE))
|
||||
{
|
||||
current_perms = g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_UNIX_MODE);
|
||||
new_perms = current_perms | S_IXGRP | S_IXUSR | S_IXOTH;
|
||||
|
||||
if ((current_perms != new_perms) &&
|
||||
!g_file_set_attribute_uint32 (file, G_FILE_ATTRIBUTE_UNIX_MODE,
|
||||
new_perms, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
|
||||
common->cancellable, &error))
|
||||
if (current_perms != new_perms)
|
||||
{
|
||||
g_object_unref (info);
|
||||
|
||||
if (interactive)
|
||||
{
|
||||
response = run_error (common,
|
||||
g_strdup (_("Unable to mark launcher trusted (executable)")),
|
||||
error->message,
|
||||
NULL,
|
||||
FALSE,
|
||||
CANCEL, RETRY,
|
||||
NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
response = 0;
|
||||
}
|
||||
|
||||
if (response == 0 || response == GTK_RESPONSE_DELETE_EVENT)
|
||||
{
|
||||
abort_job (common);
|
||||
}
|
||||
else if (response == 1)
|
||||
{
|
||||
goto retry;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_assert_not_reached ();
|
||||
}
|
||||
|
||||
goto out;
|
||||
g_file_set_attribute_uint32 (file, G_FILE_ATTRIBUTE_UNIX_MODE,
|
||||
new_perms, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
|
||||
common->cancellable, &error);
|
||||
}
|
||||
}
|
||||
g_object_unref (info);
|
||||
out:
|
||||
;
|
||||
|
||||
if (interactive && error != NULL)
|
||||
{
|
||||
response = run_error (common,
|
||||
g_strdup (_("Unable to mark launcher trusted (executable)")),
|
||||
error->message,
|
||||
NULL,
|
||||
FALSE,
|
||||
CANCEL, RETRY,
|
||||
NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
response = 0;
|
||||
}
|
||||
|
||||
if (response == 0 || response == GTK_RESPONSE_DELETE_EVENT)
|
||||
{
|
||||
abort_job (common);
|
||||
}
|
||||
else if (response == 1)
|
||||
{
|
||||
g_object_unref (info);
|
||||
goto retry;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_assert_not_reached ();
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Reference in a new issue