summaryrefslogtreecommitdiff
path: root/libre/mc-libre/fs36962.diff
blob: 0db5ed42b0a14f69e0b0bda33570d7ce90f51c4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
diff -ur mc-4.8.10-orig/src/filemanager/file.c mc-4.8.10/src/filemanager/file.c
--- mc-4.8.10-orig/src/filemanager/file.c	2013-08-02 22:02:40.000000000 +0400
+++ mc-4.8.10/src/filemanager/file.c	2013-09-17 09:59:30.699635407 +0400
@@ -1272,8 +1272,8 @@
 
 /** Initialize variables for progress bars */
 static FileProgressStatus
-panel_operate_init_totals (FileOperation operation, const WPanel * panel, const char *source,
-                           FileOpContext * ctx, filegui_dialog_type_t dialog_type)
+panel_operate_init_totals (const WPanel * panel, const char *source, FileOpContext * ctx,
+                           filegui_dialog_type_t dialog_type)
 {
     FileProgressStatus status;
 
@@ -1282,7 +1282,7 @@
         return FILE_CONT;
 #endif
 
-    if (operation != OP_MOVE && verbose && file_op_compute_totals)
+    if (verbose && file_op_compute_totals)
     {
         ComputeDirSizeUI *ui;
 
@@ -2378,13 +2378,6 @@
     mc_refresh ();
     if (ctx->erase_at_end)
     {
-        /* remove files after move */
-        if (erase_list != NULL)
-        {
-            file_op_context_destroy_ui (ctx);
-            file_op_context_create_ui (ctx, FALSE, FILEGUI_DIALOG_DELETE_ITEM);
-        }
-
         while (erase_list != NULL && return_status != FILE_ABORT)
         {
             struct link *lp = (struct link *) erase_list->data;
@@ -2792,14 +2785,12 @@
     {
         if (operation == OP_DELETE)
             dialog_type = FILEGUI_DIALOG_DELETE_ITEM;
+        else if (single_entry && S_ISDIR (selection (panel)->st.st_mode))
+            dialog_type = FILEGUI_DIALOG_MULTI_ITEM;
+        else if (single_entry || force_single)
+            dialog_type = FILEGUI_DIALOG_ONE_ITEM;
         else
-        {
-            dialog_type = ((operation != OP_COPY) || single_entry || force_single)
-                ? FILEGUI_DIALOG_ONE_ITEM : FILEGUI_DIALOG_MULTI_ITEM;
-
-            if (single_entry && (operation == OP_COPY) && S_ISDIR (selection (panel)->st.st_mode))
-                dialog_type = FILEGUI_DIALOG_MULTI_ITEM;
-        }
+            dialog_type = FILEGUI_DIALOG_MULTI_ITEM;
     }
 
     /* Initialize things */
@@ -2844,8 +2835,8 @@
         else
             source_with_vpath = vfs_path_append_new (panel->cwd_vpath, source, (char *) NULL);
 #endif /* WITH_FULL_PATHS */
-        if (panel_operate_init_totals
-            (operation, panel, vfs_path_as_str (source_with_vpath), ctx, dialog_type) == FILE_CONT)
+        if (panel_operate_init_totals (panel, vfs_path_as_str (source_with_vpath), ctx, dialog_type)
+            == FILE_CONT)
         {
             if (operation == OP_DELETE)
             {
@@ -2936,7 +2927,7 @@
                 goto clean_up;
         }
 
-        if (panel_operate_init_totals (operation, panel, NULL, ctx, dialog_type) == FILE_CONT)
+        if (panel_operate_init_totals (panel, NULL, ctx, dialog_type) == FILE_CONT)
         {
             /* Loop for every file, perform the actual copy operation */
             for (i = 0; i < panel->count; i++)