version 1.25, 2005/12/24 04:10:51 |
version 1.26, 2005/12/30 01:59:00 |
|
|
|
|
#define BUF_INCR 128 |
#define BUF_INCR 128 |
|
|
|
|
struct cvs_buf { |
struct cvs_buf { |
u_int cb_flags; |
u_int cb_flags; |
|
|
|
|
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 - (size_t)(b->cb_cur - b->cb_buf) \ |
- b->cb_len) |
- b->cb_len) |
|
|
|
|
static ssize_t cvs_buf_grow(BUF *, size_t); |
static ssize_t cvs_buf_grow(BUF *, size_t); |
|
|
|
|
|
|
/* |
/* |
* cvs_buf_alloc() |
* cvs_buf_alloc() |
* |
* |
|
|
return (b); |
return (b); |
} |
} |
|
|
|
|
/* |
/* |
* cvs_buf_load() |
* cvs_buf_load() |
* |
* |
|
|
return (buf); |
return (buf); |
} |
} |
|
|
|
|
/* |
/* |
* cvs_buf_free() |
* cvs_buf_free() |
* |
* |
|
|
xfree(b); |
xfree(b); |
} |
} |
|
|
|
|
/* |
/* |
* cvs_buf_release() |
* cvs_buf_release() |
* |
* |
|
|
return (tmp); |
return (tmp); |
} |
} |
|
|
|
|
/* |
/* |
* cvs_buf_empty() |
* cvs_buf_empty() |
* |
* |
|
|
b->cb_len = 0; |
b->cb_len = 0; |
} |
} |
|
|
|
|
/* |
/* |
* cvs_buf_copy() |
* cvs_buf_copy() |
* |
* |
|
|
return (ssize_t)rc; |
return (ssize_t)rc; |
} |
} |
|
|
|
|
/* |
/* |
* cvs_buf_set() |
* cvs_buf_set() |
* |
* |
|
|
return (rlen); |
return (rlen); |
} |
} |
|
|
|
|
/* |
/* |
* cvs_buf_putc() |
* cvs_buf_putc() |
* |
* |
|
|
return (0); |
return (0); |
} |
} |
|
|
|
|
/* |
/* |
* cvs_buf_append() |
* cvs_buf_append() |
* |
* |
|
|
return (rlen); |
return (rlen); |
} |
} |
|
|
|
|
/* |
/* |
* cvs_buf_fappend() |
* cvs_buf_fappend() |
* |
* |
|
|
return (ret); |
return (ret); |
} |
} |
|
|
|
|
/* |
/* |
* cvs_buf_len() |
* cvs_buf_len() |
* |
* |
|
|
return (b->cb_len); |
return (b->cb_len); |
} |
} |
|
|
|
|
/* |
/* |
* cvs_buf_peek() |
* cvs_buf_peek() |
* |
* |
|
|
return (b->cb_buf + off); |
return (b->cb_buf + off); |
} |
} |
|
|
|
|
/* |
/* |
* cvs_buf_write_fd() |
* cvs_buf_write_fd() |
* |
* |
|
|
* Write the contents of the buffer <b> to the file whose path is given in |
* Write the contents of the buffer <b> to the file whose path is given in |
* <path>. If the file does not exist, it is created with mode <mode>. |
* <path>. If the file does not exist, it is created with mode <mode>. |
*/ |
*/ |
|
|
int |
int |
cvs_buf_write(BUF *b, const char *path, mode_t mode) |
cvs_buf_write(BUF *b, const char *path, mode_t mode) |
{ |
{ |
|
|
* specified using <template> (see mkstemp.3). NB. This function will modify |
* specified using <template> (see mkstemp.3). NB. This function will modify |
* <template>, as per mkstemp |
* <template>, as per mkstemp |
*/ |
*/ |
|
|
int |
int |
cvs_buf_write_stmp(BUF *b, char *template, mode_t mode) |
cvs_buf_write_stmp(BUF *b, char *template, mode_t mode) |
{ |
{ |