/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2009 Hiroyuki Yamamoto and the Claws Mail team
+ * Copyright (C) 1999-2012 Hiroyuki Yamamoto and the Claws Mail team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#ifdef HAVE_CONFIG_H
# include "config.h"
+#include "claws-features.h"
#endif
#define _GNU_SOURCE
#include <stdio.h>
+#ifdef USE_PTHREAD
+#include <pthread.h>
+#endif
+
#include "defs.h"
#include <glib.h>
#include <glib/gi18n.h>
#include "alertpanel.h"
#include "statusbar.h"
-#define MSGBUFSIZE 8192
+#define MESSAGEBUFSIZE 8192
#ifdef HAVE_FGETS_UNLOCKED
#define SC_FGETS fgets_unlocked
/* return values: -1 error, >=0 number of msgs added */
{
FILE *mbox_fp;
- gchar buf[MSGBUFSIZE];
+ gchar buf[MESSAGEBUFSIZE];
gchar *tmp_file;
gint msgs = 0;
gint lines;
gboolean printed = FALSE;
FolderItem *dropfolder;
- g_return_val_if_fail(dest != NULL, -1);
- g_return_val_if_fail(mbox != NULL, -1);
+ cm_return_val_if_fail(dest != NULL, -1);
+ cm_return_val_if_fail(mbox != NULL, -1);
debug_print("Getting messages from %s into %s...\n", mbox, dest->path);
folder_item_update_freeze();
if (apply_filter)
- dropfolder = folder_get_default_processing();
+ dropfolder = folder_get_default_processing(account->account_id);
else
dropfolder = dest;
if (msgs > 0 && msgs%500 == 0) {
if (printed)
statusbar_pop_all();
- statusbar_print_all(_("Importing from mbox... (%d mails imported)"), msgs);
+ statusbar_print_all(
+ ngettext("Importing from mbox... (%d mail imported)",
+ "Importing from mbox... (%d mails imported)", msgs), msgs);
printed=TRUE;
GTK_EVENTS_FLUSH();
}
empty_lines = 0;
lines = 0;
- more = FALSE;
/* process all lines from mboxrc file */
while (fgets(buf, sizeof(buf), mbox_fp) != NULL) {
int offset;
- /* eof not reached, expect more lines */
- more = TRUE;
-
/* eat empty lines */
if (buf[0] == '\n' || buf[0] == '\r') {
empty_lines++;
}
unfiltered = g_slist_reverse(unfiltered);
- folder_item_move_msgs(dest, unfiltered);
- for (cur = unfiltered; cur; cur = g_slist_next(cur)) {
- MsgInfo *info = (MsgInfo *)cur->data;
- procmsg_msginfo_free(info);
+ if (unfiltered) {
+ folder_item_move_msgs(dest, unfiltered);
+ for (cur = unfiltered; cur; cur = g_slist_next(cur)) {
+ MsgInfo *info = (MsgInfo *)cur->data;
+ procmsg_msginfo_free(info);
+ }
}
g_slist_free(unfiltered);
return -1;
}
- if (fprintf(lockfp, "%d\n", getpid()) < 0 ||
- fclose(lockfp) == EOF) {
- FILE_OP_ERROR(lockfile, "fopen||fclose");
+ if (fprintf(lockfp, "%d\n", getpid()) < 0) {
+ FILE_OP_ERROR(lockfile, "fprintf");
+ g_free(lockfile);
+ fclose(lockfp);
+ return -1;
+ }
+
+ if (fclose(lockfp) == EOF) {
+ FILE_OP_ERROR(lockfile, "fclose");
g_free(lockfile);
return -1;
}
#endif
#if HAVE_FLOCK
- if ((lockfd = open(base, O_RDWR)) < 0) {
+ if ((lockfd = g_open(base, O_RDWR, 0)) < 0) {
#else
- if ((lockfd = open(base, O_RDWR)) < 0) {
+ if ((lockfd = g_open(base, O_RDWR, 0)) < 0) {
#endif
FILE_OP_ERROR(base, "open");
return -1;
#if HAVE_FCNTL_H && !defined(G_OS_WIN32)
if (fcntl(lockfd, F_SETLK, &fl) == -1) {
g_warning("can't fnctl %s (%s)", base, strerror(errno));
+ close(lockfd);
return -1;
} else {
fcntled = TRUE;
GSList *mlist;
gint ret;
- g_return_val_if_fail(src != NULL, -1);
- g_return_val_if_fail(src->folder != NULL, -1);
- g_return_val_if_fail(mbox != NULL, -1);
+ cm_return_val_if_fail(src != NULL, -1);
+ cm_return_val_if_fail(src->folder != NULL, -1);
+ cm_return_val_if_fail(mbox != NULL, -1);
debug_print("Exporting messages from %s into %s...\n",
src->path, mbox);