[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