* files.c: Do not go on and attempt to write the main file if writing the backup file failed,
related to Savannah bug 24000. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4297 35c25a1d-7b9e-4130-9fde-d3aeb78583b8master
parent
6f681c1be2
commit
447f1b4b75
|
@ -1,3 +1,7 @@
|
||||||
|
2008-08-08 Chris Allegretta <chrisa@asty.org>
|
||||||
|
* files.c: Do not go on and attempt to write the main file if writing the backup file failed,
|
||||||
|
related to Savannah bug 24000.
|
||||||
|
|
||||||
2008-07-23 Chris Allegretta <chrisa@asty.org>
|
2008-07-23 Chris Allegretta <chrisa@asty.org>
|
||||||
* text.c: Reset openfile-> to OTHER after an undo or redo so we don't mistakenly
|
* text.c: Reset openfile-> to OTHER after an undo or redo so we don't mistakenly
|
||||||
mistakenly think this is an update when it's really an add. Also
|
mistakenly think this is an update when it's really an add. Also
|
||||||
|
|
31
src/files.c
31
src/files.c
|
@ -1474,14 +1474,15 @@ bool write_file(const char *name, FILE *f_open, bool tmp, append_type
|
||||||
free(backuptemp);
|
free(backuptemp);
|
||||||
backuptemp = get_next_filename(backupname, "~");
|
backuptemp = get_next_filename(backupname, "~");
|
||||||
if (*backuptemp == '\0') {
|
if (*backuptemp == '\0') {
|
||||||
statusbar(_("Error writing %s: %s"), backupname,
|
statusbar(_("Error writing backup file %s: %s"), backupname,
|
||||||
_("Too many backup files?"));
|
_("Too many backup files?"));
|
||||||
free(backuptemp);
|
free(backuptemp);
|
||||||
free(backupname);
|
free(backupname);
|
||||||
/* If we can't write to the backup, go on, since only
|
/* If we can't write to the backup, DONT go on, since
|
||||||
* saving the original file is better than saving
|
whatever caused the backup file to fail (e.g. disk
|
||||||
* nothing. */
|
full may well cause the real file write to fail, which
|
||||||
goto skip_backup;
|
means we could lose both the backup and the original! */
|
||||||
|
goto cleanup_and_exit;
|
||||||
} else {
|
} else {
|
||||||
free(backupname);
|
free(backupname);
|
||||||
backupname = backuptemp;
|
backupname = backuptemp;
|
||||||
|
@ -1498,14 +1499,16 @@ bool write_file(const char *name, FILE *f_open, bool tmp, append_type
|
||||||
|
|
||||||
if (backup_file == NULL || chmod(backupname,
|
if (backup_file == NULL || chmod(backupname,
|
||||||
openfile->current_stat->st_mode) == -1) {
|
openfile->current_stat->st_mode) == -1) {
|
||||||
statusbar(_("Error writing %s: %s"), backupname,
|
statusbar(_("Error writing backup file %s: %s"), backupname,
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
free(backupname);
|
free(backupname);
|
||||||
if (backup_file != NULL)
|
if (backup_file != NULL)
|
||||||
fclose(backup_file);
|
fclose(backup_file);
|
||||||
/* If we can't write to the backup, go on, since only saving
|
/* If we can't write to the backup, DONT go on, since
|
||||||
* the original file is better than saving nothing. */
|
whatever caused the backup file to fail (e.g. disk
|
||||||
goto skip_backup;
|
full may well cause the real file write to fail, which
|
||||||
|
means we could lose both the backup and the original! */
|
||||||
|
goto cleanup_and_exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
@ -1525,11 +1528,13 @@ bool write_file(const char *name, FILE *f_open, bool tmp, append_type
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
beep();
|
beep();
|
||||||
} else
|
} else
|
||||||
statusbar(_("Error writing %s: %s"), backupname,
|
statusbar(_("Error writing backup file %s: %s"), backupname,
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
/* If we can't read from or write to the backup, go on,
|
/* If we can't write to the backup, DONT go on, since
|
||||||
* since only saving the original file is better than saving
|
whatever caused the backup file to fail (e.g. disk
|
||||||
* nothing. */
|
full may well cause the real file write to fail, which
|
||||||
|
means we could lose both the backup and the original! */
|
||||||
|
goto cleanup_and_exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
free(backupname);
|
free(backupname);
|
||||||
|
|
Loading…
Reference in New Issue