changeset 1315:d69f8b4adaf6 HEAD

FETCH BODY[part]<partial> didn't work correctly
author Timo Sirainen <tss@iki.fi>
date Mon, 24 Mar 2003 14:59:49 +0200
parents bd8e8495c7b3
children 02dc0b35af64
files src/imap/imap-fetch-body-section.c
diffstat 1 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/imap/imap-fetch-body-section.c	Sat Mar 22 21:13:31 2003 +0200
+++ b/src/imap/imap-fetch-body-section.c	Mon Mar 24 14:59:49 2003 +0200
@@ -445,10 +445,16 @@
 {
 	const char *str;
 	int skip_cr;
+	uoff_t size;
 	off_t ret;
 
-	str = t_strdup_printf("%s {%"PRIuUOFF_T"}\r\n",
-			      ctx->prefix, part->body_size.virtual_size);
+	if (body->skip >= part->body_size.virtual_size)
+		size = 0;
+	else {
+		size = part->body_size.virtual_size - body->skip;
+		if (size > body->max_size) size = body->max_size;
+	}
+	str = t_strdup_printf("%s {%"PRIuUOFF_T"}\r\n", ctx->prefix, size);
 	if (o_stream_send_str(ctx->output, str) < 0)
 		return FALSE;