version 1.21, 2013/11/26 13:19:07 |
version 1.22, 2020/10/12 13:58:27 |
|
|
char * |
char * |
find_backup_file_name(const char *file) |
find_backup_file_name(const char *file) |
{ |
{ |
char *dir, *base_versions; |
char *dir, *base_versions, *tmp_file; |
int highest_backup; |
int highest_backup; |
|
|
if (backup_type == simple) |
if (backup_type == simple) |
return concat(file, simple_backup_suffix); |
return concat(file, simple_backup_suffix); |
base_versions = concat(basename(file), ".~"); |
tmp_file = strdup(file); |
|
if (tmp_file == NULL) |
|
return NULL; |
|
base_versions = concat(basename(tmp_file), ".~"); |
|
free(tmp_file); |
if (base_versions == NULL) |
if (base_versions == NULL) |
return NULL; |
return NULL; |
dir = dirname(file); |
tmp_file = strdup(file); |
|
if (tmp_file == NULL) { |
|
free(base_versions); |
|
return NULL; |
|
} |
|
dir = dirname(tmp_file); |
if (dir == NULL) { |
if (dir == NULL) { |
free(base_versions); |
free(base_versions); |
|
free(tmp_file); |
return NULL; |
return NULL; |
} |
} |
highest_backup = max_backup_version(base_versions, dir); |
highest_backup = max_backup_version(base_versions, dir); |
free(base_versions); |
free(base_versions); |
|
free(tmp_file); |
if (backup_type == numbered_existing && highest_backup == 0) |
if (backup_type == numbered_existing && highest_backup == 0) |
return concat(file, simple_backup_suffix); |
return concat(file, simple_backup_suffix); |
return make_version_name(file, highest_backup + 1); |
return make_version_name(file, highest_backup + 1); |