[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.56 and 1.57

version 1.56, 2007/02/02 04:24:09 version 1.57, 2007/02/02 04:34:49
Line 37 
Line 37 
 struct cvs_buf {  struct cvs_buf {
         u_int   cb_flags;          u_int   cb_flags;
   
         /* buffer handle and size */          /* buffer handle, buffer size, and data length */
         u_char  *cb_buf;          u_char  *cb_buf;
         size_t   cb_size;          size_t   cb_size;
   
         /* start and length of valid data in buffer */  
         u_char  *cb_cur;  
         size_t   cb_len;          size_t   cb_len;
 };  };
   
 #define SIZE_LEFT(b)    (b->cb_size - (size_t)(b->cb_cur - b->cb_buf) \  #define SIZE_LEFT(b)    (b->cb_size - b->cb_len)
                             - b->cb_len)  
   
 static void     cvs_buf_grow(BUF *, size_t);  static void     cvs_buf_grow(BUF *, size_t);
   
Line 72 
Line 68 
   
         b->cb_flags = flags;          b->cb_flags = flags;
         b->cb_size = len;          b->cb_size = len;
         b->cb_cur = b->cb_buf;  
         b->cb_len = 0;          b->cb_len = 0;
   
         return (b);          return (b);
Line 109 
Line 104 
                 fatal("cvs_buf_load_fd: lseek: %s", strerror(errno));                  fatal("cvs_buf_load_fd: lseek: %s", strerror(errno));
   
         buf = cvs_buf_alloc(st.st_size, flags);          buf = cvs_buf_alloc(st.st_size, flags);
         for (bp = buf->cb_cur; ; bp += (size_t)ret) {          for (bp = buf->cb_buf; ; bp += (size_t)ret) {
                 len = SIZE_LEFT(buf);                  len = SIZE_LEFT(buf);
                 ret = read(fd, bp, len);                  ret = read(fd, bp, len);
                 if (ret == -1)                  if (ret == -1)
Line 162 
Line 157 
 cvs_buf_empty(BUF *b)  cvs_buf_empty(BUF *b)
 {  {
         memset(b->cb_buf, 0, b->cb_size);          memset(b->cb_buf, 0, b->cb_size);
         b->cb_cur = b->cb_buf;  
         b->cb_len = 0;          b->cb_len = 0;
 }  }
   
Line 176 
Line 170 
 {  {
         u_char *bp;          u_char *bp;
   
         bp = b->cb_cur + b->cb_len;          bp = b->cb_buf + 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)
Line 185 
Line 179 
                         fatal("cvs_buf_putc failed");                          fatal("cvs_buf_putc failed");
   
                 /* the buffer might have been moved */                  /* the buffer might have been moved */
                 bp = b->cb_cur + b->cb_len;                  bp = b->cb_buf + b->cb_len;
         }          }
         *bp = (u_char)c;          *bp = (u_char)c;
         b->cb_len++;          b->cb_len++;
Line 200 
Line 194 
 u_char  u_char
 cvs_buf_getc(BUF *b, size_t pos)  cvs_buf_getc(BUF *b, size_t pos)
 {  {
         return (b->cb_cur[pos]);          return (b->cb_buf[pos]);
 }  }
   
 /*  /*
Line 218 
Line 212 
         size_t left, rlen;          size_t left, rlen;
         u_char *bp, *bep;          u_char *bp, *bep;
   
         bp = b->cb_cur + b->cb_len;          bp = b->cb_buf + b->cb_len;
         bep = b->cb_buf + b->cb_size;          bep = b->cb_buf + b->cb_size;
         left = bep - bp;          left = bep - bp;
         rlen = len;          rlen = len;
Line 226 
Line 220 
         if (left < len) {          if (left < len) {
                 if (b->cb_flags & BUF_AUTOEXT) {                  if (b->cb_flags & BUF_AUTOEXT) {
                         cvs_buf_grow(b, len - left);                          cvs_buf_grow(b, len - left);
                         bp = b->cb_cur + b->cb_len;                          bp = b->cb_buf + b->cb_len;
                 } else                  } else
                         rlen = bep - bp;                          rlen = bep - bp;
         }          }
Line 284 
Line 278 
         ssize_t ret;          ssize_t ret;
   
         len = b->cb_len;          len = b->cb_len;
         bp = b->cb_cur;          bp = b->cb_buf;
   
         do {          do {
                 ret = write(fd, bp, len);                  ret = write(fd, bp, len);
Line 372 
Line 366 
 cvs_buf_grow(BUF *b, size_t len)  cvs_buf_grow(BUF *b, size_t len)
 {  {
         void *tmp;          void *tmp;
         size_t diff;  
   
         diff = b->cb_cur - b->cb_buf;  
         tmp = xrealloc(b->cb_buf, 1, b->cb_size + len);          tmp = xrealloc(b->cb_buf, 1, b->cb_size + len);
         b->cb_buf = tmp;          b->cb_buf = tmp;
         b->cb_size += len;          b->cb_size += len;
   
         /* readjust pointers in case the buffer moved in memory */  
         b->cb_cur = b->cb_buf + diff;  
 }  }
   
 /*  /*

Legend:
Removed from v.1.56  
changed lines
  Added in v.1.57