=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/cvs/buf.c,v retrieving revision 1.45 retrieving revision 1.46 diff -c -r1.45 -r1.46 *** src/usr.bin/cvs/buf.c 2006/04/10 19:49:44 1.45 --- src/usr.bin/cvs/buf.c 2006/04/11 00:49:49 1.46 *************** *** 1,4 **** ! /* $OpenBSD: buf.c,v 1.45 2006/04/10 19:49:44 joris Exp $ */ /* * Copyright (c) 2003 Jean-Francois Brousseau * All rights reserved. --- 1,4 ---- ! /* $OpenBSD: buf.c,v 1.46 2006/04/11 00:49:49 ray Exp $ */ /* * Copyright (c) 2003 Jean-Francois Brousseau * All rights reserved. *************** *** 48,54 **** #define SIZE_LEFT(b) (b->cb_size - (size_t)(b->cb_cur - b->cb_buf) \ - b->cb_len) ! static ssize_t cvs_buf_grow(BUF *, size_t); /* * cvs_buf_alloc() --- 48,54 ---- #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); /* * cvs_buf_alloc() *************** *** 177,185 **** size_t rlen = 0; if (b->cb_size < (len + off)) { ! if ((b->cb_flags & BUF_AUTOEXT) && ! (cvs_buf_grow(b, len + off - b->cb_size) < 0)) ! fatal("cvs_buf_set failed"); else rlen = b->cb_size - off; } else --- 177,184 ---- size_t rlen = 0; if (b->cb_size < (len + off)) { ! if ((b->cb_flags & BUF_AUTOEXT)) ! cvs_buf_grow(b, len + off - b->cb_size); else rlen = b->cb_size - off; } else *************** *** 208,215 **** bp = b->cb_cur + b->cb_len; if (bp == (b->cb_buf + b->cb_size)) { /* extend */ ! if (!(b->cb_flags & BUF_AUTOEXT) || ! (cvs_buf_grow(b, (size_t)BUF_INCR) < 0)) fatal("cvs_buf_putc failed"); /* the buffer might have been moved */ --- 207,215 ---- bp = b->cb_cur + b->cb_len; if (bp == (b->cb_buf + b->cb_size)) { /* extend */ ! if (b->cb_flags & BUF_AUTOEXT) ! cvs_buf_grow(b, (size_t)BUF_INCR); ! else fatal("cvs_buf_putc failed"); /* the buffer might have been moved */ *************** *** 253,260 **** if (left < len) { if (b->cb_flags & BUF_AUTOEXT) { ! if (cvs_buf_grow(b, len - left) < 0) ! fatal("cvs_buf_append failed"); bp = b->cb_cur + b->cb_len; } else rlen = bep - bp; --- 253,259 ---- 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; *************** *** 397,423 **** * * Grow the buffer by bytes. The contents are unchanged by this * operation regardless of the result. - * Returns the new size on success, or -1 on failure. */ ! static ssize_t cvs_buf_grow(BUF *b, size_t len) { void *tmp; size_t diff; diff = b->cb_cur - b->cb_buf; ! /* Buffer not allocated yet */ ! if (b->cb_size == 0) ! tmp = xmalloc(len); ! else ! tmp = xrealloc(b->cb_buf, 1, b->cb_size + len); ! b->cb_buf = (u_char *)tmp; b->cb_size += len; /* readjust pointers in case the buffer moved in memory */ b->cb_cur = b->cb_buf + diff; - - return (ssize_t)b->cb_size; } #if !defined(RCSPROG) --- 396,415 ---- * * Grow the buffer by bytes. The contents are unchanged by this * operation regardless of the result. */ ! static void 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; } #if !defined(RCSPROG)