#include "tags.h"
#include "timing.h"
#include "inc.h"
+#include "privacy.h"
extern SessionStats session_stats;
g_slist_free(mlist);
}
+MsgNumberList *procmsg_get_number_list_for_msgs(MsgInfoList *msglist)
+{
+ GSList *cur = NULL;
+ GSList *nums = NULL;
+
+ for (cur = msglist; cur; cur = cur->next) {
+ MsgInfo *msg = (MsgInfo *)cur->data;
+ nums = g_slist_prepend(nums, GUINT_TO_POINTER(msg->msgnum));
+ }
+
+ return g_slist_reverse(nums);
+}
+
struct MarkSum {
gint *new_msgs;
gint *unread_msgs;
{
gchar *file = folder_item_fetch_msg(queue, msginfo->msgnum);
PrefsAccount *ac = procmsg_get_account_from_file(file);
- GSList *cur = elem;
+ GSList *cur;
g_free(file);
for (cur = elem; cur; cur = cur->next) {
MsgInfo *cur_msginfo = (MsgInfo *)cur->data;
GNode *node, *next;
if (!procmsg_queue_lock(errstr)) {
+ main_window_set_menu_sensitive(mainwindow_get_mainwindow());
toolbar_main_set_sensitive(mainwindow_get_mainwindow());
return -1;
}
return -1;
}
+ main_window_set_menu_sensitive(mainwindow_get_mainwindow());
toolbar_main_set_sensitive(mainwindow_get_mainwindow());
folder_item_scan(queue);
}
procmsg_queue_unlock();
inc_unlock();
+ main_window_set_menu_sensitive(mainwindow_get_mainwindow());
toolbar_main_set_sensitive(mainwindow_get_mainwindow());
return (err != 0 ? -err : sent);
return 0;
}
+
void procmsg_print_message(MsgInfo *msginfo, const gchar *cmdline)
{
static const gchar *def_cmd = "lpr %s";
gchar buf[1024];
gchar *p;
int r;
+
cm_return_if_fail(msginfo);
if (procmime_msginfo_is_encrypted(msginfo))
return;
}
- if (msginfo->date) r = fprintf(prfp, "Date: %s\n", msginfo->date);
- if (msginfo->from) r = fprintf(prfp, "From: %s\n", msginfo->from);
- if (msginfo->to) r = fprintf(prfp, "To: %s\n", msginfo->to);
- if (msginfo->cc) r = fprintf(prfp, "Cc: %s\n", msginfo->cc);
- if (msginfo->newsgroups)
- r = fprintf(prfp, "Newsgroups: %s\n", msginfo->newsgroups);
- if (msginfo->subject) r = fprintf(prfp, "Subject: %s\n", msginfo->subject);
- fputc('\n', prfp);
+ if (msginfo->date) { r = fprintf(prfp, "Date: %s\n", msginfo->date); if (r < 0) goto fpferr; }
+ if (msginfo->from) { r = fprintf(prfp, "From: %s\n", msginfo->from); if (r < 0) goto fpferr; }
+ if (msginfo->to) { r = fprintf(prfp, "To: %s\n", msginfo->to); if (r < 0) goto fpferr; }
+ if (msginfo->cc) { r = fprintf(prfp, "Cc: %s\n", msginfo->cc); if (r < 0) goto fpferr; }
+ if (msginfo->newsgroups) {
+ r = fprintf(prfp, "Newsgroups: %s\n", msginfo->newsgroups); if (r < 0) goto fpferr;
+ }
+ if (msginfo->subject) { r = fprintf(prfp, "Subject: %s\n", msginfo->subject); if (r < 0) goto fpferr; }
+ if (fputc('\n', prfp) == EOF) goto fpferr;
- while (fgets(buf, sizeof(buf), tmpfp) != NULL)
+ while (fgets(buf, sizeof(buf), tmpfp) != NULL) {
r = fputs(buf, prfp);
+ if (r == EOF) goto fpferr;
+ }
fclose(prfp);
fclose(tmpfp);
strncat(buf, "&", sizeof(buf) - strlen(buf) - 1);
if (system(buf) == -1)
g_warning("system(%s) failed.", buf);
+ return;
+fpferr:
+ FILE_OP_ERROR(prtmp, "fprintf/fputc/fputs");
+ g_free(prtmp);
+ fclose(tmpfp);
+ fclose(prfp);
}
MsgInfo *procmsg_msginfo_new_ref(MsgInfo *msginfo)
g_free(msginfo->extradata->account_login);
g_free(msginfo->extradata);
}
- slist_free_strings(msginfo->references);
- g_slist_free(msginfo->references);
+ slist_free_strings_full(msginfo->references);
g_slist_free(msginfo->tags);
g_free(msginfo->plaintext_file);
gboolean save_clear_text = TRUE;
gchar *tmp_enc_file = NULL;
- int local = 0;
-
cm_return_val_if_fail(file != NULL, -1);
if ((fp = g_fopen(file, "rb")) == NULL) {
procmime_mimeinfo_free_all(mimeinfo);
g_free(from);
g_free(smtpserver);
- slist_free_strings(to_list);
- g_slist_free(to_list);
- slist_free_strings(newsgroup_list);
- g_slist_free(newsgroup_list);
+ slist_free_strings_full(to_list);
+ slist_free_strings_full(newsgroup_list);
g_free(savecopyfolder);
g_free(replymessageid);
g_free(fwdmessageid);
} else if (mailac && mailac->use_mail_command &&
mailac->mail_command && (* mailac->mail_command)) {
mailval = send_message_local(mailac->mail_command, fp);
- local = 1;
} else {
if (!mailac) {
mailac = account_find_from_smtp_server(from, smtpserver);
} else if (!to_list && !newsgroup_list) {
if (errstr) {
if (*errstr) g_free(*errstr);
- *errstr = g_strdup(_("Couldn't determine sending informations. "
+ *errstr = g_strdup(_("Couldn't determine sending information. "
"Maybe the email hasn't been generated by Claws Mail."));
}
mailval = -1;
session_stats.forwarded++;
else
session_stats.sent++;
-fprintf(stdout, "++ STATS ++ SENT %d %d %d\n", session_stats.sent, session_stats.replied, session_stats.forwarded);
-fflush(stdout);
}
/* save message to outbox */
g_free(from);
g_free(smtpserver);
- slist_free_strings(to_list);
- g_slist_free(to_list);
- slist_free_strings(newsgroup_list);
- g_slist_free(newsgroup_list);
+ slist_free_strings_full(to_list);
+ slist_free_strings_full(newsgroup_list);
g_free(savecopyfolder);
g_free(replymessageid);
g_free(fwdmessageid);
gint procmsg_send_message_queue(const gchar *file, gchar **errstr, FolderItem *queue, gint msgnum, gboolean *queued_removed)
{
gint result = procmsg_send_message_queue_full(file, FALSE, errstr, queue, msgnum, queued_removed);
+ main_window_set_menu_sensitive(mainwindow_get_mainwindow());
toolbar_main_set_sensitive(mainwindow_get_mainwindow());
return result;
}