in write_file(), if we can't save the backup file for some reason, at
least save the original file, if possible, since that's better than saving nothing git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3355 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Этот коммит содержится в:
родитель
9308e5210b
Коммит
e5af25baef
@ -14,6 +14,9 @@ CVS code -
|
|||||||
write_file()
|
write_file()
|
||||||
- Don't free backupname before displaying it in a statusbar error
|
- Don't free backupname before displaying it in a statusbar error
|
||||||
message. (DLR, found by Bill Marcum)
|
message. (DLR, found by Bill Marcum)
|
||||||
|
- If we can't save the backup file for some reason, at least
|
||||||
|
save the original file, if possible, since that's better than
|
||||||
|
saving nothing. (DLR, suggested by Jordi)
|
||||||
- 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)
|
||||||
|
20
src/files.c
20
src/files.c
@ -1336,6 +1336,8 @@ 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 open the original file, we won't be able
|
||||||
|
* to save it, so get out. */
|
||||||
goto cleanup_and_exit;
|
goto cleanup_and_exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1375,8 +1377,10 @@ int write_file(const char *name, FILE *f_open, bool tmp, append_type
|
|||||||
_("Too many backup files?"));
|
_("Too many backup files?"));
|
||||||
free(backuptemp);
|
free(backuptemp);
|
||||||
free(backupname);
|
free(backupname);
|
||||||
fclose(f);
|
/* If we can't write to the backup, go on, since only
|
||||||
goto cleanup_and_exit;
|
* saving the original file is better than saving
|
||||||
|
* nothing. */
|
||||||
|
goto skip_backup;
|
||||||
} else {
|
} else {
|
||||||
free(backupname);
|
free(backupname);
|
||||||
backupname = backuptemp;
|
backupname = backuptemp;
|
||||||
@ -1398,8 +1402,9 @@ int write_file(const char *name, FILE *f_open, bool tmp, append_type
|
|||||||
free(backupname);
|
free(backupname);
|
||||||
if (backup_file != NULL)
|
if (backup_file != NULL)
|
||||||
fclose(backup_file);
|
fclose(backup_file);
|
||||||
fclose(f);
|
/* If we can't write to the backup, go on, since only saving
|
||||||
goto cleanup_and_exit;
|
* the original file is better than saving nothing. */
|
||||||
|
goto skip_backup;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
@ -1421,12 +1426,15 @@ int write_file(const char *name, FILE *f_open, bool tmp, append_type
|
|||||||
} else
|
} else
|
||||||
statusbar(_("Error writing %s: %s"), backupname,
|
statusbar(_("Error writing %s: %s"), backupname,
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
free(backupname);
|
/* If we can't read from or write to the backup, go on,
|
||||||
goto cleanup_and_exit;
|
* since only saving the original file is better than saving
|
||||||
|
* nothing. */
|
||||||
}
|
}
|
||||||
|
|
||||||
free(backupname);
|
free(backupname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
skip_backup:
|
||||||
#endif /* !NANO_TINY */
|
#endif /* !NANO_TINY */
|
||||||
|
|
||||||
/* If NOFOLLOW_SYMLINKS is set and the file is a link, we aren't
|
/* If NOFOLLOW_SYMLINKS is set and the file is a link, we aren't
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user