[BACK]Return to buf.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / cvs

Diff for /src/usr.bin/cvs/buf.c between version 1.45 and 1.46

version 1.45, 2006/04/10 19:49:44 version 1.46, 2006/04/11 00:49:49
Line 48 
Line 48 
 #define SIZE_LEFT(b)    (b->cb_size - (size_t)(b->cb_cur - b->cb_buf) \  #define SIZE_LEFT(b)    (b->cb_size - (size_t)(b->cb_cur - b->cb_buf) \
                             - b->cb_len)                              - b->cb_len)
   
 static ssize_t  cvs_buf_grow(BUF *, size_t);  static void     cvs_buf_grow(BUF *, size_t);
   
 /*  /*
  * cvs_buf_alloc()   * cvs_buf_alloc()
Line 177 
Line 177 
         size_t rlen = 0;          size_t rlen = 0;
   
         if (b->cb_size < (len + off)) {          if (b->cb_size < (len + off)) {
                 if ((b->cb_flags & BUF_AUTOEXT) &&                  if ((b->cb_flags & BUF_AUTOEXT))
                     (cvs_buf_grow(b, len + off - b->cb_size) < 0))                          cvs_buf_grow(b, len + off - b->cb_size);
                         fatal("cvs_buf_set failed");  
                 else                  else
                         rlen = b->cb_size - off;                          rlen = b->cb_size - off;
         } else          } else
Line 208 
Line 207 
         bp = b->cb_cur + b->cb_len;          bp = b->cb_cur + b->cb_len;
         if (bp == (b->cb_buf + b->cb_size)) {          if (bp == (b->cb_buf + b->cb_size)) {
                 /* extend */                  /* extend */
                 if (!(b->cb_flags & BUF_AUTOEXT) ||                  if (b->cb_flags & BUF_AUTOEXT)
                     (cvs_buf_grow(b, (size_t)BUF_INCR) < 0))                          cvs_buf_grow(b, (size_t)BUF_INCR);
                   else
                         fatal("cvs_buf_putc failed");                          fatal("cvs_buf_putc failed");
   
                 /* the buffer might have been moved */                  /* the buffer might have been moved */
Line 253 
Line 253 
   
         if (left < len) {          if (left < len) {
                 if (b->cb_flags & BUF_AUTOEXT) {                  if (b->cb_flags & BUF_AUTOEXT) {
                         if (cvs_buf_grow(b, len - left) < 0)                          cvs_buf_grow(b, len - left);
                                 fatal("cvs_buf_append failed");  
                         bp = b->cb_cur + b->cb_len;                          bp = b->cb_cur + b->cb_len;
                 } else                  } else
                         rlen = bep - bp;                          rlen = bep - bp;
Line 397 
Line 396 
  *   *
  * Grow the buffer <b> by <len> bytes.  The contents are unchanged by this   * Grow the buffer <b> by <len> bytes.  The contents are unchanged by this
  * operation regardless of the result.   * operation regardless of the result.
  * Returns the new size on success, or -1 on failure.  
  */   */
 static ssize_t  static void
 cvs_buf_grow(BUF *b, size_t len)  cvs_buf_grow(BUF *b, size_t len)
 {  {
         void *tmp;          void *tmp;
         size_t diff;          size_t diff;
   
         diff = b->cb_cur - b->cb_buf;          diff = b->cb_cur - b->cb_buf;
         /* Buffer not allocated yet */          tmp = xrealloc(b->cb_buf, 1, b->cb_size + len);
         if (b->cb_size == 0)          b->cb_buf = tmp;
                 tmp = xmalloc(len);  
         else  
                 tmp = xrealloc(b->cb_buf, 1, b->cb_size + len);  
         b->cb_buf = (u_char *)tmp;  
         b->cb_size += len;          b->cb_size += len;
   
         /* readjust pointers in case the buffer moved in memory */          /* readjust pointers in case the buffer moved in memory */
         b->cb_cur = b->cb_buf + diff;          b->cb_cur = b->cb_buf + diff;
   
         return (ssize_t)b->cb_size;  
 }  }
   
 #if !defined(RCSPROG)  #if !defined(RCSPROG)

Legend:
Removed from v.1.45  
changed lines
  Added in v.1.46