mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Make special backup when switching XML versions
Since the last few dozen commits change the format in irreversible ways and could therefore be destructive and lose data for testers of the development version, let's try to be extra careful and create "special" backup files that aren't overwritten by subsequent backups. At least this way people can go back to the previous state. Of course people using the git backend don't have to worry about this as they always can go back to any earlier save. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
ae49a8a4f7
commit
d4f2b72148
3 changed files with 15 additions and 1 deletions
10
save-xml.c
10
save-xml.c
|
@ -591,7 +591,15 @@ static void try_to_backup(const char *filename)
|
|||
while (extension[i][0] != '\0') {
|
||||
int elen = strlen(extension[i]);
|
||||
if (strcasecmp(filename + flen - elen, extension[i]) == 0) {
|
||||
save_backup(filename, extension[i], "bak");
|
||||
if (last_xml_version < VERSION) {
|
||||
int se_len = strlen(extension[i]) + 5;
|
||||
char *special_ext = malloc(se_len);
|
||||
snprintf(special_ext, se_len, "%s.v%d", extension[i], last_xml_version);
|
||||
save_backup(filename, extension[i], special_ext);
|
||||
free(special_ext);
|
||||
} else {
|
||||
save_backup(filename, extension[i], "bak");
|
||||
}
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue