diff options
Diffstat (limited to 'camel/camel-folder-summary.c')
-rw-r--r-- | camel/camel-folder-summary.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/camel/camel-folder-summary.c b/camel/camel-folder-summary.c index ac525dd619..f5f2131fa2 100644 --- a/camel/camel-folder-summary.c +++ b/camel/camel-folder-summary.c @@ -658,6 +658,36 @@ camel_folder_summary_save(CamelFolderSummary *s) return 0; } +/** + * camel_folder_summary_header_load: + * @s: Summary object. + * + * Only load the header information from the summary, + * keep the rest on disk. This should only be done on + * a fresh summary object. + * + * Return value: -1 on error. + **/ +int camel_folder_summary_header_load(CamelFolderSummary *s) +{ + FILE *in; + int ret; + + g_assert(s->summary_path); + + in = fopen(s->summary_path, "r"); + if (in == NULL) + return -1; + + CAMEL_SUMMARY_LOCK(s, io_lock); + ret = ((CamelFolderSummaryClass *)(CAMEL_OBJECT_GET_CLASS(s)))->summary_header_load(s, in); + CAMEL_SUMMARY_UNLOCK(s, io_lock); + + fclose(in); + s->flags &= ~CAMEL_SUMMARY_DIRTY; + return ret; +} + static void summary_assign_uid(CamelFolderSummary *s, CamelMessageInfo *info) { |