# HG changeset patch # User Sadrul Habib Chowdhury # Date 1196840051 0 # Node ID 3b1d7caddc27ef0cb2c5bcf6c1b424bc4f93c3ee # Parent bacb8c59230a33168ab6a008ff5aa5fa1f5ff3f9 Do not overwrite an existing file. Closes #3982. diff -r bacb8c59230a -r 3b1d7caddc27 libpurple/plugins/autoaccept.c --- a/libpurple/plugins/autoaccept.c Wed Dec 05 04:59:43 2007 +0000 +++ b/libpurple/plugins/autoaccept.c Wed Dec 05 07:34:11 2007 +0000 @@ -114,6 +114,8 @@ case FT_ACCEPT: if (ensure_path_exists(pref)) { + int count = 1; + const char *escape; dirname = g_build_filename(pref, purple_normalize(account, xfer->who), NULL); if (!ensure_path_exists(dirname)) @@ -122,8 +124,16 @@ break; } - filename = g_build_filename(dirname, - purple_escape_filename(xfer->filename), NULL); + escape = purple_escape_filename(xfer->filename); + filename = g_build_filename(dirname, escape, NULL); + + /* Make sure the file doesn't exist. Do we want some better checking than this? */ + while (g_file_test(filename, G_FILE_TEST_EXISTS)) { + char *file = g_strdup_printf("%s-%d", escape, count++); + g_free(filename); + filename = g_build_filename(dirname, file, NULL); + g_free(file); + } purple_xfer_request_accepted(xfer, filename);