static char * generate_backup_filename ( backup_mode_ty versionControl, char * pathname) { int last_numbered_version; char *backup_name; if (versionControl == none) { backup_name = NULL; } else { if (versionControl == simple) { backup_name = simple_backup_name (pathname); } else { last_numbered_version = max_version (pathname); if ((versionControl == numbered_existing) && (last_numbered_version == 0)) { backup_name = simple_backup_name (pathname); } else { last_numbered_version++; backup_name = xmalloc(strlen (pathname) + 16); if (backup_name) { sprintf (backup_name, BACKUP_SUFFIX_FORMAT, pathname, version_width, (int) last_numbered_version); } } } } return backup_name; }
version_t versions_ago(version_t ago) const { return max_version()-ago; }