Confirm before renaming on an existing file

This commit is contained in:
Pierre Pronchery 2018-08-13 21:24:48 +02:00
parent 96f256335b
commit 9d9a5aec5f

View File

@ -3703,6 +3703,7 @@ static void _view_on_filename_edited(GtkCellRendererText * renderer,
char * q; char * q;
char * f = filename; char * f = filename;
GError * error = NULL; GError * error = NULL;
struct stat st;
(void) renderer; (void) renderer;
#ifdef DEBUG #ifdef DEBUG
@ -3746,11 +3747,19 @@ static void _view_on_filename_edited(GtkCellRendererText * renderer,
fprintf(stderr, "DEBUG: %s() \"%s\"\n", __func__, to); fprintf(stderr, "DEBUG: %s() \"%s\"\n", __func__, to);
#endif #endif
/* rename */ /* rename */
if(rename(path, to) != 0) if(lstat(to, &st) != 0
browser_error(browser, strerror(errno), 1); || browser->prefs.confirm_before_delete != TRUE
else if(strchr(filename, '/') == NULL) || _browser_confirm(browser, "%s",
gtk_list_store_set(browser->store, &iter, BC_PATH, to, _("This will replace an existing file with the"
BC_DISPLAY_NAME, filename, -1); " same name.\n"
"Are you sure?")) == 0)
{
if(rename(path, to) != 0)
browser_error(browser, strerror(errno), 1);
else if(strchr(filename, '/') == NULL)
gtk_list_store_set(browser->store, &iter, BC_PATH, to,
BC_DISPLAY_NAME, filename, -1);
}
free(to); free(to);
free(q); free(q);
free(path); free(path);