nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit 8965af5874940d692f2aba5bfeef4d34eba1193f
parent 4967eb8fc0b7cfc6427a1e3ced22cd874146e9af
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date:   Tue,  7 Nov 2006 21:22:14 +0000

in do_writeout(), for consistency, when saving a file with no name,
don't allow overwriting an existing file when in restricted mode


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3937 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

Diffstat:
MChangeLog | 5+++++
Msrc/files.c | 20++++++++++++++++----
2 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,6 +1,11 @@ CVS code - - General: - Miscellaneous comment fixes. (DLR) +- files.c: + do_writeout() + - For consistency, when saving a file with no name, don't + allow overwriting an existing file when in restricted + mode. (DLR) GNU nano 2.0.0 - 2006.11.06 - General: diff --git a/src/files.c b/src/files.c @@ -1874,10 +1874,22 @@ int do_writeout(bool exiting) struct stat st; if (stat(answer, &st) != -1) { - i = do_yesno_prompt(FALSE, - _("File exists, OVERWRITE ? ")); - if (i == 0 || i == -1) - continue; + /* If we're using restricted mode, we aren't allowed + * to save a new file under the name of an existing + * file. In this case, show a "File exists" + * error. */ + if (!ISSET(RESTRICTED)) { + i = do_yesno_prompt(FALSE, + _("File exists, OVERWRITE ? ")); + if (i == 0 || i == -1) + continue; + } else { + errno = EEXIST; + statusbar(_("Error writing %s: %s"), answer, + strerror(errno)); + retval = -1; + break; + } /* If we're using restricted mode, we aren't allowed to * change the name of a file once it has one, because * that would allow reading from or writing to files not