summaryrefslogtreecommitdiffabout
path: root/libetpan/src/low-level/maildir/maildir.c
Side-by-side diff
Diffstat (limited to 'libetpan/src/low-level/maildir/maildir.c') (more/less context) (ignore whitespace changes)
-rw-r--r--libetpan/src/low-level/maildir/maildir.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/libetpan/src/low-level/maildir/maildir.c b/libetpan/src/low-level/maildir/maildir.c
index 98b9f87..e81625d 100644
--- a/libetpan/src/low-level/maildir/maildir.c
+++ b/libetpan/src/low-level/maildir/maildir.c
@@ -112,2 +112,4 @@ static char * maildir_get_new_message_filename(struct maildir * md,
time_t now;
+ //LR
+ struct stat f_stat;
int got_file;
@@ -123,3 +125,14 @@ static char * maildir_get_new_message_filename(struct maildir * md,
md->mdir_path, basename);
-
+
+ // LR changed following lines
+ if ( stat( filename, &f_stat ) == -1 ) {
+ char * dup_filename;
+
+ dup_filename = strdup(filename);
+ if (dup_filename == NULL) {
+ //unlink(filename);
+ return NULL;
+ }
+ rename (tmpfile,dup_filename );
+#if 0
if (link(tmpfile, filename) == 0) {
@@ -149,3 +162,3 @@ static char * maildir_get_new_message_filename(struct maildir * md,
}
-
+#endif
md->mdir_counter ++;