From d44875ac5f2dfc7753cc33281c5fc8a866edd0b7 Mon Sep 17 00:00:00 2001 From: bertrand Date: Wed, 19 Jan 2000 04:33:14 +0000 Subject: tests for summary and parsing process of mbox files. 2000-01-18 bertrand * tests/test9.c: tests for summary and parsing process of mbox files. * camel/providers/mbox/camel-mbox-parser.c (camel_mbox_parse_file): do not use case insensitive comp to detect message separators. Kill some nasty bugs in netscape file parsing, * camel/providers/mbox/camel-mbox-utils.c (parsed_information_to_mbox_summary): don't use g_array_append but write directly inside the array data instead. Better performance and bug fix. * camel/providers/mbox/camel-mbox-summary.c (camel_mbox_load_summary): fix the name and bugs. * camel/camel-folder-summary.h: update the class method definition to match the public defs. svn path=/trunk/; revision=1592 --- camel/camel-folder-summary.c | 4 ++-- camel/camel-folder-summary.h | 4 ++-- camel/providers/mbox/camel-mbox-parser.c | 2 +- camel/providers/mbox/camel-mbox-summary.c | 16 ++++++++++++++-- camel/providers/mbox/camel-mbox-summary.h | 4 ++-- camel/providers/mbox/camel-mbox-utils.c | 26 +++++++++++++------------- 6 files changed, 34 insertions(+), 22 deletions(-) (limited to 'camel') diff --git a/camel/camel-folder-summary.c b/camel/camel-folder-summary.c index 4d1745e3b2..fdeec5e13c 100644 --- a/camel/camel-folder-summary.c +++ b/camel/camel-folder-summary.c @@ -65,8 +65,8 @@ camel_folder_summary_init (gpointer object, gpointer klass) CamelFolderSummary *summary = CAMEL_FOLDER_SUMMARY (object); CAMEL_LOG_FULL_DEBUG ( "camel_folder_summary_init:: Entering\n"); - summary->subfolder_info_list = g_array_new (FALSE, FALSE, sizeof (CamelFolderInfo); - summary->message_info_list = g_array_new (FALSE, FALSE, sizeof (CamelMessageInfo); + summary->subfolder_info_list = g_array_new (FALSE, FALSE, sizeof (CamelFolderInfo)); + summary->message_info_list = g_array_new (FALSE, FALSE, sizeof (CamelMessageInfo)); CAMEL_LOG_FULL_DEBUG ( "camel_folder_summary_init:: Leaving\n"); } diff --git a/camel/camel-folder-summary.h b/camel/camel-folder-summary.h index b89c546090..414e7a24c9 100644 --- a/camel/camel-folder-summary.h +++ b/camel/camel-folder-summary.h @@ -85,8 +85,8 @@ typedef struct { GtkObjectClass parent_class; /* Virtual methods */ - const GList * (*get_subfolder_info_list) (CamelFolderSummary *summary); - const GList * (*get_message_info_list) (CamelFolderSummary *summary); + const GArray * (*get_subfolder_info_list) (CamelFolderSummary *summary); + const GArray * (*get_message_info_list) (CamelFolderSummary *summary); } CamelFolderSummaryClass; diff --git a/camel/providers/mbox/camel-mbox-parser.c b/camel/providers/mbox/camel-mbox-parser.c index 7eee449f1d..7503470426 100644 --- a/camel/providers/mbox/camel-mbox-parser.c +++ b/camel/providers/mbox/camel-mbox-parser.c @@ -620,7 +620,7 @@ camel_mbox_parse_file (int fd, } /* is the next part a message delimiter ? */ - if (g_strncasecmp (parser->buffer + parser->current_position, + if (strncmp (parser->buffer + parser->current_position, parser->message_delimiter, parser->message_delimiter_length) == 0) { diff --git a/camel/providers/mbox/camel-mbox-summary.c b/camel/providers/mbox/camel-mbox-summary.c index a91cd1f6ad..6915cd4a9b 100644 --- a/camel/providers/mbox/camel-mbox-summary.c +++ b/camel/providers/mbox/camel-mbox-summary.c @@ -63,12 +63,13 @@ camel_mbox_save_summary (CamelMboxSummary *summary, const gchar *filename, Camel } /* compute and write the mbox file md5 signature */ - md5_get_digest_from_file (filename, summary->md5_digest); + //md5_get_digest_from_file (filename, summary->md5_digest); /* write the number of messages + the md5 signatures */ write (fd, summary, sizeof (guint) + sizeof (guchar) * 16); + printf ("%d %d\n", summary->nb_message, summary->message_info->len); for (cur_msg=0; cur_msg < summary->nb_message; cur_msg++) { msg_info = (CamelMboxSummaryInformation *)(summary->message_info->data) + cur_msg; @@ -79,6 +80,7 @@ camel_mbox_save_summary (CamelMboxSummary *summary, const gchar *filename, Camel sizeof (guint32) + sizeof (guint) + sizeof (guint32) + sizeof (guchar)); + //printf ("IN iewr subject = %s\n", msg_info->subject); /* write subject */ field_lgth = msg_info->subject ? strlen (msg_info->subject) : 0; write (fd, &field_lgth, sizeof (guint)); @@ -116,7 +118,7 @@ camel_mbox_save_summary (CamelMboxSummary *summary, const gchar *filename, Camel CamelMboxSummary * -mbox_load_summary (const gchar *filename, CamelException *ex) +camel_mbox_load_summary (const gchar *filename, CamelException *ex) { CamelMboxSummaryInformation *msg_info; guint cur_msg; @@ -200,3 +202,13 @@ mbox_load_summary (const gchar *filename, CamelException *ex) } + + + + + + + + + + diff --git a/camel/providers/mbox/camel-mbox-summary.h b/camel/providers/mbox/camel-mbox-summary.h index 29c7d24f93..95d9574395 100644 --- a/camel/providers/mbox/camel-mbox-summary.h +++ b/camel/providers/mbox/camel-mbox-summary.h @@ -55,10 +55,10 @@ typedef struct { void -camel_mbox_save_summary (CamelMboxSummary *, const gchar *filename, CamelException *ex); +camel_mbox_save_summary (CamelMboxSummary *summary, const gchar *filename, CamelException *ex); CamelMboxSummary * -mbox_load_summary (const gchar *filename, CamelException *ex); +camel_mbox_load_summary (const gchar *filename, CamelException *ex); diff --git a/camel/providers/mbox/camel-mbox-utils.c b/camel/providers/mbox/camel-mbox-utils.c index d0b0db5518..6e4fc42faa 100644 --- a/camel/providers/mbox/camel-mbox-utils.c +++ b/camel/providers/mbox/camel-mbox-utils.c @@ -259,7 +259,7 @@ camel_mbox_write_xev (gchar *mbox_file_name, cur_pos = cur_msg_info->message_position + cur_msg_info->end_of_headers_offset; - + copy_file_chunk (fd1, fd2, bytes_to_copy, ex); if (camel_exception_get_id (ex)) { close (fd1); @@ -280,7 +280,8 @@ camel_mbox_write_xev (gchar *mbox_file_name, } cur_msg_info->message_position += cur_offset; } - + + bytes_to_copy = end_of_last_message - cur_pos; copy_file_chunk (fd1, fd2, bytes_to_copy, ex); @@ -342,7 +343,7 @@ parsed_information_to_mbox_summary (GArray *parsed_information) guint cur_msg; CamelMboxParserMessageInfo *cur_msg_info; GArray *mbox_summary; - CamelMboxSummaryInformation cur_sum_info; + CamelMboxSummaryInformation *cur_sum_info; mbox_summary = g_array_new (FALSE, FALSE, sizeof (CamelMboxSummaryInformation)); mbox_summary = g_array_set_size (mbox_summary, parsed_information->len); @@ -350,25 +351,24 @@ parsed_information_to_mbox_summary (GArray *parsed_information) for (cur_msg = 0; cur_msg < parsed_information->len; cur_msg++) { cur_msg_info = (CamelMboxParserMessageInfo *)(parsed_information->data) + cur_msg; + cur_sum_info = (CamelMboxSummaryInformation *)(mbox_summary->data) + cur_msg; - cur_sum_info.position = cur_msg_info->message_position; + cur_sum_info->position = cur_msg_info->message_position; - cur_sum_info.x_evolution_offset = cur_msg_info->x_evolution_offset; + cur_sum_info->x_evolution_offset = cur_msg_info->x_evolution_offset; - cur_sum_info.uid = cur_msg_info->uid; + cur_sum_info->uid = cur_msg_info->uid; - cur_sum_info.status = cur_msg_info->status; + cur_sum_info->status = cur_msg_info->status; - cur_sum_info.subject = cur_msg_info->subject; + cur_sum_info->subject = cur_msg_info->subject; cur_msg_info->subject = NULL; - cur_sum_info.sender = cur_msg_info->from; + cur_sum_info->sender = cur_msg_info->from; cur_msg_info->from = NULL; - cur_sum_info.to = cur_msg_info->to; - cur_msg_info->to = NULL; - - g_array_append_vals (mbox_summary, &cur_sum_info, 1); + cur_sum_info->to = cur_msg_info->to; + cur_msg_info->to = NULL; } -- cgit v1.2.3