diff options
Diffstat (limited to 'src/eom-jobs.c')
-rw-r--r-- | src/eom-jobs.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/eom-jobs.c b/src/eom-jobs.c index 48afc1c..1ddfc4f 100644 --- a/src/eom-jobs.c +++ b/src/eom-jobs.c @@ -709,6 +709,9 @@ eom_job_save_as_run (EomJob *ejob) EomJobSaveAs *saveas_job; GList *it; guint n_images; + guint file_permissions = 00000; + guint permissions_mask = 00600; + GFileInfo *info; g_return_if_fail (EOM_IS_JOB_SAVE_AS (ejob)); @@ -780,6 +783,26 @@ eom_job_save_as_run (EomJob *ejob) dest_info, &ejob->error); + /* get file permissions */ + info = g_file_query_info (saveas_job->file, + G_FILE_ATTRIBUTE_UNIX_MODE, + G_FILE_QUERY_INFO_NONE, + NULL, + NULL); + + file_permissions = g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_UNIX_MODE); + + /* apply permission mask to file permissions */ + file_permissions |= permissions_mask; + + g_file_set_attribute_uint32 (saveas_job->file, + G_FILE_ATTRIBUTE_UNIX_MODE, + file_permissions, + G_FILE_QUERY_INFO_NONE, + NULL, + NULL); + + g_object_unref (info); if (src_info) g_object_unref (src_info); |