Revision 3141 libsylph/mbox.c
| mbox.c (revision 3141) | ||
|---|---|---|
| 474 | 474 |
gint export_to_mbox(FolderItem *src, const gchar *mbox) |
| 475 | 475 |
{
|
| 476 | 476 |
GSList *mlist; |
| 477 |
gint ret = 0; |
|
| 478 |
|
|
| 479 |
mlist = folder_item_get_msg_list(src, TRUE); |
|
| 480 |
if (mlist) {
|
|
| 481 |
ret = export_msgs_to_mbox(src, mlist, mbox); |
|
| 482 |
procmsg_msg_list_free(mlist); |
|
| 483 |
} |
|
| 484 |
|
|
| 485 |
return ret; |
|
| 486 |
} |
|
| 487 |
|
|
| 488 |
/* store MLIST into one MBOX file. */ |
|
| 489 |
gint export_msgs_to_mbox(FolderItem *src, GSList *mlist, const gchar *mbox) |
|
| 490 |
{
|
|
| 477 | 491 |
GSList *cur; |
| 478 | 492 |
MsgInfo *msginfo; |
| 479 | 493 |
FILE *msg_fp; |
| ... | ... | |
| 484 | 498 |
|
| 485 | 499 |
g_return_val_if_fail(src != NULL, -1); |
| 486 | 500 |
g_return_val_if_fail(src->folder != NULL, -1); |
| 501 |
g_return_val_if_fail(mlist != NULL, -1); |
|
| 487 | 502 |
g_return_val_if_fail(mbox != NULL, -1); |
| 488 | 503 |
|
| 489 | 504 |
debug_print(_("Exporting messages from %s into %s...\n"),
|
| ... | ... | |
| 496 | 511 |
|
| 497 | 512 |
cur_ac = account_get_current_account(); |
| 498 | 513 |
|
| 499 |
mlist = folder_item_get_msg_list(src, TRUE); |
|
| 500 | 514 |
length = g_slist_length(mlist); |
| 501 | 515 |
|
| 502 | 516 |
for (cur = mlist; cur != NULL; cur = cur->next) {
|
| ... | ... | |
| 507 | 521 |
src->folder->ui_func(src->folder, src, src->folder->ui_func_data ? src->folder->ui_func_data : GINT_TO_POINTER(count)); |
| 508 | 522 |
|
| 509 | 523 |
msg_fp = procmsg_open_message(msginfo); |
| 510 |
if (!msg_fp) {
|
|
| 511 |
procmsg_msginfo_free(msginfo); |
|
| 524 |
if (!msg_fp) |
|
| 512 | 525 |
continue; |
| 513 |
} |
|
| 514 | 526 |
|
| 515 | 527 |
strncpy2(buf, |
| 516 | 528 |
msginfo->from ? msginfo->from : |
| ... | ... | |
| 530 | 542 |
fputc('\n', mbox_fp);
|
| 531 | 543 |
|
| 532 | 544 |
fclose(msg_fp); |
| 533 |
procmsg_msginfo_free(msginfo); |
|
| 534 | 545 |
} |
| 535 | 546 |
|
| 536 |
g_slist_free(mlist); |
|
| 537 |
|
|
| 538 | 547 |
fclose(mbox_fp); |
| 539 | 548 |
|
| 540 | 549 |
return 0; |
Also available in: Unified diff