changeset 1857:34bdf8beb23a HEAD

fixes
author Timo Sirainen <tss@iki.fi>
date Wed, 29 Oct 2003 17:31:45 +0200
parents ef870406de53
children f59f0c50f018
files src/lib-index/mbox/istream-mbox.c
diffstat 1 files changed, 6 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mbox/istream-mbox.c	Wed Oct 29 17:12:46 2003 +0200
+++ b/src/lib-index/mbox/istream-mbox.c	Wed Oct 29 17:31:45 2003 +0200
@@ -75,15 +75,13 @@
 
 	ret = i_stream_read(mstream->input);
 
+	mstream->istream.pos -= mstream->istream.skip;
 	mstream->istream.skip = 0;
 	mstream->istream.buffer = i_stream_get_data(mstream->input, &pos);
 
-	if (pos <= mstream->istream.pos)
-		ret = -1;
-	else {
-		ret = pos - mstream->istream.pos;
-                mstream->istream.pos = pos;
-	}
+	ret = pos <= mstream->istream.pos ? -1 :
+		(ssize_t) (pos - mstream->istream.pos);
+	mstream->istream.pos = pos;
 
 	if (limit != old_limit)
 		i_stream_set_read_limit(mstream->input, old_limit);
@@ -106,8 +104,8 @@
 		stream->skip = stream->pos = stream->high_pos = 0;
 		stream->buffer = NULL;
 
-		v_offset += mstream->header_size.physical_size -
-			mstream->header_size.virtual_size;
+		v_offset += (off_t)mstream->header_size.physical_size -
+			(off_t)mstream->header_size.virtual_size;
 		i_stream_seek(mstream->input, v_offset);
 	}
 }