g_signal_handlers_block_by_func(G_OBJECT(textbuf),
G_CALLBACK(compose_changed_cb),
compose);
+
+ g_signal_handlers_block_by_func(G_OBJECT(textbuf),
+ G_CALLBACK(text_inserted),
+ compose);
if ((fp = procmime_get_first_text_content(msginfo)) == NULL)
g_warning("Can't get text part\n");
while (fgets(buf, sizeof(buf), fp) != NULL) {
strcrchomp(buf);
gtk_text_buffer_insert(textbuf, &iter, buf, -1);
+ gtk_text_buffer_get_iter_at_mark(textbuf, &iter, mark);
}
fclose(fp);
}
compose_attach_parts(compose, msginfo);
+ g_signal_handlers_unblock_by_func(G_OBJECT(textbuf),
+ G_CALLBACK(text_inserted),
+ compose);
g_signal_handlers_unblock_by_func(G_OBJECT(textbuf),
G_CALLBACK(compose_changed_cb),
compose);
MsgInfo *msginfo;
MsgFlags flags = {0, 0};
- if (procmime_get_encoding_for_file(file) == ENC_7BIT)
+ if (procmime_get_encoding_for_text_file(file) == ENC_7BIT)
ainfo->encoding = ENC_7BIT;
else
ainfo->encoding = ENC_8BIT;
procmsg_msginfo_free(msginfo);
} else {
if (!g_ascii_strncasecmp(content_type, "text", 4))
- ainfo->encoding =
- procmime_get_encoding_for_file(file);
+ ainfo->encoding = procmime_get_encoding_for_text_file(file);
else
ainfo->encoding = ENC_BASE64;
name = g_path_get_basename(filename ? filename : file);
g_strdup("application/octet-stream");
ainfo->encoding = ENC_BASE64;
} else if (!g_ascii_strncasecmp(ainfo->content_type, "text", 4))
- ainfo->encoding = procmime_get_encoding_for_file(file);
+ ainfo->encoding =
+ procmime_get_encoding_for_text_file(file);
else
ainfo->encoding = ENC_BASE64;
name = g_path_get_basename(filename ? filename : file);
#undef WRAP_DEBUG
#ifdef WRAP_DEBUG
/* Darko: used when I debug wrapping */
-void dump_text(GtkTextBuffer textbuf, int pos, int tlen, int breakoncr)
+void dump_text(GtkTextBuffer *textbuf, int pos, int tlen, int breakoncr)
{
gint i, clen;
gchar cbuf[CHAR_BUF_SIZE];
+ GtkTextIter iter, end_iter;
printf("%d [", pos);
gtk_text_buffer_get_iter_at_offset(textbuf, &iter, pos);
gtk_text_buffer_get_iter_at_offset(textbuf, &end_iter, pos + tlen);
for (; gtk_text_iter_forward_char(&iter) &&
- gtk_text_iter_compare(&iter, &end_iter) < 0;)
+ gtk_text_iter_compare(&iter, &end_iter) < 0;) {
GET_CHAR(&iter, cbuf, clen);
if (clen < 0) break;
if (breakoncr && clen == 1 && cbuf[0] == '\n')
is_new_line = TRUE;
#ifdef WRAP_DEBUG
g_print("after delete l_pos=");
- dump_text(text, line_pos, tlen, 1);
+ dump_text(textbuf, line_pos, tlen, 1);
#endif
/* move beginning of line if we are on LF */
gtk_text_buffer_get_iter_at_offset(textbuf,
#ifdef WRAP_DEBUG
g_print("should wrap cur_pos=%d ", cur_pos);
- dump_text(text, p_pos, tlen, 1);
- dump_text(text, line_pos, tlen, 1);
+ dump_text(textbuf, p_pos, tlen, 1);
+ dump_text(textbuf, line_pos, tlen, 1);
#endif
/* force wrapping if it is one long word but not URL */
if (line_pos - p_pos <= i_len)
gtkut_text_buffer_is_uri_string(textbuf, line_pos, tlen)) {
#ifdef WRAP_DEBUG
g_print("found URL at ");
- dump_text(text, line_pos, tlen, 1);
+ dump_text(textbuf, line_pos, tlen, 1);
#endif
continue;
}
do_delete = FALSE;
#ifdef WRAP_DEBUG
g_print("after CR insert ");
- dump_text(text, line_pos, tlen, 1);
- dump_text(text, cur_pos, tlen, 1);
+ dump_text(textbuf, line_pos, tlen, 1);
+ dump_text(textbuf, cur_pos, tlen, 1);
#endif
/* should we insert quotation ? */
}
#ifdef WRAP_DEBUG
g_print("after quote insert ");
- dump_text(text, line_pos, tlen, 1);
+ dump_text(textbuf, line_pos, tlen, 1);
#endif
}
}
folder_item_scan(folder);
if (prefs_common.send_dialog_mode == SEND_DIALOG_ALWAYS)
gtk_widget_destroy(compose->window);
- }
+ } else {
+ alertpanel_error(_("The message was queued but could not be "
+ "sent.\nUse \"Send queued messages\" from "
+ "the main window to retry."));
+ if (prefs_common.send_dialog_mode == SEND_DIALOG_ALWAYS) {
+ compose_allow_user_actions (compose, TRUE);
+ compose->sending = FALSE;
+ }
+ return -1;
+ }
return 0;
/* Resent-Message-ID */
if (compose->account->gen_msgid) {
- generate_msgid(compose->account->address, buf, sizeof(buf));
+ generate_msgid(buf, sizeof(buf));
fprintf(fp, "Resent-Message-ID: <%s>\n", buf);
compose->msgid = g_strdup(buf);
}
gchar *encdata;
encdata = privacy_get_encrypt_data(compose->privacy_system, compose->to_list);
- fprintf(fp, "X-Sylpheed-Encrypt-Data:%s\n", encdata);
+ if (encdata != NULL)
+ fprintf(fp, "X-Sylpheed-Encrypt-Data:%s\n",
+ encdata);
g_free(encdata);
}
}
compose_add_headerfield_from_headerlist(compose, header, "Bcc", ", ");
/* Subject */
- str = (gpointer)gtk_entry_get_text(GTK_ENTRY(compose->subject_entry));
+ str = gtk_editable_get_chars(GTK_EDITABLE(compose->subject_entry), 0, -1);
if (*str != '\0' && !IS_IN_CUSTOM_HEADER("Subject")) {
- gchar *tmpstr;
-
- tmpstr = g_strdup(str);
- if (tmpstr == NULL) {
- g_string_free(header, TRUE);
- return NULL;
- }
g_strstrip(str);
if (*str != '\0') {
compose_convert_header(buf, sizeof(buf), str,
strlen("Subject: "), FALSE);
g_string_append_printf(header, "Subject: %s\n", buf);
}
- g_free(tmpstr);
}
+ g_free(str);
/* Message-ID */
if (compose->account->gen_msgid) {
- generate_msgid(compose->account->address, buf, sizeof(buf));
+ generate_msgid(buf, sizeof(buf));
g_string_append_printf(header, "Message-ID: <%s>\n", buf);
compose->msgid = g_strdup(buf);
}