static void compose_wrap_line (Compose *compose);
static void compose_set_title (Compose *compose);
-static gint compose_send (Compose *compose);
+/* static gint compose_send (Compose *compose); */
static gint compose_write_to_file (Compose *compose,
const gchar *file,
gboolean is_draft);
{"text/uri-list", 0, 0}
};
-void compose_new(PrefsAccount *account)
+Compose * compose_new(PrefsAccount *account)
{
- compose_new_with_recipient(account, NULL);
+ return compose_new_with_recipient(account, NULL);
}
-void compose_new_with_recipient(PrefsAccount *account, const gchar *to)
+Compose * compose_new_with_recipient(PrefsAccount *account, const gchar *to)
{
Compose *compose;
gtk_widget_grab_focus(compose->to_entry);
} else
gtk_widget_grab_focus(compose->newsgroups_entry);
+
+ return compose;
}
void compose_reply(MsgInfo *msginfo, gboolean quote, gboolean to_all)
gtk_stext_insert(text, NULL, NULL, NULL, "\n", 1); \
}
-void compose_forward(MsgInfo *msginfo, gboolean as_attach)
+Compose * compose_forward(PrefsAccount * account, MsgInfo *msginfo,
+ gboolean as_attach)
{
Compose *compose;
- PrefsAccount *account;
+ /* PrefsAccount *account; */
GtkSText *text;
FILE *fp;
gchar buf[BUFFSIZE];
g_return_if_fail(msginfo != NULL);
g_return_if_fail(msginfo->folder != NULL);
- account = msginfo->folder->folder->account;
- if (!account) account = cur_account;
+ if (account == NULL) {
+ account = msginfo->folder->folder->account;
+ if (!account) account = cur_account;
+ }
g_return_if_fail(account != NULL);
MSG_UNSET_FLAGS(msginfo->flags, MSG_REPLIED);
gtk_widget_grab_focus(compose->to_entry);
else
gtk_widget_grab_focus(compose->newsgroups_entry);
+
+ return compose;
}
#undef INSERT_FW_HEADER
case COMPOSE_BCC:
entry = GTK_ENTRY(compose->bcc_entry);
break;
+ case COMPOSE_NEWSGROUPS:
+ entry = GTK_ENTRY(compose->newsgroups_entry);
+ break;
case COMPOSE_TO:
default:
entry = GTK_ENTRY(compose->to_entry);
g_free(str);
}
-static gint compose_send(Compose *compose)
+gint compose_send(Compose *compose)
{
gchar tmp[MAXPATHLEN + 1];
gchar *to, *newsgroups;
(_("Can't save the message to outbox."));
}
- if (unlink(tmp) < 0) FILE_OP_ERROR(tmp, "unlink");
+ unlink(tmp);
lock = FALSE;
return ok;
}
outbox = folder_get_default_outbox();
folder_item_scan(outbox);
- if ((num = folder_item_add_msg(outbox, file)) < 0) {
+ if ((num = folder_item_add_msg(outbox, file, FALSE)) < 0) {
g_warning(_("can't save message\n"));
return -1;
}
path = folder_item_get_path(outbox);
+ if (!is_dir_exist(path))
+ make_dir_hier(path);
+
if ((fp = procmsg_open_mark_file(path, TRUE)) == NULL)
g_warning(_("can't open mark file\n"));
else {
queue = folder_get_default_queue();
folder_item_scan(queue);
- if ((num = folder_item_add_msg(queue, tmp)) < 0) {
+ if ((num = folder_item_add_msg(queue, tmp, TRUE)) < 0) {
g_warning(_("can't queue the message\n"));
unlink(tmp);
g_free(tmp);
return -1;
}
- unlink(tmp);
g_free(tmp);
queue_path = folder_item_get_path(queue);
+ if (!is_dir_exist(queue_path))
+ make_dir_hier(queue_path);
+
if ((fp = procmsg_open_mark_file(queue_path, TRUE)) == NULL)
g_warning(_("can't open mark file\n"));
else {
}
}
+ /* Organization */
+ if (compose->account->organization &&
+ !IS_IN_CUSTOM_HEADER("Organization")) {
+ compose_convert_header(buf, sizeof(buf),
+ compose->account->organization,
+ strlen("Organization: "));
+ fprintf(fp, "Organization: %s\n", buf);
+ }
+
/* Program version and system info */
/* uname(&utsbuf); */
str = gtk_entry_get_text(GTK_ENTRY(compose->to_entry));
/* utsbuf.sysname, utsbuf.release, utsbuf.machine); */
}
- /* Organization */
- if (compose->account->organization &&
- !IS_IN_CUSTOM_HEADER("Organization")) {
- compose_convert_header(buf, sizeof(buf),
- compose->account->organization,
- strlen("Organization: "));
- fprintf(fp, "Organization: %s\n", buf);
- }
+ /* custom headers */
+ if (compose->account->add_customhdr) {
+ GSList *cur;
+
+ for (cur = compose->account->customhdr_list; cur != NULL;
+ cur = cur->next) {
+ CustomHeader *chdr = (CustomHeader *)cur->data;
+ if (strcasecmp(chdr->name, "Date") != 0 &&
+ strcasecmp(chdr->name, "From") != 0 &&
+ strcasecmp(chdr->name, "To") != 0 &&
+ strcasecmp(chdr->name, "Sender") != 0 &&
+ strcasecmp(chdr->name, "Message-Id") != 0 &&
+ strcasecmp(chdr->name, "In-Reply-To") != 0 &&
+ strcasecmp(chdr->name, "References") != 0 &&
+ strcasecmp(chdr->name, "Mime-Version") != 0 &&
+ strcasecmp(chdr->name, "Content-Type") != 0 &&
+ strcasecmp(chdr->name, "Content-Transfer-Encoding")
+ != 0)
+ compose_convert_header
+ (buf, sizeof(buf),
+ chdr->value ? chdr->value : "",
+ strlen(chdr->name) + 2);
+ fprintf(fp, "%s: %s\n", chdr->name, buf);
+ }
+ }
+
/* MIME */
fprintf(fp, "Mime-Version: 1.0\n");
if (compose->use_attach) {
procmime_get_encoding_str(encoding));
}
- /* custom headers */
- if (compose->account->add_customhdr) {
- GSList *cur;
-
- for (cur = compose->account->customhdr_list; cur != NULL;
- cur = cur->next) {
- CustomHeader *chdr = (CustomHeader *)cur->data;
-
- if (strcasecmp(chdr->name, "Date") != 0 &&
- strcasecmp(chdr->name, "Message-Id") != 0 &&
- strcasecmp(chdr->name, "In-Reply-To") != 0 &&
- strcasecmp(chdr->name, "References") != 0 &&
- strcasecmp(chdr->name, "Mime-Version") != 0 &&
- strcasecmp(chdr->name, "Content-Type") != 0 &&
- strcasecmp(chdr->name, "Content-Transfer-Encoding") != 0)
- fprintf(fp, "%s: %s\n",
- chdr->name, chdr->value);
- }
- }
-
/* Request Return Receipt */
if (!IS_IN_CUSTOM_HEADER("Disposition-Notification-To")) {
if (compose->return_receipt) {
return;
}
- if (folder_item_add_msg(draft, tmp) < 0) {
+ if (folder_item_add_msg(draft, tmp, TRUE) < 0) {
unlink(tmp);
g_free(tmp);
return;
}
- unlink(tmp);
g_free(tmp);
//folderview_scan_folder_a(DRAFT_DIR, TRUE);