From: Chris Allegretta Date: Sat, 9 Dec 2000 23:37:00 +0000 (+0000) Subject: Let's just copy joe word for word and just change the name to nano!!!! X-Git-Tag: v0.9.24~24 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=d62614cbc4c027d331809c43db1e2208d57dc3c4;p=nano.git Let's just copy joe word for word and just change the name to nano!!!! git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@397 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- diff --git a/files.c b/files.c index 5e2df38c..09d623bc 100644 --- a/files.c +++ b/files.c @@ -334,13 +334,18 @@ int write_file(char *name, int tmp) statement below (that starts "if ((!ISSET(FOLLOW_SYMLINKS)...") to reflect whether or not to link/unlink/rename the file */ else if (ISSET(FOLLOW_SYMLINKS) || !S_ISLNK(lst.st_mode) || tmp) { - /* Use O_EXCL if tmp == 1. This is now copied from joe, because - wiggy says so *shrug* */ - if (tmp) - fd = open(realname, O_WRONLY | O_CREAT | O_EXCL, (S_IRUSR|S_IWUSR)); - else - fd = open(realname, O_WRONLY | O_CREAT | O_TRUNC, (S_IRUSR|S_IWUSR)); + wiggy says so *shrug*. We also put back the append check, + which we used to have, forever ago */ + if (tmp) { + if ((fd = open(realname, (O_WRONLY|O_APPEND|O_NOFOLLOW))) != -1) + fd = open(realname, O_WRONLY | O_CREAT | O_EXCL, + (S_IRUSR|S_IWUSR)); + } else { + if ((fd = open(realname, (O_WRONLY|O_APPEND))) != -1) + fd = open(realname, O_WRONLY | O_CREAT | O_TRUNC, + (S_IRUSR|S_IWUSR)); + } /* First, just give up if we couldn't even open the file */ if (fd == -1) {