simplify the previous fix; also, in write_file(), clarify the error

message when writing a temporary file for prepending fails


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3361 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
master
David Lawrence Ramsey 2006-04-07 04:37:14 +00:00
parent 2420794355
commit adfecd24b4
2 changed files with 18 additions and 10 deletions

View File

@ -24,6 +24,8 @@ CVS code -
save the original file, if possible, since that's better than save the original file, if possible, since that's better than
saving nothing. (DLR, problem found by Bill Marcum, solution saving nothing. (DLR, problem found by Bill Marcum, solution
suggested by Jordi) suggested by Jordi)
- Clarify the error message when writing a temporary file for
prepending fails. (DLR)
- rcfile.c: - rcfile.c:
parse_argument() parse_argument()
- Rename variable ptr_bak to ptr_save, for consistency. (DLR) - Rename variable ptr_bak to ptr_save, for consistency. (DLR)

View File

@ -1336,15 +1336,10 @@ int write_file(const char *name, FILE *f_open, bool tmp, append_type
statusbar(_("Error reading %s: %s"), realname, statusbar(_("Error reading %s: %s"), realname,
strerror(errno)); strerror(errno));
beep(); beep();
/* If we can't read from the original file, and we're /* If we can't read from the original file, go on, since
* prepending, get out, since we won't be able to save * only saving the original file is better than saving
* either the backup or the original file. If we're not * nothing. */
* prepending, go on, since only saving the original goto skip_backup;
* file is better than saving nothing. */
if (append == PREPEND)
goto cleanup_and_exit;
else
goto skip_backup;
} }
} }
@ -1468,10 +1463,21 @@ int write_file(const char *name, FILE *f_open, bool tmp, append_type
int fd_source; int fd_source;
FILE *f_source = NULL; FILE *f_source = NULL;
if (f == NULL) {
f = fopen(realname, "rb");
if (f == NULL) {
statusbar(_("Error reading %s: %s"), realname,
strerror(errno));
beep();
goto cleanup_and_exit;
}
}
tempname = safe_tempfile(&f); tempname = safe_tempfile(&f);
if (tempname == NULL) { if (tempname == NULL) {
statusbar(_("Prepending to %s failed: %s"), realname, statusbar(_("Could not create temp file: %s"),
strerror(errno)); strerror(errno));
goto cleanup_and_exit; goto cleanup_and_exit;
} }