+2006-02-05 [colin] 2.0.0cvs12
+
+ * src/folderview.c
+ * src/summaryview.c
+ * src/common/utils.c
+ * src/common/utils.h
+ Let dnd work from mime icons to summaryview
+ and to folderview too
+ Add a crude test to avoid trying to add files
+ drag'n'dropped when they're not mails
+
2006-02-04 [colin] 2.0.0cvs11
* src/summaryview.c
( cvs diff -u -r 1.274.2.94 -r 1.274.2.95 src/mainwindow.c; ) > 2.0.0cvs9.patchset
( cvs diff -u -r 1.382.2.233 -r 1.382.2.234 src/compose.c; cvs diff -u -r 1.207.2.85 -r 1.207.2.86 src/folderview.c; cvs diff -u -r 1.83.2.61 -r 1.83.2.62 src/mimeview.c; cvs diff -u -r 1.395.2.160 -r 1.395.2.161 src/summaryview.c; cvs diff -u -r 1.68.2.14 -r 1.68.2.15 src/summaryview.h; ) > 2.0.0cvs10.patchset
( cvs diff -u -r 1.395.2.161 -r 1.395.2.162 src/summaryview.c; cvs diff -u -r 1.83.2.62 -r 1.83.2.63 src/mimeview.c; ) > 2.0.0cvs11.patchset
+( cvs diff -u -r 1.207.2.86 -r 1.207.2.87 src/folderview.c; cvs diff -u -r 1.395.2.162 -r 1.395.2.163 src/summaryview.c; cvs diff -u -r 1.36.2.53 -r 1.36.2.54 src/common/utils.c; cvs diff -u -r 1.20.2.31 -r 1.20.2.32 src/common/utils.h; ) > 2.0.0cvs12.patchset
MICRO_VERSION=0
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=11
+EXTRA_VERSION=12
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
last = g_list_last(list);
if (last) {
g_free(last->data);
- g_list_remove(list, last->data);
+ list = g_list_remove(list, last->data);
}
}
}
return 0;
}
+
+/* crude test to see if a file is an email. */
+gboolean file_is_email (const gchar *filename)
+{
+ FILE *fp = NULL;
+ gchar buffer[2048];
+ gint i = 0;
+ gint score = 0;
+ if (filename == NULL)
+ return FALSE;
+ if ((fp = g_fopen(filename, "rb")) == NULL)
+ return FALSE;
+ while (i < 60 && score < 4
+ && fgets(buffer, sizeof (buffer), fp) > 0) {
+ if (!strncmp(buffer, "Return-Path:", strlen("Return-Path:")))
+ score++;
+ if (!strncmp(buffer, "From:", strlen("From:")))
+ score++;
+ if (!strncmp(buffer, "To:", strlen("To:")))
+ score++;
+ if (!strncmp(buffer, "Subject:", strlen("Subject:")))
+ score++;
+ i++;
+ }
+ fclose(fp);
+ return (score >= 4);
+}
gchar *make_email_string(const gchar *bp, const gchar *ep);
gchar *make_http_string(const gchar *bp, const gchar *ep);
gchar *mailcap_get_command_for_type(const gchar *type);
+gboolean file_is_email (const gchar *filename);
#ifdef __cplusplus
}
FOLDER_CLASS(item->folder)->copy_msg != NULL &&
FOLDER_CLASS(item->folder)->create_folder != NULL)
acceptable = TRUE;
- } else if (srcwidget == NULL) {
+ } else {
/* comes from another app */
/* we are adding messages, so only accept folder items that are
no root items and can copy messages */
return;
}
for (tmp = list; tmp != NULL; tmp = tmp->next) {
- MsgFileInfo *info = g_new0(MsgFileInfo, 1);
- info->msginfo = NULL;
- info->file = (gchar *)tmp->data;
- msglist = g_slist_prepend(msglist, info);
+ MsgFileInfo *info = NULL;
+
+ if (file_is_email((gchar *)tmp->data)) {
+ info = g_new0(MsgFileInfo, 1);
+ info->msginfo = NULL;
+ info->file = (gchar *)tmp->data;
+ msglist = g_slist_prepend(msglist, info);
+ }
}
if (msglist) {
msglist = g_slist_reverse(msglist);
return;
}
for (tmp = list; tmp != NULL; tmp = tmp->next) {
- MsgFileInfo *info = g_new0(MsgFileInfo, 1);
- info->msginfo = NULL;
- info->file = (gchar *)tmp->data;
- msglist = g_slist_prepend(msglist, info);
+ MsgFileInfo *info = NULL;
+
+ if (file_is_email((gchar *)tmp->data)) {
+ info = g_new0(MsgFileInfo, 1);
+ info->msginfo = NULL;
+ info->file = (gchar *)tmp->data;
+ msglist = g_slist_prepend(msglist, info);
+ }
}
if (msglist) {
msglist = g_slist_reverse(msglist);