]> git.wh0rd.org Git - nano.git/commitdiff
Re-add O_CREAT since I botched the merge, some indentation fixes also, by DB
authorChris Allegretta <chrisa@asty.org>
Tue, 23 Apr 2002 10:22:33 +0000 (10:22 +0000)
committerChris Allegretta <chrisa@asty.org>
Tue, 23 Apr 2002 10:22:33 +0000 (10:22 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1193 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

files.c

diff --git a/files.c b/files.c
index 7270b32bae9fddaf8b686df406eb40438f7619c6..ecf5368019929301d61ee07ee75ba312042c1b63 100644 (file)
--- a/files.c
+++ b/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");