version 1.65, 2005/11/20 18:47:11 |
version 1.66, 2005/12/13 05:40:33 |
|
|
ffwopen(const char *fn, struct buffer *bp) |
ffwopen(const char *fn, struct buffer *bp) |
{ |
{ |
int fd; |
int fd; |
mode_t mode = DEFFILEMODE; |
mode_t fmode = DEFFILEMODE; |
|
|
if (bp && bp->b_fi.fi_mode) |
if (bp && bp->b_fi.fi_mode) |
mode = bp->b_fi.fi_mode & 07777; |
fmode = bp->b_fi.fi_mode & 07777; |
|
|
fd = open(fn, O_RDWR | O_CREAT | O_TRUNC, mode); |
fd = open(fn, O_RDWR | O_CREAT | O_TRUNC, fmode); |
if (fd == -1) { |
if (fd == -1) { |
ffp = NULL; |
ffp = NULL; |
ewprintf("Cannot open file for writing : %s", strerror(errno)); |
ewprintf("Cannot open file for writing : %s", strerror(errno)); |
|
|
{ |
{ |
int ifd, ofd, n; |
int ifd, ofd, n; |
char buf[BUFSIZ]; |
char buf[BUFSIZ]; |
mode_t mode = DEFFILEMODE; /* XXX?? */ |
mode_t fmode = DEFFILEMODE; /* XXX?? */ |
struct stat orig; |
struct stat orig; |
|
|
if ((ifd = open(frname, O_RDONLY)) == -1) |
if ((ifd = open(frname, O_RDONLY)) == -1) |
|
|
return (FALSE); |
return (FALSE); |
} |
} |
|
|
if ((ofd = open(toname, O_WRONLY|O_CREAT|O_TRUNC, mode)) == -1) { |
if ((ofd = open(toname, O_WRONLY|O_CREAT|O_TRUNC, fmode)) == -1) { |
close(ifd); |
close(ifd); |
return (FALSE); |
return (FALSE); |
} |
} |