1
1

Re-add O_CREAT since I botched the merge, some indentation fixes also, by DB

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1193 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Этот коммит содержится в:
Chris Allegretta 2002-04-23 10:22:33 +00:00
родитель 0547eb36c4
Коммит b275175bef

32
files.c
Просмотреть файл

@ -1257,7 +1257,7 @@ int write_file(char *name, int tmp, int append, int nonamechange)
/* Don't follow symlink. Create new file. */
else {
buf = charalloc(strlen(realname) + 8);
strncpy(buf, realname, strlen(realname)+1);
strcpy(buf, realname);
strcat(buf, ".XXXXXX");
if ((fd = mkstemp(buf)) == -1) {
if (ISSET(TEMP_OPT)) {
@ -1272,12 +1272,7 @@ int write_file(char *name, int tmp, int append, int nonamechange)
dump_buffer(fileage);
if (append == 1) {
f = fdopen(fd, "ab");
} else {
f = fdopen(fd, "wb");
}
f = fdopen(fd, append==1 ? "ab" : "wb");
if (!f) {
statusbar(_("Could not open file for writing: %s"),
strerror(errno));
@ -1295,13 +1290,14 @@ int write_file(char *name, int tmp, int append, int nonamechange)
if (size < data_len) {
statusbar(_("Could not open file for writing: %s"),
strerror(errno));
fclose(f);
fclose(f);
return -1;
} else {
}
#ifdef DEBUG
else
fprintf(stderr, _("Wrote >%s\n"), fileptr->data);
#endif
}
#ifndef NANO_SMALL
if (ISSET(DOS_FILE) || ISSET(MAC_FILE))
putc('\r', f);
@ -1315,9 +1311,9 @@ int write_file(char *name, int tmp, int append, int nonamechange)
}
if (fileptr != NULL) {
int data_len;
int data_len;
data_len = strlen(fileptr->data);
data_len = strlen(fileptr->data);
size = fwrite(fileptr->data, 1, data_len, f);
if (size < data_len) {
statusbar(_("Could not open file for writing: %s"),
@ -1358,9 +1354,9 @@ int write_file(char *name, int tmp, int append, int nonamechange)
/* if we're prepending, open the real file, and append it here */
if (append == 2) {
int fd_source, fd_dest;
FILE *f_source, *f_dest;
int prechar;
int fd_source, fd_dest;
FILE *f_source, *f_dest;
int prechar;
if ((fd_dest = open(buf, O_WRONLY | O_APPEND, (S_IRUSR|S_IWUSR))) == -1) {
statusbar(_("Could not reopen %s: %s"), buf, strerror(errno));
@ -1369,12 +1365,12 @@ int write_file(char *name, int tmp, int append, int nonamechange)
f_dest = fdopen(fd_dest, "wb");
if (!f_dest) {
statusbar(_("Could not reopen %s: %s"), buf, strerror(errno));
close(fd_dest);
close(fd_dest);
return -1;
}
if ((fd_source = open(realname, O_RDONLY)) == -1) {
if ((fd_source = open(realname, O_RDONLY | O_CREAT)) == -1) {
statusbar(_("Could not open %s for prepend: %s"), realname, strerror(errno));
fclose(f_dest);
fclose(f_dest);
return -1;
}
f_source = fdopen(fd_source, "rb");