[dovecot-cvs] dovecot/src/lib ibuffer.c,1.3,1.4

cras at procontrol.fi cras at procontrol.fi
Fri Oct 25 01:54:36 EEST 2002


Update of /home/cvs/dovecot/src/lib
In directory danu:/tmp/cvs-serv20698

Modified Files:
	ibuffer.c 
Log Message:
Don't try to handle CR-only line changes, makes overly complex code and
it's not needed anywhere.



Index: ibuffer.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib/ibuffer.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- ibuffer.c	20 Oct 2002 02:53:01 -0000	1.3
+++ ibuffer.c	24 Oct 2002 21:54:34 -0000	1.4
@@ -148,21 +148,6 @@
 	return _buf->seek(_buf, v_offset);
 }
 
-/* skip the first LF, if it exists */
-static void i_buffer_skip_lf(_IBuffer *_buf)
-{
-	if (!_buf->last_cr || _buf->skip >= _buf->pos)
-		return;
-
-	if (_buf->buffer[_buf->skip] == 10) {
-		if (_buf->skip == _buf->cr_lookup_pos)
-			_buf->cr_lookup_pos++;
-		_buf->skip++;
-		_buf->ibuffer.v_offset++;
-	}
-	_buf->last_cr = FALSE;
-}
-
 char *i_buffer_next_line(IBuffer *buf)
 {
 	_IBuffer *_buf = buf->real_buffer;
@@ -171,7 +156,6 @@
 
         i_assert(buf != NULL);
 
-	i_buffer_skip_lf(_buf);
 	if (_buf->skip >= _buf->pos)
 		return NULL;
 
@@ -182,12 +166,13 @@
 
 	ret_buf = NULL;
 	for (i = _buf->cr_lookup_pos; i < _buf->pos; i++) {
-		if (_buf->buffer[i] == 13 || _buf->buffer[i] == 10) {
+		if (_buf->buffer[i] == 10) {
 			/* got it */
-			_buf->last_cr = _buf->buffer[i] == 13;
-
+			if (i > 0 && _buf->buffer[i-1] == '\r')
+				_buf->w_buffer[i-1] = '\0';
+			else
+				_buf->w_buffer[i] = '\0';
 			ret_buf = (char *) _buf->buffer + _buf->skip;
-			_buf->w_buffer[i] = '\0';
 
 			i++;
 			buf->v_offset += i - _buf->skip;
@@ -203,8 +188,6 @@
 const unsigned char *i_buffer_get_data(IBuffer *buf, size_t *size)
 {
 	_IBuffer *_buf = buf->real_buffer;
-
-	i_buffer_skip_lf(_buf);
 
 	if (_buf->skip >= _buf->pos) {
 		*size = 0;




More information about the dovecot-cvs mailing list