commit - 6216b7e249699bea8074e11fefdb9884a9762ba8
commit + eef80ebe430c6b4f835f0068c03002b2d44e627d
blob - d8f345024fd7f2814423fcd6e417be849fda3c47
blob + acba62c760d7d0f74cd712e6f936f948862e9cd0
--- src/messageview.c
+++ src/messageview.c
mimeview_select_mimepart_icon(messageview->mimeview, root);
done:
messageview_set_menu_sensitive(messageview);
- /* plugins may hook in here to work with the message view */
- hooks_invoke(MESSAGE_VIEW_SHOW_DONE_HOOKLIST, messageview);
-
g_free(file);
return 0;
blob - 4d5b226ff3349bdc13f52ac334475a0c41f04635
blob + 2ff07965593c99af0ff754d6f64ffd38d960e958
--- src/messageview.h
+++ src/messageview.h
#include "procmime.h"
#include "toolbar.h"
-#define MESSAGE_VIEW_SHOW_DONE_HOOKLIST "message_view_show_done_hooklist"
-
struct _MessageView
{
GtkWidget *vbox;
MessageView *messageview_create (MainWindow *mainwin);
MessageView *messageview_create_with_new_window (MainWindow *mainwin);
-void messageview_init (MessageView *messageview);
+void messageview_init(MessageView *messageview);
gint messageview_show (MessageView *messageview,
MsgInfo *msginfo,
gboolean all_headers);
blob - bb8a4f7520a1328a62843150357ab6ac44bd66a5
blob + 62b45e079317a09f437b0a56a3b533f22f09ac82
--- src/mimeview.c
+++ src/mimeview.c
GdkEventButton *event,
MimeView *mimeview);
-static void mimeview_drag_data_get (GtkWidget *widget,
- GdkDragContext *drag_context,
- GtkSelectionData *selection_data,
- guint info,
- guint time,
- MimeView *mimeview);
-
static gboolean mimeview_scrolled (GtkWidget *widget,
GdkEventScroll *event,
MimeView *mimeview);
gchar *titles[N_MIMEVIEW_COLS];
gint cols;
- debug_print("Creating MIME view...\n");
mimeview = g_new0(MimeView, 1);
titles[COL_MIMETYPE] = _("MIME Type");
gtk_widget_show(ctree);
gtk_container_add(GTK_CONTAINER(scrolledwin), ctree);
- gtk_drag_source_set(ctree, GDK_BUTTON1_MASK|GDK_BUTTON3_MASK,
- mimeview_mime_types, 1, GDK_ACTION_COPY);
g_signal_connect(G_OBJECT(selection), "changed",
G_CALLBACK(mimeview_selected), mimeview);
g_signal_connect(G_OBJECT(ctree), "button_release_event",
G_CALLBACK(mimeview_button_pressed), mimeview);
- g_signal_connect(G_OBJECT(ctree), "drag_data_get",
- G_CALLBACK(mimeview_drag_data_get), mimeview);
mime_notebook = gtk_notebook_new();
gtk_widget_set_name(GTK_WIDGET(mime_notebook), "mime_notebook");
vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
gtk_widget_show(vbox);
+ gtk_box_pack_start(GTK_BOX(vbox), mime_notebook, TRUE, TRUE, 0);
paned = gtk_paned_new(GTK_ORIENTATION_VERTICAL);
gtk_widget_show(paned);
mimeview_clear(mimeview);
- cm_return_if_fail(file != NULL);
- cm_return_if_fail(mimeinfo != NULL);
-
mimeview->mimeinfo = mimeinfo;
+ mimeview->file = strdup(file);
- mimeview->file = g_strdup(file);
+ g_signal_handlers_block_by_func(G_OBJECT(ctree), mimeview_selected, mimeview);
- g_signal_handlers_block_by_func(G_OBJECT(ctree), mimeview_selected,
- mimeview);
-
mimeview_set_multipart_tree(mimeview, mimeinfo, NULL);
gtk_tree_view_expand_all(ctree);
- icon_list_clear(mimeview);
icon_list_create(mimeview, mimeinfo);
- g_signal_handlers_unblock_by_func(G_OBJECT(ctree),
- mimeview_selected, mimeview);
+ g_signal_handlers_unblock_by_func(G_OBJECT(ctree), mimeview_selected, mimeview);
}
static void mimeview_free_mimeinfo(MimeView *mimeview)
static void mimeview_show_message_part(MimeView *mimeview, MimeInfo *partinfo)
{
+ if (!partinfo) return;
+
FILE *fp;
- const gchar *fname;
-
- if (!partinfo) return;
-
- fname = mimeview->file;
- if (!fname) return;
-
- if ((fp = g_fopen(fname, "rb")) == NULL) {
- FILE_OP_ERROR(fname, "g_fopen");
+ if ((fp = fopen(mimeview->file, "r")) == NULL) {
+ warn("open %s", mimeview->file);
return;
}
- if (fseek(fp, partinfo->offset, SEEK_SET) < 0) {
- FILE_OP_ERROR(mimeview->file, "fseek");
- fclose(fp);
- return;
- }
-
mimeview_change_view_type(mimeview, MIMEVIEW_TEXT);
textview_show_part(mimeview->textview, partinfo, fp);
mimeview_change_view_type(mimeview, MIMEVIEW_TEXT);
}
-static void redisplay_email(GtkWidget *widget, gpointer user_data)
-{
- MimeView *mimeview = (MimeView *) user_data;
- gtk_tree_path_free(mimeview->opened);
- mimeview->opened = NULL;
- mimeview_selected(gtk_tree_view_get_selection(
- GTK_TREE_VIEW(mimeview->ctree)), mimeview);
-}
-
-void mimeview_show_part_as_text(MimeView *mimeview, MimeInfo *partinfo)
-{
- cm_return_if_fail(mimeview != NULL);
- cm_return_if_fail(partinfo != NULL);
-
- mimeview_show_message_part(mimeview, partinfo);
-}
-
static void mimeview_selected(GtkTreeSelection *selection, MimeView *mimeview)
{
GtkTreeView *ctree = GTK_TREE_VIEW(mimeview->ctree);
gtk_tree_view_scroll_to_cell(ctree, path, NULL, TRUE, 0.5, 0);
partinfo = mimeview_get_node_part(mimeview, path);
- if (!partinfo) return;
+ if (!partinfo)
+ return;
/* ungrab the mouse event */
if (gtk_widget_has_grab(GTK_WIDGET(ctree))) {
case MIMETYPE_MESSAGE:
case MIMETYPE_MULTIPART:
mimeview_show_message_part(mimeview, partinfo);
-
break;
default:
mimeview->textview->default_text = TRUE;
#define BREAK_ON_MODIFIER_KEY() \
if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0) break
-static void mimeview_drag_data_get(GtkWidget *widget,
- GdkDragContext *drag_context,
- GtkSelectionData *selection_data,
- guint info,
- guint time,
- MimeView *mimeview)
-{
- gchar *filename = NULL, *uriname, *tmp = NULL;
- MimeInfo *partinfo;
- gint err;
- gint count = 0;
-
- if (!mimeview->opened) return;
- if (!mimeview->file) return;
-
- partinfo = mimeview_get_selected_part(mimeview);
- if (!partinfo) return;
-
- if (strlen(get_part_name(partinfo)) > 0) {
- filename = g_path_get_basename(get_part_name(partinfo));
- if (filename) {
- if (*filename == '\0') {
- g_free(filename);
- return;
- }
- }
- } else if (partinfo->type == MIMETYPE_MESSAGE
- && !g_ascii_strcasecmp(partinfo->subtype, "rfc822")) {
- gchar *name = NULL;
- GPtrArray *headers = NULL;
- FILE *fp;
-
- fp = g_fopen(partinfo->data.filename, "rb");
- if (fp != NULL && fseek(fp, partinfo->offset, SEEK_SET) == 0) {
- headers = procheader_get_header_array(fp);
- if (headers) {
- gint i;
- for (i = 0; i < headers->len; i++) {
- Header *header = g_ptr_array_index(headers, i);
- if (procheader_headername_equal(header->name, "Subject")) {
- unfold_line(header->body);
- name = g_strconcat(header->body, ".txt", NULL);
- subst_for_filename(name);
- }
- }
- procheader_header_array_destroy(headers);
- }
- }
- if (fp != NULL)
- fclose(fp);
- if (name)
- filename = g_path_get_basename(name);
- g_free(name);
- }
- if (filename == NULL)
- filename = g_path_get_basename("Unnamed part");
-
- if (!g_utf8_validate(filename, -1, NULL))
- tmp = conv_codeset_strdup(filename,
- conv_get_locale_charset_str(),
- CS_UTF_8);
-
- if (tmp == NULL) {
- g_warning("filename not in UTF-8");
- tmp = g_strdup(filename);
- }
- g_free(filename);
- filename = g_strconcat(get_mime_tmp_dir(), G_DIR_SEPARATOR_S,
- tmp, NULL);
-
-check_new_file:
- if (is_file_exist(filename)) {
- gchar *ext = NULL;
- gchar *prefix = NULL;
- gchar *new_name = NULL;
- if (strrchr(tmp, '.')) {
- prefix = g_strdup(tmp);
- ext = g_strdup(strrchr(tmp, '.'));
- *(strrchr(prefix, '.')) = '\0';
- } else {
- prefix = g_strdup(tmp);
- ext = g_strdup("");
- }
- count++;
- new_name = g_strdup_printf("%s.%d%s", prefix, count, ext);
- g_free(prefix);
- g_free(ext);
- g_free(filename);
- filename = g_strconcat(get_mime_tmp_dir(), G_DIR_SEPARATOR_S,
- new_name, NULL);
- g_free(new_name);
- goto check_new_file;
- }
-
- g_free(tmp);
-
- if ((err = procmime_get_part(filename, partinfo)) < 0)
- alertpanel_error
- (_("Couldn't save the part of multipart message: %s"),
- g_strerror(-err));
-
- tmp = g_filename_to_uri(filename, NULL, NULL);
- uriname = g_strconcat(tmp, "\r\n", NULL);
- g_free(tmp);
-
- gtk_selection_data_set(selection_data,
- gtk_selection_data_get_target(selection_data), 8,
- (guchar *)uriname, strlen(uriname));
-
- g_free(uriname);
- g_free(filename);
-}
-
/**
* Returns a filename (with path) for an attachment
* \param partinfo The attachment to save
gtk_widget_set_tooltip_markup(button, tip);
g_free(tip);
gtk_widget_show_all(button);
- gtk_drag_source_set(button, GDK_BUTTON1_MASK|GDK_BUTTON3_MASK,
- mimeview_mime_types, 1, GDK_ACTION_COPY);
g_signal_connect(G_OBJECT(button), "popup-menu",
G_CALLBACK(icon_popup_menu), mimeview);
G_CALLBACK(icon_clicked_cb), mimeview);
g_signal_connect(G_OBJECT(button), "key_press_event",
G_CALLBACK(icon_key_pressed), mimeview);
- g_signal_connect(G_OBJECT(button), "drag_data_get",
- G_CALLBACK(mimeview_drag_data_get), mimeview);
gtk_container_add(GTK_CONTAINER(grid), button);
}
static void icon_list_create(MimeView *mimeview, MimeInfo *mimeinfo)
{
- gint min_width, width;
-
- cm_return_if_fail(mimeinfo != NULL);
-
+ icon_list_clear(mimeview);
while (mimeinfo != NULL) {
if (mimeinfo->type != MIMETYPE_MULTIPART)
icon_list_append_icon(mimeview, mimeinfo);
? (MimeInfo *) mimeinfo->node->next->data
: NULL;
}
+
+ gint min_width, width;
gtk_widget_get_preferred_width(mimeview->icon_mainbox, &min_width, &width);
if (min_width < width) {
gtk_widget_set_size_request(mimeview->icon_mainbox,
void mimeview_update (MimeView *mimeview)
{
if (mimeview && mimeview->mimeinfo) {
- icon_list_clear(mimeview);
icon_list_create(mimeview, mimeview->mimeinfo);
}
}
blob - d40b340e19bbd25e1bccce465a77aad292d47664
blob + 875ee32cd3bcdf17b021f5b9508e4a0857b693d3
--- src/mimeview.h
+++ src/mimeview.h
const gchar *file);
gboolean mimeview_show_part (MimeView *mimeview,
MimeInfo *partinfo);
-void mimeview_show_part_as_text (MimeView *mimeview,
- MimeInfo *partinfo);
void mimeview_destroy (MimeView *mimeview);
void mimeview_update (MimeView *mimeview);
void mimeview_clear (MimeView *mimeview);
blob - 701ad99e21e797b69271e888ad4526f641ead88f
blob + 918dfee20af7550444b760ad983680c6db7a4d9c
--- src/textview.c
+++ src/textview.c
void textview_show_part(TextView *textview, MimeInfo *mimeinfo, FILE *fp)
{
- cm_return_if_fail(mimeinfo != NULL);
- cm_return_if_fail(fp != NULL);
-
textview->loading = TRUE;
textview->stop_loading = FALSE;
} else {
if (fseek(fp, mimeinfo->offset, SEEK_SET) < 0)
perror("fseek");
-
textview_write_body(textview, mimeinfo);
}
textview->loading = FALSE;
textview->stop_loading = FALSE;
textview_set_position(textview, 0);
-
}
static void textview_add_part(TextView *textview, MimeInfo *mimeinfo)
{
- GtkTextView *text;
- GtkTextBuffer *buffer;
- GtkTextIter iter;
+ if (textview->stop_loading)
+ return;
+ if (mimeinfo->type == MIMETYPE_MULTIPART)
+ return;
+
gchar buf[BUFFSIZE];
GPtrArray *headers = NULL;
const gchar *name;
gchar *content_type;
- gint charcount;
-
- cm_return_if_fail(mimeinfo != NULL);
- text = GTK_TEXT_VIEW(textview->text);
- buffer = gtk_text_view_get_buffer(text);
- charcount = gtk_text_buffer_get_char_count(buffer);
+ GtkTextView *text = GTK_TEXT_VIEW(textview->text);
+ GtkTextBuffer *buffer = gtk_text_view_get_buffer(text);
+ int charcount = gtk_text_buffer_get_char_count(buffer);
+ GtkTextIter iter;
gtk_text_buffer_get_end_iter(buffer, &iter);
- if (textview->stop_loading) {
- return;
- }
- if (mimeinfo->type == MIMETYPE_MULTIPART) {
- return;
- }
-
textview->prev_quote_level = -1;
if ((mimeinfo->type == MIMETYPE_MESSAGE) && !g_ascii_strcasecmp(mimeinfo->subtype, "rfc822")) {
static void recursive_add_parts(TextView *textview, GNode *node)
{
- GNode * iter;
- MimeInfo *mimeinfo;
+ MimeInfo *mimeinfo = (MimeInfo *) node->data;
+ textview_add_part(textview, mimeinfo);
+ if (mimeinfo->type != MIMETYPE_MULTIPART && mimeinfo->type != MIMETYPE_MESSAGE) {
+ return;
+ }
- mimeinfo = (MimeInfo *) node->data;
+ GNode *iter;
+ if (g_ascii_strcasecmp(mimeinfo->subtype, "alternative") != 0) {
+ for (iter = g_node_first_child(node); iter != NULL; iter = g_node_next_sibling(iter)) {
+ recursive_add_parts(textview, iter);
+ }
+ return;
+ }
- textview_add_part(textview, mimeinfo);
- if ((mimeinfo->type != MIMETYPE_MULTIPART) &&
- (mimeinfo->type != MIMETYPE_MESSAGE)) {
- return;
- }
- if (g_ascii_strcasecmp(mimeinfo->subtype, "alternative") == 0) {
- GNode * preferred_body;
- int preferred_score;
+ GNode *preferred_body = NULL;
+ int preferred_score = 0;
+ for (iter = g_node_first_child(node); iter != NULL; iter = g_node_next_sibling(iter)) {
+ int score = 1;
+ MimeInfo *submime = (MimeInfo *) iter->data;
+ if (submime->type == MIMETYPE_TEXT)
+ score++;
+ if (submime->subtype != NULL) {
+ if (g_ascii_strcasecmp(submime->subtype, "plain") == 0)
+ score++;
+ }
+ if (score > preferred_score) {
+ preferred_score = score;
+ preferred_body = iter;
+ }
+ }
- /*
- text/plain : score 3
- text/ * : score 2
- other : score 1
- */
- preferred_body = NULL;
- preferred_score = 0;
-
- for (iter = g_node_first_child(node) ; iter != NULL ;
- iter = g_node_next_sibling(iter)) {
- int score;
- MimeInfo * submime;
-
- score = 1;
- submime = (MimeInfo *) iter->data;
- if (submime->type == MIMETYPE_TEXT)
- score = 2;
-
- if (submime->subtype != NULL) {
- if (g_ascii_strcasecmp(submime->subtype, "plain") == 0)
- score = 3;
- }
-
- if (score > preferred_score) {
- preferred_score = score;
- preferred_body = iter;
- }
- }
-
- if (preferred_body != NULL) {
- recursive_add_parts(textview, preferred_body);
- }
- }
- else {
- for (iter = g_node_first_child(node) ; iter != NULL ;
- iter = g_node_next_sibling(iter)) {
- recursive_add_parts(textview, iter);
- }
- }
+ if (preferred_body != NULL)
+ recursive_add_parts(textview, preferred_body);
}
static void textview_add_parts(TextView *textview, MimeInfo *mimeinfo)
{
- cm_return_if_fail(mimeinfo != NULL);
- cm_return_if_fail(mimeinfo->node != NULL);
-
recursive_add_parts(textview, mimeinfo->node);
}
void textview_show_error(TextView *textview)
{
- GtkTextView *text;
- GtkTextBuffer *buffer;
- GtkTextIter iter;
-
textview_clear(textview);
- text = GTK_TEXT_VIEW(textview->text);
- buffer = gtk_text_view_get_buffer(text);
+ GtkTextView *text = GTK_TEXT_VIEW(textview->text);
+ GtkTextBuffer *buffer = gtk_text_view_get_buffer(text);
+ GtkTextIter iter;
gtk_text_buffer_get_start_iter(buffer, &iter);
TEXTVIEW_INSERT(_("\n"
void textview_show_info(TextView *textview, const gchar *info_str)
{
- GtkTextView *text;
- GtkTextBuffer *buffer;
- GtkTextIter iter;
-
textview_clear(textview);
- text = GTK_TEXT_VIEW(textview->text);
- buffer = gtk_text_view_get_buffer(text);
+ GtkTextView *text = GTK_TEXT_VIEW(textview->text);
+ GtkTextBuffer *buffer = gtk_text_view_get_buffer(text);
+ GtkTextIter iter;
gtk_text_buffer_get_start_iter(buffer, &iter);
TEXTVIEW_INSERT(info_str);
void textview_show_mime_part(TextView *textview, MimeInfo *partinfo)
{
- GtkTextView *text;
- GtkTextBuffer *buffer;
- GtkTextIter iter;
- const gchar *name;
- gchar *content_type;
+ if (!partinfo)
+ return;
+
GtkUIManager *ui_manager;
- gchar *shortcut;
-
- if (!partinfo) return;
-
if (textview->messageview->window != NULL)
ui_manager = textview->messageview->ui_manager;
else
textview_clear(textview);
- text = GTK_TEXT_VIEW(textview->text);
- buffer = gtk_text_view_get_buffer(text);
+ GtkTextView *text = GTK_TEXT_VIEW(textview->text);
+ GtkTextBuffer *buffer = gtk_text_view_get_buffer(text);
+ GtkTextIter iter;
gtk_text_buffer_get_start_iter(buffer, &iter);
TEXTVIEW_INSERT("\n");
- name = procmime_mimeinfo_get_parameter(partinfo, "filename");
+ const char *name = procmime_mimeinfo_get_parameter(partinfo, "filename");
if (name == NULL)
name = procmime_mimeinfo_get_parameter(partinfo, "name");
if (name != NULL) {
- content_type = procmime_get_content_type_str(partinfo->type,
+ char *content_type = procmime_get_content_type_str(partinfo->type,
partinfo->subtype);
TEXTVIEW_INSERT(" ");
TEXTVIEW_INSERT_BOLD(name);
TEXTVIEW_INSERT(", ");
TEXTVIEW_INSERT(to_human_readable((goffset)partinfo->length));
TEXTVIEW_INSERT("):\n\n");
-
- g_free(content_type);
+ free(content_type);
}
TEXTVIEW_INSERT(_(" The following can be performed on this part\n"));
TEXTVIEW_INSERT(_(" by right-clicking the icon or list item:"));
TEXTVIEW_INSERT(_(" - To save, select "));
TEXTVIEW_INSERT_LINK(_("'Save as...'"), "cm://save_as", NULL);
- TEXTVIEW_INSERT(_(" (Shortcut key: '"));
- shortcut = cm_menu_item_get_shortcut(ui_manager, "Menu/File/SavePartAs");
- TEXTVIEW_INSERT(shortcut);
- g_free(shortcut);
- TEXTVIEW_INSERT(_("')"));
TEXTVIEW_INSERT("\n");
TEXTVIEW_INSERT(_(" - To display as text, select "));
TEXTVIEW_INSERT_LINK(_("'Display as text'"), "cm://display_as_text", NULL);
- TEXTVIEW_INSERT(_(" (Shortcut key: '"));
- shortcut = cm_menu_item_get_shortcut(ui_manager, "Menu/View/Part/AsText");
- TEXTVIEW_INSERT(shortcut);
- g_free(shortcut);
- TEXTVIEW_INSERT(_("')"));
- TEXTVIEW_INSERT("\n");
-
TEXTVIEW_INSERT(_(" - To open with an external program, select "));
TEXTVIEW_INSERT_LINK(_("'Open'"), "cm://open", NULL);
-
- TEXTVIEW_INSERT(_(" (Shortcut key: '"));
- shortcut = cm_menu_item_get_shortcut(ui_manager, "Menu/View/Part/Open");
- TEXTVIEW_INSERT(shortcut);
- g_free(shortcut);
TEXTVIEW_INSERT(_("')\n"));
TEXTVIEW_INSERT(_(" (alternately double-click, or click the middle "));
TEXTVIEW_INSERT(_("mouse button)\n"));
TEXTVIEW_INSERT(_(" - Or use "));
TEXTVIEW_INSERT_LINK(_("'Open with...'"), "cm://open_with", NULL);
- TEXTVIEW_INSERT(_(" (Shortcut key: '"));
- shortcut = cm_menu_item_get_shortcut(ui_manager, "Menu/View/Part/OpenWith");
- TEXTVIEW_INSERT(shortcut);
- g_free(shortcut);
- TEXTVIEW_INSERT(_("')"));
TEXTVIEW_INSERT("\n");
textview_show_icon(textview, "dialog-information");
unlink(filename);
}
g_free(filename);
- } else if ( g_ascii_strcasecmp(mimeinfo->subtype, "plain") &&
- (cmd = prefs_common.mime_textviewer) && *cmd &&
- (p = strchr(cmd, '%')) && *(p + 1) == 's') {
- int pid, pfd[2];
- const gchar *fname;
-
- fname = procmime_get_tmp_file_name(mimeinfo);
- if (procmime_get_part(fname, mimeinfo)) goto textview_default;
-
- g_snprintf(buf, sizeof(buf), cmd, fname);
- debug_print("Viewing text content of type: %s (length: %ld) "
- "using %s\n", mimeinfo->subtype, mimeinfo->length, buf);
-
- if (pipe(pfd) < 0) {
- g_snprintf(buf, sizeof(buf),
- "pipe failed for textview\n\n%s\n", g_strerror(errno));
- textview_write_line(textview, buf, conv, TRUE);
- goto textview_default;
- }
- pid = fork();
- if (pid < 0) {
- g_snprintf(buf, sizeof(buf),
- "fork failed for textview\n\n%s\n", g_strerror(errno));
- textview_write_line(textview, buf, conv, TRUE);
- close(pfd[0]);
- close(pfd[1]);
- goto textview_default;
- }
- if (pid == 0) { /* child */
- int rc;
- gchar **argv;
- argv = strsplit_with_quote(buf, " ", 0);
- close(1);
- close(pfd[0]);
- rc = dup(pfd[1]);
- rc = execvp(argv[0], argv);
- perror("execvp");
- close(pfd[1]);
- g_print(_("The command to view attachment "
- "as text failed:\n"
- " %s\n"
- "Exit code %d\n"), buf, rc);
- exit(255);
- }
- close(pfd[1]);
- tmpfp = fdopen(pfd[0], "rb");
- while (fgets(buf, sizeof(buf), tmpfp)) {
- textview_write_line(textview, buf, conv, TRUE);
-
- if (textview->stop_loading) {
- fclose(tmpfp);
- waitpid(pid, pfd, 0);
- g_unlink(fname);
- conv_code_converter_destroy(conv);
- return;
- }
- }
-
- fclose(tmpfp);
- waitpid(pid, pfd, 0);
- g_unlink(fname);
} else {
-textview_default:
if (!g_ascii_strcasecmp(mimeinfo->subtype, "x-patch")
|| !g_ascii_strcasecmp(mimeinfo->subtype, "x-diff"))
textview->is_diff = TRUE;
GTK_TEXT_WINDOW_TEXT, wx, wy);
gtk_widget_show_all(textview->text);
-
-
return;
}
if (procheader_headername_equal(header->name, "Date") &&
prefs_common.msgview_date_format) {
gchar hbody[80];
-
procheader_date_parse(hbody, header->body, sizeof(hbody));
gtk_text_buffer_get_end_iter (buffer, &iter);
gtk_text_buffer_insert_with_tags_by_name
(buffer, &iter, hbody, -1, "header", NULL);
- } else if ((procheader_headername_equal(header->name, "X-Mailer") ||
- procheader_headername_equal(header->name,
- "X-Newsreader")) &&
- (strstr(header->body, "Claws Mail") != NULL ||
- strstr(header->body, "Sylpheed-Claws") != NULL)) {
- gtk_text_buffer_get_end_iter (buffer, &iter);
- gtk_text_buffer_insert_with_tags_by_name
- (buffer, &iter, header->body, -1,
- "header", "emphasis", NULL);
} else {
gboolean hdr =
procheader_headername_equal(header->name, "From") ||