aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
Diffstat (limited to 'mail')
-rw-r--r--mail/ChangeLog4
-rw-r--r--mail/message-list.c28
2 files changed, 20 insertions, 12 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 7ef81f7b34..b5ae5e318d 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,5 +1,9 @@
2003-04-07 Jeffrey Stedfast <fejj@ximian.com>
+ * message-list.c (ml_tree_value_at): For string columns, never
+ return NULL - always return "" if the value is empty. Fixes bug
+ #40728.
+
* mail-composer-prefs.c (sig_add_script_cb): Set the "script" data
on the GtkEntry to NULL.
(sig_add_script_response): If the "script" data on the GtkEntry
diff --git a/mail/message-list.c b/mail/message-list.c
index bbe2b4fdb5..7e0135749b 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -416,7 +416,7 @@ get_normalised_string (MessageList *message_list, CamelMessageInfo *info, int co
normalised = g_utf8_collate_key (string, -1);
e_poolv_set (poolv, index, normalised, TRUE);
-
+
return e_poolv_get (poolv, index);
}
@@ -885,11 +885,11 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data)
{
MessageList *message_list = model_data;
CamelMessageInfo *msg_info;
+ const char *str;
/* retrieve the message information array */
msg_info = e_tree_memory_node_get_data (E_TREE_MEMORY(etm), path);
- if (!msg_info)
- return NULL;
+ g_assert (msg_info != NULL);
switch (col){
case COL_MESSAGE_STATUS: {
@@ -946,25 +946,29 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data)
}
}
case COL_FOLLOWUP_FLAG:
- return (void *) camel_tag_get ((CamelTag **) &msg_info->user_tags, "follow-up");
+ str = camel_tag_get ((CamelTag **) &msg_info->user_tags, "follow-up");
+ return (void *) str ? str : "";
case COL_ATTACHMENT:
return GINT_TO_POINTER ((msg_info->flags & CAMEL_MESSAGE_ATTACHMENTS) != 0);
case COL_FROM:
- return (void *)camel_message_info_from(msg_info);
+ str = camel_message_info_from (msg_info);
+ return (void *) str ? str : "";
case COL_FROM_NORM:
- return (void *)get_normalised_string (message_list, msg_info, col);
+ return (void *) get_normalised_string (message_list, msg_info, col);
case COL_SUBJECT:
- return (void *)camel_message_info_subject(msg_info);
+ str = camel_message_info_subject (msg_info);
+ return (void *) str ? str : "";
case COL_SUBJECT_NORM:
- return (void *)get_normalised_string (message_list, msg_info, col);
+ return (void *) get_normalised_string (message_list, msg_info, col);
case COL_SENT:
return GINT_TO_POINTER (msg_info->date_sent);
case COL_RECEIVED:
return GINT_TO_POINTER (msg_info->date_received);
case COL_TO:
- return (void *)camel_message_info_to(msg_info);
+ str = camel_message_info_to (msg_info);
+ return (void *) str ? str : "";
case COL_TO_NORM:
- return (void *)get_normalised_string (message_list, msg_info, col);
+ return (void *) get_normalised_string (message_list, msg_info, col);
case COL_SIZE:
return GINT_TO_POINTER (msg_info->size);
case COL_DELETED:
@@ -1017,13 +1021,13 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data)
case COL_LOCATION: {
CamelFolder *folder;
char *name;
-
+
if (CAMEL_IS_VEE_FOLDER(message_list->folder)) {
folder = camel_vee_folder_get_location((CamelVeeFolder *)message_list->folder, (CamelVeeMessageInfo *)msg_info, NULL);
} else {
folder = message_list->folder;
}
-
+
camel_object_get(folder, NULL, CAMEL_OBJECT_DESCRIPTION, &name, 0);
return name;
}