Mercurial > pidgin.yaz
comparison libpurple/plugins/autoaccept.c @ 21783:3b1d7caddc27
Do not overwrite an existing file. Closes #3982.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Wed, 05 Dec 2007 07:34:11 +0000 |
parents | bacb8c59230a |
children | ad0d0efa30dd |
comparison
equal
deleted
inserted
replaced
21782:bacb8c59230a | 21783:3b1d7caddc27 |
---|---|
112 case FT_ASK: | 112 case FT_ASK: |
113 break; | 113 break; |
114 case FT_ACCEPT: | 114 case FT_ACCEPT: |
115 if (ensure_path_exists(pref)) | 115 if (ensure_path_exists(pref)) |
116 { | 116 { |
117 int count = 1; | |
118 const char *escape; | |
117 dirname = g_build_filename(pref, purple_normalize(account, xfer->who), NULL); | 119 dirname = g_build_filename(pref, purple_normalize(account, xfer->who), NULL); |
118 | 120 |
119 if (!ensure_path_exists(dirname)) | 121 if (!ensure_path_exists(dirname)) |
120 { | 122 { |
121 g_free(dirname); | 123 g_free(dirname); |
122 break; | 124 break; |
123 } | 125 } |
124 | 126 |
125 filename = g_build_filename(dirname, | 127 escape = purple_escape_filename(xfer->filename); |
126 purple_escape_filename(xfer->filename), NULL); | 128 filename = g_build_filename(dirname, escape, NULL); |
129 | |
130 /* Make sure the file doesn't exist. Do we want some better checking than this? */ | |
131 while (g_file_test(filename, G_FILE_TEST_EXISTS)) { | |
132 char *file = g_strdup_printf("%s-%d", escape, count++); | |
133 g_free(filename); | |
134 filename = g_build_filename(dirname, file, NULL); | |
135 g_free(file); | |
136 } | |
127 | 137 |
128 purple_xfer_request_accepted(xfer, filename); | 138 purple_xfer_request_accepted(xfer, filename); |
129 | 139 |
130 g_free(dirname); | 140 g_free(dirname); |
131 g_free(filename); | 141 g_free(filename); |