=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/cvs/buf.c,v retrieving revision 1.56 retrieving revision 1.57 diff -c -r1.56 -r1.57 *** src/usr.bin/cvs/buf.c 2007/02/02 04:24:09 1.56 --- src/usr.bin/cvs/buf.c 2007/02/02 04:34:49 1.57 *************** *** 1,4 **** ! /* $OpenBSD: buf.c,v 1.56 2007/02/02 04:24:09 ray Exp $ */ /* * Copyright (c) 2003 Jean-Francois Brousseau * All rights reserved. --- 1,4 ---- ! /* $OpenBSD: buf.c,v 1.57 2007/02/02 04:34:49 ray Exp $ */ /* * Copyright (c) 2003 Jean-Francois Brousseau * All rights reserved. *************** *** 37,53 **** struct cvs_buf { u_int cb_flags; ! /* buffer handle and size */ u_char *cb_buf; size_t cb_size; - - /* start and length of valid data in buffer */ - u_char *cb_cur; size_t cb_len; }; ! #define SIZE_LEFT(b) (b->cb_size - (size_t)(b->cb_cur - b->cb_buf) \ ! - b->cb_len) static void cvs_buf_grow(BUF *, size_t); --- 37,49 ---- struct cvs_buf { u_int cb_flags; ! /* buffer handle, buffer size, and data length */ u_char *cb_buf; size_t cb_size; size_t cb_len; }; ! #define SIZE_LEFT(b) (b->cb_size - b->cb_len) static void cvs_buf_grow(BUF *, size_t); *************** *** 72,78 **** b->cb_flags = flags; b->cb_size = len; - b->cb_cur = b->cb_buf; b->cb_len = 0; return (b); --- 68,73 ---- *************** *** 109,115 **** fatal("cvs_buf_load_fd: lseek: %s", strerror(errno)); buf = cvs_buf_alloc(st.st_size, flags); ! for (bp = buf->cb_cur; ; bp += (size_t)ret) { len = SIZE_LEFT(buf); ret = read(fd, bp, len); if (ret == -1) --- 104,110 ---- fatal("cvs_buf_load_fd: lseek: %s", strerror(errno)); buf = cvs_buf_alloc(st.st_size, flags); ! for (bp = buf->cb_buf; ; bp += (size_t)ret) { len = SIZE_LEFT(buf); ret = read(fd, bp, len); if (ret == -1) *************** *** 162,168 **** cvs_buf_empty(BUF *b) { memset(b->cb_buf, 0, b->cb_size); - b->cb_cur = b->cb_buf; b->cb_len = 0; } --- 157,162 ---- *************** *** 176,182 **** { u_char *bp; ! bp = b->cb_cur + b->cb_len; if (bp == (b->cb_buf + b->cb_size)) { /* extend */ if (b->cb_flags & BUF_AUTOEXT) --- 170,176 ---- { u_char *bp; ! bp = b->cb_buf + b->cb_len; if (bp == (b->cb_buf + b->cb_size)) { /* extend */ if (b->cb_flags & BUF_AUTOEXT) *************** *** 185,191 **** fatal("cvs_buf_putc failed"); /* the buffer might have been moved */ ! bp = b->cb_cur + b->cb_len; } *bp = (u_char)c; b->cb_len++; --- 179,185 ---- fatal("cvs_buf_putc failed"); /* the buffer might have been moved */ ! bp = b->cb_buf + b->cb_len; } *bp = (u_char)c; b->cb_len++; *************** *** 200,206 **** u_char cvs_buf_getc(BUF *b, size_t pos) { ! return (b->cb_cur[pos]); } /* --- 194,200 ---- u_char cvs_buf_getc(BUF *b, size_t pos) { ! return (b->cb_buf[pos]); } /* *************** *** 218,224 **** size_t left, rlen; u_char *bp, *bep; ! bp = b->cb_cur + b->cb_len; bep = b->cb_buf + b->cb_size; left = bep - bp; rlen = len; --- 212,218 ---- size_t left, rlen; u_char *bp, *bep; ! bp = b->cb_buf + b->cb_len; bep = b->cb_buf + b->cb_size; left = bep - bp; rlen = len; *************** *** 226,232 **** if (left < len) { if (b->cb_flags & BUF_AUTOEXT) { cvs_buf_grow(b, len - left); ! bp = b->cb_cur + b->cb_len; } else rlen = bep - bp; } --- 220,226 ---- if (left < len) { if (b->cb_flags & BUF_AUTOEXT) { cvs_buf_grow(b, len - left); ! bp = b->cb_buf + b->cb_len; } else rlen = bep - bp; } *************** *** 284,290 **** ssize_t ret; len = b->cb_len; ! bp = b->cb_cur; do { ret = write(fd, bp, len); --- 278,284 ---- ssize_t ret; len = b->cb_len; ! bp = b->cb_buf; do { ret = write(fd, bp, len); *************** *** 372,386 **** cvs_buf_grow(BUF *b, size_t len) { void *tmp; - size_t diff; - diff = b->cb_cur - b->cb_buf; tmp = xrealloc(b->cb_buf, 1, b->cb_size + len); b->cb_buf = tmp; b->cb_size += len; - - /* readjust pointers in case the buffer moved in memory */ - b->cb_cur = b->cb_buf + diff; } /* --- 366,375 ----