diff options
| -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); | 
