Diffstat (limited to 'kmicromail/libetpan/mh/mailmh.c') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kmicromail/libetpan/mh/mailmh.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/kmicromail/libetpan/mh/mailmh.c b/kmicromail/libetpan/mh/mailmh.c index 119f217..5e2b4cc 100644 --- a/kmicromail/libetpan/mh/mailmh.c +++ b/kmicromail/libetpan/mh/mailmh.c | |||
@@ -607,6 +607,7 @@ static int mailmh_folder_alloc_msg(struct mailmh_folder * folder, | |||
607 | uint32_t k; | 607 | uint32_t k; |
608 | char * new_filename; | 608 | char * new_filename; |
609 | size_t len; | 609 | size_t len; |
610 | struct stat f_stat; | ||
610 | 611 | ||
611 | len = strlen(folder->fl_filename) + 20; | 612 | len = strlen(folder->fl_filename) + 20; |
612 | new_filename = malloc(len); | 613 | new_filename = malloc(len); |
@@ -615,16 +616,19 @@ static int mailmh_folder_alloc_msg(struct mailmh_folder * folder, | |||
615 | 616 | ||
616 | max = folder->fl_max_index + 1; | 617 | max = folder->fl_max_index + 1; |
617 | 618 | ||
619 | //fprintf(stderr,"mailmh_folder_alloc_msg filename: %s \n", filename); | ||
618 | k = 0; | 620 | k = 0; |
619 | while (k < MAX_TRY_ALLOC) { | 621 | while (k < MAX_TRY_ALLOC) { |
620 | snprintf(new_filename, len, "%s%c%lu", folder->fl_filename, | 622 | snprintf(new_filename, len, "%s%c%lu", folder->fl_filename, |
621 | MAIL_DIR_SEPARATOR, (unsigned long) (max + k)); | 623 | MAIL_DIR_SEPARATOR, (unsigned long) (max + k)); |
622 | 624 | //fprintf(stderr,"mailmh_folder_alloc_msg new_filename: %s \n", new_filename); | |
623 | if (link(filename, new_filename) == 0) { | 625 | if ( stat( new_filename, &f_stat ) == -1 ) { |
626 | // if (link(filename, new_filename) == 0) { | ||
624 | int r; | 627 | int r; |
625 | 628 | //fprintf(stderr,"filename found \n"); | |
629 | //unlink(filename); | ||
630 | rename (filename,new_filename ); | ||
626 | free(new_filename); | 631 | free(new_filename); |
627 | unlink(filename); | ||
628 | 632 | ||
629 | if (k > MAX_TRY_ALLOC / 2) { | 633 | if (k > MAX_TRY_ALLOC / 2) { |
630 | r = mailmh_folder_update(folder); | 634 | r = mailmh_folder_update(folder); |