changeset 1140:44904d3d7b6b HEAD

get_size() was buggy
author Timo Sirainen <tss@iki.fi>
date Tue, 11 Feb 2003 14:31:35 +0200
parents cfe8bafb61d3
children 873634a5b472
files src/lib-storage/index/index-mail.c
diffstat 1 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/index-mail.c	Tue Feb 11 14:31:10 2003 +0200
+++ b/src/lib-storage/index/index-mail.c	Tue Feb 11 14:31:35 2003 +0200
@@ -403,7 +403,7 @@
 {
 	struct index_mail *mail = (struct index_mail *) _mail;
 	struct index_mail_data *data = &mail->data;
-	uoff_t hdr_size, body_size;
+	uoff_t hdr_size, body_size, hdr_phys_size;
 
 	if (data->size != (uoff_t)-1)
 		return data->size;
@@ -442,10 +442,12 @@
 	}
 
 	/* have to parse, slow.. */
-	if (!open_stream(mail, hdr_size != (uoff_t)-1 ? hdr_size : 0))
+	hdr_phys_size = hdr_size != (uoff_t)-1 && data->hdr_size_set ?
+		data->hdr_size.physical_size : (uoff_t)-1;
+	if (!open_stream(mail, hdr_phys_size != (uoff_t)-1 ? hdr_phys_size : 0))
 		return (uoff_t)-1;
 
-	if (hdr_size == (uoff_t)-1) {
+	if (hdr_phys_size == (uoff_t)-1) {
 		message_get_header_size(data->stream, &data->hdr_size);
 		hdr_size = data->hdr_size.virtual_size;
 		data->hdr_size_set = TRUE;