diff src/lib/istream-file.c @ 6558:4a1caf69ca14 HEAD

Added i_stream_get_buffer_space() to remove code duplication.
author Timo Sirainen <tss@iki.fi>
date Sat, 20 Oct 2007 19:12:32 +0300
parents 65c69a53a7be
children 85385079b044
line wrap: on
line diff
--- a/src/lib/istream-file.c	Sat Oct 20 19:11:20 2007 +0300
+++ b/src/lib/istream-file.c	Sat Oct 20 19:12:32 2007 +0300
@@ -45,28 +45,9 @@
 	size_t size;
 	ssize_t ret;
 
-	if (stream->istream.closed)
-		return -1;
-
 	stream->istream.stream_errno = 0;
-
-	if (stream->pos == stream->buffer_size) {
-		if (stream->skip > 0) {
-			/* remove the unused bytes from beginning of buffer */
-                        i_stream_compress(stream);
-		} else if (stream->max_buffer_size == 0 ||
-			   stream->buffer_size < stream->max_buffer_size) {
-			/* buffer is full - grow it */
-			i_stream_grow_buffer(stream, I_STREAM_MIN_SIZE);
-		}
-
-		if (stream->pos == stream->buffer_size)
-			return -2; /* buffer full */
-	}
-
-	size = stream->buffer_size - stream->pos;
-
-	ret = -1;
+	if (!i_stream_get_buffer_space(stream, 1, &size))
+		return -2;
 
 	do {
 		if (fstream->file) {