# HG changeset patch # User Evan Schoenberg # Date 1196853119 0 # Node ID 3fdd39411e3e659125da709cbd13b09ff3e5a35f # Parent 3b1d7caddc27ef0cb2c5bcf6c1b424bc4f93c3ee# Parent 2a47eefca6b3325264c5630cc741cd6029ea4f94 merge of '7e3fbc31d04d03b44eec338a8703cd9329136a9a' and 'cc1c6037df9dd3887248c7bf7627ee45663949ff' diff -r 2a47eefca6b3 -r 3fdd39411e3e libpurple/plugins/autoaccept.c --- a/libpurple/plugins/autoaccept.c Wed Dec 05 08:17:15 2007 +0000 +++ b/libpurple/plugins/autoaccept.c Wed Dec 05 11:11:59 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);