[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.15 and 1.16

version 1.15, 2005/07/25 12:05:43 version 1.16, 2005/07/26 20:58:44
Line 56 
Line 56 
 };  };
   
   
   #define SIZE_LEFT(b)    (b->cb_size - (size_t)(b->cb_cur - b->cb_buf) \
                               - b->cb_len)
   
 #define SIZE_LEFT(b)    ((size_t)(b->cb_buf - b->cb_cur) + b->cb_size)  
   
   
 static ssize_t  cvs_buf_grow(BUF *, size_t);  static ssize_t  cvs_buf_grow(BUF *, size_t);
   
   
Line 135 
Line 135 
         }          }
   
         for (bp = buf->cb_cur; ; bp += (size_t)ret) {          for (bp = buf->cb_cur; ; bp += (size_t)ret) {
                 len = MIN(SIZE_LEFT(buf), 4096);                  len = SIZE_LEFT(buf);
                 ret = read(fd, bp, len);                  ret = read(fd, bp, len);
                 if (ret == -1) {                  if (ret == -1) {
                         cvs_log(LP_ERRNO, "read failed from buffer source");                          cvs_log(LP_ERRNO, "read failed from buffer source");
Line 193 
Line 193 
 void  void
 cvs_buf_empty(BUF *b)  cvs_buf_empty(BUF *b)
 {  {
           memset(b->cb_buf, 0, b->cb_size);
         b->cb_cur = b->cb_buf;          b->cb_cur = b->cb_buf;
         b->cb_len = 0;          b->cb_len = 0;
 }  }
Line 214 
Line 215 
                 return (-1);                  return (-1);
   
         rc = MIN(len, (b->cb_len - off));          rc = MIN(len, (b->cb_len - off));
         memcpy(dst, b->cb_buf, rc);          memcpy(dst, b->cb_buf + off, rc);
   
         return (ssize_t)rc;          return (ssize_t)rc;
 }  }
Line 223 
Line 224 
 /*  /*
  * cvs_buf_set()   * cvs_buf_set()
  *   *
  * Set the contents of the buffer <b> to the first <len> bytes of data found   * Set the contents of the buffer <b> at offset <off> to the first <len>
  * at <src>.  If the buffer was not created with BUF_AUTOEXT, as many bytes   * bytes of data found at <src>.  If the buffer was not created with
  * as possible will be copied in the buffer.   * BUF_AUTOEXT, as many bytes as possible will be copied in the buffer.
  */   */
 int  ssize_t
 cvs_buf_set(BUF *b, const void *src, size_t len, size_t off)  cvs_buf_set(BUF *b, const void *src, size_t len, size_t off)
 {  {
         size_t rlen;          size_t rlen;
Line 248 
Line 249 
                 b->cb_len = rlen;                  b->cb_len = rlen;
         }          }
   
         return (int)rlen;          return (rlen);
 }  }
   
   
Line 344 
Line 345 
   
   
 /*  /*
  * cvs_buf_size()   * cvs_buf_len()
  *   *
  * Returns the size of the buffer that is being used.   * Returns the size of the buffer that is being used.
  */   */
 size_t  size_t
 cvs_buf_size(BUF *b)  cvs_buf_len(BUF *b)
 {  {
         return (b->cb_len);          return (b->cb_len);
 }  }
Line 386 
Line 387 
         bp = b->cb_cur;          bp = b->cb_cur;
   
         do {          do {
                 ret = write(fd, bp, MIN(len, 8192));                  ret = write(fd, bp, len);
                 if (ret == -1) {                  if (ret == -1) {
                         if (errno == EINTR || errno == EAGAIN)                          if (errno == EINTR || errno == EAGAIN)
                                 continue;                                  continue;

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.16