From 1ceb4cd764fbdd89a3b67903251dc89ad3e7d723 Mon Sep 17 00:00:00 2001 From: Not Zed Date: Mon, 16 Feb 2004 09:38:24 +0000 Subject: ** See bug #51045. 2004-02-16 Not Zed ** See bug #51045. * providers/imap/camel-imap-store.c (fill_fi): similar to mbox version. (get_folder_counts): use fill_fi to try and get folder counts if we're not doing the hard slog. (get_one_folder_offline): use fill_fi to try to get folder counts from open folders or summaries. * providers/local/camel-maildir-store.c (fill_fi): similar to mbox version. (scan_dir): use fill_fi to get the unread count now. * providers/local/camel-mbox-store.c (fill_fi): helper to lookup unread count either from active folder or from summary file, if it's available. (scan_dir, get_folder_info): use helper above to get folder info. * devel-docs/camel-folder-summary.txt: New document describing the format/conventions in the CamelFolderSummary file. * providers/nntp/camel-nntp-summary.c (summary_header_load/save): * providers/imapp/camel-imapp-summary.c (summary_header_load/save): * providers/imap/camel-imap-summary.c (summary_header_load/save): Handle versions, per-class version number (1). * providers/local/camel-mbox-summary.c (summary_header_load/save): Handle versions properly, add a per-class version (1). Write out the folder size as a size_t rather than 32 bit int. * providers/local/camel-local-summary.c (summary_header_load/save): read/write the per-class version number (1). * camel-folder-summary.c (summary_header_load): do version checking differently, allow the version to be bumped without aborting the load. Added unread/deleted/junk counts to base header. (summary_header_save): Save out the new-format header. Version bumped to 13. * camel.c (camel_init): return 0 rather than spit a compiler warning. * camel-file-utils.c (camel_file_util_encode_*_t): macro-ise the type encoder/decoders. Also add size_t encoder/decoder. svn path=/trunk/; revision=24744 --- camel/providers/local/camel-mbox-summary.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'camel/providers/local/camel-mbox-summary.c') diff --git a/camel/providers/local/camel-mbox-summary.c b/camel/providers/local/camel-mbox-summary.c index 4018fc93c9..ac87fd2476 100644 --- a/camel/providers/local/camel-mbox-summary.c +++ b/camel/providers/local/camel-mbox-summary.c @@ -44,7 +44,7 @@ #define io(x) #define d(x) /*(printf("%s(%d): ", __FILE__, __LINE__),(x))*/ -#define CAMEL_MBOX_SUMMARY_VERSION (0x1000) +#define CAMEL_MBOX_SUMMARY_VERSION (1) static int summary_header_load (CamelFolderSummary *, FILE *); static int summary_header_save (CamelFolderSummary *, FILE *); @@ -172,7 +172,16 @@ summary_header_load(CamelFolderSummary *s, FILE *in) if (((CamelFolderSummaryClass *)camel_mbox_summary_parent)->summary_header_load(s, in) == -1) return -1; - return camel_file_util_decode_uint32(in, (guint32 *) &mbs->folder_size); + /* legacy version */ + if (s->version == 0x120c) + return camel_file_util_decode_uint32(in, (guint32 *) &mbs->folder_size); + + /* version 1 */ + if (camel_file_util_decode_fixed_int32(in, &mbs->version) == -1 + || camel_file_util_decode_size_t(in, &mbs->folder_size) == -1) + return -1; + + return 0; } static int @@ -183,7 +192,9 @@ summary_header_save(CamelFolderSummary *s, FILE *out) if (((CamelFolderSummaryClass *)camel_mbox_summary_parent)->summary_header_save(s, out) == -1) return -1; - return camel_file_util_encode_uint32(out, mbs->folder_size); + camel_file_util_encode_fixed_int32(out, CAMEL_MBOX_SUMMARY_VERSION); + + return camel_file_util_encode_size_t(out, mbs->folder_size); } static CamelMessageInfo * -- cgit v1.2.3