summaryrefslogtreecommitdiff
path: root/src/nautilus-file-operations.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nautilus-file-operations.c')
-rw-r--r--src/nautilus-file-operations.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/nautilus-file-operations.c b/src/nautilus-file-operations.c
index 59341d83e..d4e6774a2 100644
--- a/src/nautilus-file-operations.c
+++ b/src/nautilus-file-operations.c
@@ -9189,6 +9189,7 @@ compress_task_thread_func (GTask *task,
CompressJob *compress_job = task_data;
g_auto (SourceInfo) source_info = SOURCE_INFO_INIT;
g_autoptr (AutoarCompressor) compressor = NULL;
+ GList *l;
g_timer_start (compress_job->common.time);
@@ -9202,6 +9203,26 @@ compress_task_thread_func (GTask *task,
compress_job->total_files = source_info.num_files;
compress_job->total_size = source_info.num_bytes;
+ /* take out files that should be skipped */
+ l = compress_job->source_files;
+ while (l != NULL)
+ {
+ GList *next = l->next;
+ if (should_skip_file ((CommonJob *) compress_job, l->data))
+ {
+ compress_job->source_files = g_list_remove_link (compress_job->source_files, l);
+ g_list_free_full (l, g_object_unref);
+ }
+ l = next;
+ }
+
+ if (compress_job->source_files == NULL)
+ {
+ compress_job->success = FALSE;
+ g_clear_object (&compress_job->common.undo_info);
+ return;
+ }
+
compressor = autoar_compressor_new (compress_job->source_files,
compress_job->output_file,
compress_job->format,