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:
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