Ticket: 3908: quiet single file overwrite.

If target file exists, MC overwrites that file without confirmation.
The bug was introduced in #3149.

How to reproduce:
1. Create two files: `touch a aa`.
2. Stay on "aa".
3. Make sure that Options/Confirmation.../Overwrite option is checked on.
4. Press Shift-F6
5. Edit the "to:" value to "a" ("a" file exists) and press Enter.

Actual result:
The "a" file is overwritten w/o confirmation.

Expected result:
Since the "a" file exists the confirmation dialog must be shown.

The problem is: confirmation dialog requires context UI which was not
created in case of single file rename operation.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
This commit is contained in:
Andrew Borodin 2018-04-07 13:13:53 +03:00
parent b7ead57e0b
commit 7d73ce1cbe

View File

@ -716,6 +716,9 @@ panel_operate_init_totals (const WPanel * panel, const vfs_path_t * source,
ctx->progress_totals_computed = FALSE;
}
/* destroy already created UI for single file rename operation */
file_op_context_destroy_ui (ctx);
file_op_context_create_ui (ctx, TRUE, dialog_type);
return status;
@ -1948,7 +1951,14 @@ operate_single_file (const WPanel * panel, FileOperation operation, file_op_tota
case OP_MOVE:
if (is_file)
{
#ifdef ENABLE_BACKGROUND
/* create UI to show confirmation dialog */
if (!mc_global.we_are_background)
file_op_context_create_ui (ctx, TRUE, FILEGUI_DIALOG_ONE_ITEM);
#endif
value = move_file_file (panel, tctx, ctx, src, dest);
}
else
value = do_move_dir_dir (panel, tctx, ctx, src, dest);
break;