** Fixes bug #534294.
authorHiroyuki Ikezoe <poincare@ikezoe.net>
Tue, 27 May 2008 07:06:23 +0000 (07:06 +0000)
committerHiroyuki Ikezoe <hiikezoe@src.gnome.org>
Tue, 27 May 2008 07:06:23 +0000 (07:06 +0000)
2008-05-27  Hiroyuki Ikezoe  <poincare@ikezoe.net>

** Fixes bug #534294.

* camel-folder-search.[ch]: Added accessor to _camel_header_param.
* camel-filter-search.c: Use camel_message_info_headers() instead of
direct access (i.e. ->headers) since the message does not have
headers' pointer if the message is in vitrual folder.

svn path=/trunk/; revision=8858

camel/ChangeLog
camel/camel-filter-search.c
camel/camel-folder-summary.c
camel/camel-folder-summary.h

index 58e7361..886e48e 100644 (file)
@@ -1,3 +1,12 @@
+2008-05-27  Hiroyuki Ikezoe  <poincare@ikezoe.net>
+
+       ** Fixes bug #534294.
+
+       * camel-folder-search.[ch]: Added accessor to _camel_header_param.
+       * camel-filter-search.c: Use camel_message_info_headers() instead of
+       direct access (i.e. ->headers) since the message does not have
+       headers' pointer if the message is in vitrual folder.
+
 2008-05-19  Matthew Barnes  <mbarnes@redhat.com>
 
        ** Fixes part of bug #531591
index 4b54916..17e2892 100644 (file)
@@ -649,7 +649,7 @@ junk_test (struct _ESExp *f, int argc, struct _ESExpResult **argv, FilterMessage
        d(printf("doing junk test for message from '%s'\n", camel_message_info_from (fms->info)));
        if (fms->session->junk_plugin != NULL && (camel_message_info_flags (info) & (CAMEL_MESSAGE_JUNK | CAMEL_MESSAGE_NOTJUNK)) == 0) {
                const GHashTable *ht = camel_session_get_junk_headers (fms->session);
-               struct _camel_header_param *node = ((CamelMessageInfoBase *)info)->headers;
+               const struct _camel_header_param *node = camel_message_info_headers (info);
 
                while (node && !retval) {
                        if (node->name) {
index 7e1beea..35f3699 100644 (file)
@@ -2952,6 +2952,8 @@ info_ptr(const CamelMessageInfo *mi, int id)
                return ((const CamelMessageInfoBase *)mi)->user_flags;
        case CAMEL_MESSAGE_INFO_USER_TAGS:
                return ((const CamelMessageInfoBase *)mi)->user_tags;
+       case CAMEL_MESSAGE_INFO_HEADERS:
+               return ((const CamelMessageInfoBase *)mi)->headers;
        default:
                abort();
        }
index 6bf4e98..27b0642 100644 (file)
@@ -140,6 +140,8 @@ enum {
        CAMEL_MESSAGE_INFO_USER_FLAGS,
        CAMEL_MESSAGE_INFO_USER_TAGS,
 
+       CAMEL_MESSAGE_INFO_HEADERS,
+
        CAMEL_MESSAGE_INFO_LAST
 };
 
@@ -394,6 +396,8 @@ time_t camel_message_info_time(const CamelMessageInfo *mi, int id);
 #define camel_message_info_user_flags(mi) ((const CamelFlag *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_USER_FLAGS))
 #define camel_message_info_user_tags(mi) ((const CamelTag *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_USER_TAGS))
 
+#define camel_message_info_headers(mi) ((const struct _camel_header_param *)camel_message_info_ptr((const CamelMessageInfo *)mi, CAMEL_MESSAGE_INFO_HEADERS))
+
 gboolean camel_message_info_user_flag(const CamelMessageInfo *mi, const char *id);
 const char *camel_message_info_user_tag(const CamelMessageInfo *mi, const char *id);