version 1.21, 2005/12/20 17:11:48 |
version 1.22, 2005/12/20 17:55:10 |
|
|
if (ret == -1) { |
if (ret == -1) { |
if (errno == EINTR || errno == EAGAIN) |
if (errno == EINTR || errno == EAGAIN) |
continue; |
continue; |
fatal("cvs_buf_write_fd failed"); |
return (-1); |
} |
} |
|
|
len -= (size_t)ret; |
len -= (size_t)ret; |
|
|
int |
int |
cvs_buf_write(BUF *b, const char *path, mode_t mode) |
cvs_buf_write(BUF *b, const char *path, mode_t mode) |
{ |
{ |
int ret, fd; |
int fd; |
|
|
if ((fd = open(path, O_WRONLY|O_CREAT|O_TRUNC, mode)) == -1) |
if ((fd = open(path, O_WRONLY|O_CREAT|O_TRUNC, mode)) == -1) |
fatal("open: `%s': %s", path, strerror(errno)); |
fatal("open: `%s': %s", path, strerror(errno)); |
|
|
ret = cvs_buf_write_fd(b, fd); |
if (cvs_buf_write_fd(b, fd) == -1) { |
if (ret == -1) { |
|
cvs_log(LP_ERRNO, "failed to write to file `%s'", path); |
|
(void)unlink(path); |
(void)unlink(path); |
|
fatal("cvs_buf_write: cvs_buf_write_fd: `%s'", path); |
} |
} |
(void)close(fd); |
(void)close(fd); |
|
|
return (ret); |
return (0); |
} |
} |
|
|
/* |
/* |
|
|
int |
int |
cvs_buf_write_stmp(BUF *b, char *template, mode_t mode) |
cvs_buf_write_stmp(BUF *b, char *template, mode_t mode) |
{ |
{ |
int ret, fd; |
int fd; |
|
|
if ((fd = mkstemp(template)) == -1) |
if ((fd = mkstemp(template)) == -1) |
fatal("mkstemp: `%s': %s", template, strerror(errno)); |
fatal("mkstemp: `%s': %s", template, strerror(errno)); |
|
|
ret = cvs_buf_write_fd(b, fd); |
if (cvs_buf_write_fd(b, fd) == -1) { |
if (ret == -1) { |
|
cvs_log(LP_ERRNO, "failed to write to temp file `%s'", |
|
template); |
|
(void)unlink(template); |
(void)unlink(template); |
|
fatal("cvs_buf_write_stmp: cvs_buf_write_fd: `%s'", template); |
} |
} |
(void)close(fd); |
(void)close(fd); |
|
|
return (ret); |
return (0); |
} |
} |
|
|
/* |
/* |