155
155
CamelLocalSummaryClass *class;
157
d(printf("Loading summary ...\n"));
157
d (printf ("Loading summary ...\n"));
159
159
class = CAMEL_LOCAL_SUMMARY_GET_CLASS (cls);
161
161
if ((forceindex && class->need_index ())
162
162
|| !class->load (cls, forceindex, error)) {
163
w(g_warning("Could not load summary: flags may be reset"));
163
w (g_warning ("Could not load summary: flags may be reset"));
164
164
camel_folder_summary_clear ((CamelFolderSummary *) cls, NULL);
300
300
camel_folder_summary_free_array (known_uids);
302
printf("\nMemory used by summary:\n\n");
303
printf("Total of %d messages\n", camel_folder_summary_count(s));
304
printf("Total: %d bytes (ave %f)\n", stats.citotal + stats.mitotal,
305
(double)(stats.citotal + stats.mitotal) / (double) camel_folder_summary_count (s));
306
printf("Message Info: %d (ave %f)\n", stats.mitotal, (double)stats.mitotal/(double)stats.micount);
307
printf("Content Info; %d (ave %f) count %d\n", stats.citotal, (double)stats.citotal/(double)stats.cicount, stats.cicount);
308
printf("message id's: %d (ave %f) count %d\n", stats.msgid, (double)stats.msgid/(double)stats.msgcount, stats.msgcount);
302
printf ("\nMemory used by summary:\n\n");
304
"Total of %d messages\n",
305
camel_folder_summary_count (s));
307
"Total: %d bytes (ave %f)\n",
308
stats.citotal + stats.mitotal,
309
(gdouble) (stats.citotal + stats.mitotal) /
310
(gdouble) camel_folder_summary_count (s));
312
"Message Info: %d (ave %f)\n",
314
(gdouble) stats.mitotal / (gdouble) stats.micount);
316
"Content Info; %d (ave %f) count %d\n",
318
(gdouble) stats.citotal / (gdouble) stats.cicount,
321
"message id's: %d (ave %f) count %d\n",
323
(gdouble) stats.msgid / (gdouble) stats.msgcount,
381
if (strcmp(header->name, "X-Evolution") != 0
382
&& (status == NULL || strcmp(header->name, "Status") != 0)
383
&& (xstatus == NULL || strcmp(header->name, "X-Status") != 0)) {
384
len = fprintf(out, "%s:%s\n", header->name, header->value);
397
if (strcmp (header->name, "X-Evolution") != 0
398
&& (status == NULL || strcmp (header->name, "Status") != 0)
399
&& (xstatus == NULL || strcmp (header->name, "X-Status") != 0)) {
400
len = fprintf (out, "%s:%s\n", header->name, header->value);
481
497
CamelLocalMessageInfo *mi;
484
d(printf("Adding message to summary\n"));
500
d (printf ("Adding message to summary\n"));
486
502
mi = (CamelLocalMessageInfo *) camel_folder_summary_add_from_message ((CamelFolderSummary *) cls, msg);
518
534
mi->info.flags &= ~(CAMEL_MESSAGE_FOLDER_NOXEV);
519
535
xev = camel_local_summary_encode_x_evolution (cls, mi);
520
camel_medium_set_header((CamelMedium *)msg, "X-Evolution", xev);
536
camel_medium_set_header ((CamelMedium *) msg, "X-Evolution", xev);
522
538
camel_folder_change_info_add_uid (ci, camel_message_info_uid (mi));
524
d(printf("Failed!\n"));
540
d (printf ("Failed!\n"));
526
542
error, CAMEL_ERROR, CAMEL_ERROR_GENERIC,
527
543
_("Unable to add message to summary: unknown reason"));
533
549
local_summary_encode_x_evolution (CamelLocalSummary *cls,
534
550
const CamelLocalMessageInfo *mi)
536
GString *out = g_string_new("");
552
GString *out = g_string_new ("");
537
553
struct _camel_header_param *params = NULL;
538
554
CamelFlag *flag = mi->info.user_flags;
539
555
CamelTag *tag = mi->info.user_tags;
602
618
/* check for uid/flags */
603
619
header = camel_header_token_decode (xev);
604
if (header && strlen(header) == strlen("00000000-0000")
605
&& sscanf(header, "%08x-%04x", &uid, &flags) == 2) {
620
if (header && strlen (header) == strlen ("00000000-0000")
621
&& sscanf (header, "%08x-%04x", &uid, &flags) == 2) {
607
sprintf(uidstr, "%u", uid);
623
sprintf (uidstr, "%u", uid);
620
636
params = camel_header_param_list_decode (header + 1);
623
if (!g_ascii_strcasecmp(scan->name, "flags")) {
624
gchar **flagv = g_strsplit(scan->value, ",", 1000);
639
if (!g_ascii_strcasecmp (scan->name, "flags")) {
640
gchar **flagv = g_strsplit (scan->value, ",", 1000);
626
642
for (i = 0; flagv[i]; i++)
627
643
camel_message_info_set_user_flag ((CamelMessageInfo *) mi, flagv[i], TRUE);
628
644
g_strfreev (flagv);
629
} else if (!g_ascii_strcasecmp(scan->name, "tags")) {
630
gchar **tagv = g_strsplit(scan->value, ",", 10000);
645
} else if (!g_ascii_strcasecmp (scan->name, "tags")) {
646
gchar **tagv = g_strsplit (scan->value, ",", 10000);
633
649
for (i = 0; tagv[i]; i++) {
704
720
const gchar *xev;
705
721
gint doindex = FALSE;
707
xev = camel_header_raw_find(&h, "X-Evolution", NULL);
723
xev = camel_header_raw_find (&h, "X-Evolution", NULL);
708
724
if (xev == NULL || camel_local_summary_decode_x_evolution (cls, xev, mi) == -1) {
709
725
/* to indicate it has no xev header */
710
726
mi->info.flags |= CAMEL_MESSAGE_FOLDER_FLAGGED | CAMEL_MESSAGE_FOLDER_NOXEV;
721
737
|| cls->index_force
722
738
|| !camel_index_has_name (cls->index, camel_message_info_uid (mi)))) {
723
d(printf("Am indexing message %s\n", camel_message_info_uid(mi)));
739
d (printf ("Am indexing message %s\n", camel_message_info_uid (mi)));
724
740
camel_folder_summary_set_index (s, cls->index);
726
d(printf("Not indexing message %s\n", camel_message_info_uid(mi)));
742
d (printf ("Not indexing message %s\n", camel_message_info_uid (mi)));
727
743
camel_folder_summary_set_index (s, NULL);