diff options
author | Not Zed <NotZed@Ximian.com> | 2004-02-16 17:38:24 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2004-02-16 17:38:24 +0800 |
commit | 1ceb4cd764fbdd89a3b67903251dc89ad3e7d723 (patch) | |
tree | a551592e442ee3404caa5d05a8362d7dd1d553b0 /camel/providers/imapp | |
parent | 22fdff59a00dbbdcc6c6a59f452cfa7141bc7aad (diff) | |
download | gsoc2013-evolution-1ceb4cd764fbdd89a3b67903251dc89ad3e7d723.tar.gz gsoc2013-evolution-1ceb4cd764fbdd89a3b67903251dc89ad3e7d723.tar.zst gsoc2013-evolution-1ceb4cd764fbdd89a3b67903251dc89ad3e7d723.zip |
** See bug #51045.
2004-02-16 Not Zed <NotZed@Ximian.com>
** 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
Diffstat (limited to 'camel/providers/imapp')
-rw-r--r-- | camel/providers/imapp/camel-imapp-summary.c | 26 | ||||
-rw-r--r-- | camel/providers/imapp/camel-imapp-summary.h | 1 |
2 files changed, 23 insertions, 4 deletions
diff --git a/camel/providers/imapp/camel-imapp-summary.c b/camel/providers/imapp/camel-imapp-summary.c index a0df21bcb0..05f0ec55c7 100644 --- a/camel/providers/imapp/camel-imapp-summary.c +++ b/camel/providers/imapp/camel-imapp-summary.c @@ -35,7 +35,7 @@ #include "camel-imapp-summary.h" #include <camel/camel-file-utils.h> -#define CAMEL_IMAPP_SUMMARY_VERSION (0x1000) +#define CAMEL_IMAPP_SUMMARY_VERSION (1) static int summary_header_load(CamelFolderSummary *, FILE *); static int summary_header_save(CamelFolderSummary *, FILE *); @@ -119,8 +119,22 @@ summary_header_load(CamelFolderSummary *s, FILE *in) if (camel_imapp_summary_parent->summary_header_load(s, in) == -1) return -1; - return camel_file_util_decode_uint32(in, &ims->uidvalidity); -} + /* Legacy version */ + if (s->version == 0x100c) + return camel_file_util_decode_uint32(in, &ims->uidvalidity); + + if (camel_file_util_decode_fixed_int32(in, &ims->version) == -1 + || camel_file_util_decode_fixed_int32(in, &ims->uidvalidity) == -1) + return -1; + + if (ims->version > CAMEL_IMAPP_SUMMARY_VERSION) { + g_warning("Unkown summary version\n"); + errno = EINVAL; + return -1; + } + + return 0; +} static int summary_header_save(CamelFolderSummary *s, FILE *out) @@ -130,7 +144,11 @@ summary_header_save(CamelFolderSummary *s, FILE *out) if (camel_imapp_summary_parent->summary_header_save(s, out) == -1) return -1; - return camel_file_util_encode_uint32(out, ims->uidvalidity); + if (camel_file_util_encode_fixed_int32(out, CAMEL_IMAPP_SUMMARY_VERSION) == -1 + || camel_file_util_encode_fixed_int32(out, ims->uidvalidity) == -1) + return -1; + + return 0; } diff --git a/camel/providers/imapp/camel-imapp-summary.h b/camel/providers/imapp/camel-imapp-summary.h index e9783625f4..215ad2465a 100644 --- a/camel/providers/imapp/camel-imapp-summary.h +++ b/camel/providers/imapp/camel-imapp-summary.h @@ -50,6 +50,7 @@ typedef struct _CamelIMAPPMessageInfo { struct _CamelIMAPPSummary { CamelFolderSummary parent; + guint32 version; guint32 uidvalidity; }; |