[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.76 and 1.77

version 1.76, 2010/07/23 21:46:05 version 1.77, 2010/07/31 16:28:31
Line 38 
Line 38 
 #include "buf.h"  #include "buf.h"
   
 #define BUF_INCR        128  #define BUF_INCR        128
 #define BUF_GROW(bp, len)                                               \  
         do {                                                            \  
                 b->cb_buf = xrealloc(b->cb_buf, 1, b->cb_size + len);   \  
                 b->cb_size += len;                                      \  
         } while (0);  
   
 struct buf {  struct buf {
         u_char  *cb_buf;          u_char  *cb_buf;
Line 50 
Line 45 
         size_t   cb_len;          size_t   cb_len;
 };  };
   
   #define SIZE_LEFT(b)    (b->cb_size - b->cb_len)
   
   static void     buf_grow(BUF *, size_t);
   
 BUF *  BUF *
 buf_alloc(size_t len)  buf_alloc(size_t len)
 {  {
Line 130 
Line 129 
   
         bp = b->cb_buf + 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)) {
                 BUF_GROW(b, BUF_INCR);                  buf_grow(b, BUF_INCR);
                 bp = b->cb_buf + b->cb_len;                  bp = b->cb_buf + b->cb_len;
         }          }
         *bp = (u_char)c;          *bp = (u_char)c;
Line 147 
Line 146 
 buf_append(BUF *b, const void *data, size_t len)  buf_append(BUF *b, const void *data, size_t len)
 {  {
         size_t left;          size_t left;
         u_char *bp, *bep;          u_char *bp;
   
         bp = b->cb_buf + b->cb_len;          left = SIZE_LEFT(b);
         bep = b->cb_buf + b->cb_size;  
         left = bep - bp;  
   
         if (left < len) {          if (left < len)
                 BUF_GROW(b, len - left);                  buf_grow(b, len - left);
                 bp = b->cb_buf + b->cb_len;  
         }  
   
           bp = b->cb_buf + b->cb_len;
         memcpy(bp, data, len);          memcpy(bp, data, len);
         b->cb_len += len;          b->cb_len += len;
 }  }
Line 240 
Line 236 
                 return (1);                  return (1);
   
         return (memcmp(b1->cb_buf, b2->cb_buf, b1->cb_len));          return (memcmp(b1->cb_buf, b2->cb_buf, b1->cb_len));
   }
   
   /*
    * buf_grow()
    *
    * Grow the buffer <b> by <len> bytes.  The contents are unchanged by this
    * operation regardless of the result.
    */
   static void
   buf_grow(BUF *b, size_t len)
   {
           b->cb_buf = xrealloc(b->cb_buf, 1, b->cb_size + len);
           b->cb_size += len;
 }  }

Legend:
Removed from v.1.76  
changed lines
  Added in v.1.77