diff --git a/src/main.c b/src/main.c index aef2b96..8aff846 100644 --- a/src/main.c +++ b/src/main.c @@ -149,8 +149,8 @@ static int status() { if (base_file_buffer_search(tracked_list, file_name)) { BaseFileInfo* base_file = base_file_buffer_search(tracked_list, file_name); char base_file_hash[41]; - char id[2 + snprintf(NULL, 0, "%lu", base_file->base_num) + strlen(file_name)]; - snprintf(id, sizeof(id), "%s %lu", file_name, base_file->base_num); + char id[3 + snprintf(NULL, 0, "%lu", base_file->base_num) + strlen(file_name) + strlen(branch)]; + snprintf(id, sizeof(id), "%s %lu %s", file_name, base_file->base_num, branch); object_hash(BaseFileObject, id, base_file_hash); File* basefile = parse_object(base_file_hash, BaseFileObject, NULL, NULL); if (!basefile) { @@ -169,8 +169,8 @@ static int status() { if (base_file->diff_num > 0) { size_t prev_diff = base_file->diff_num - 1; char prev_diff_hash[41]; - char id2[2 + snprintf(NULL, 0, "%zu", prev_diff) + strlen(file_name)]; - snprintf(id2, sizeof(id2), "%s %zu", file_name, prev_diff); + char id2[3 + snprintf(NULL, 0, "%zu", prev_diff) + strlen(file_name) + strlen(branch)]; + snprintf(id2, sizeof(id2), "%s %zu %s", file_name, prev_diff, branch); object_hash(FileDiffObject, id2, prev_diff_hash); char hash[41]; ActionList* last_diff = parse_object(prev_diff_hash, FileDiffObject, NULL, hash); @@ -439,8 +439,8 @@ static int commit(int argc, char** argv) { } char base_file_hash[41]; - char id[2 + snprintf(NULL, 0, "%lu", base_file->base_num) + strlen(files->items[idx])]; - snprintf(id, sizeof(id), "%s %lu", (char*)files->items[idx], base_file->base_num); + char id[3 + snprintf(NULL, 0, "%lu", base_file->base_num) + strlen(files->items[idx]) + strlen(branch)]; + snprintf(id, sizeof(id), "%s %lu %s", (char*)files->items[idx], base_file->base_num, branch); object_hash(BaseFileObject, id, base_file_hash); File* basefile = parse_object(base_file_hash, BaseFileObject, NULL, NULL); if (!basefile) { @@ -495,8 +495,8 @@ static int commit(int argc, char** argv) { if (base_file->diff_num > 0) { size_t prev_diff = base_file->diff_num - 1; char prev_diff_hash[41]; - char id2[2 + snprintf(NULL, 0, "%zu", prev_diff) + strlen(files->items[idx])]; - snprintf(id2, sizeof(id2), "%s %zu", (char*)files->items[idx], prev_diff); + char id2[3 + snprintf(NULL, 0, "%zu", prev_diff) + strlen(files->items[idx]) + strlen(branch)]; + snprintf(id2, sizeof(id2), "%s %zu %s", (char*)files->items[idx], prev_diff, branch); object_hash(FileDiffObject, id2, prev_diff_hash); char hash[41]; ActionList* last_diff = parse_object(prev_diff_hash, FileDiffObject, NULL, hash); @@ -575,8 +575,8 @@ static int commit(int argc, char** argv) { save_diff(diff, files->items[idx], root, base_file->diff_num, base_file_hash); char diff_hash[41]; - char id[2 + snprintf(NULL, 0, "%lu", base_file->diff_num) + strlen(files->items[idx])]; - snprintf(id, sizeof(id), "%s %lu", (char*)files->items[idx], base_file->diff_num); + char id[3 + snprintf(NULL, 0, "%lu", base_file->diff_num) + strlen(files->items[idx]) + strlen(branch)]; + snprintf(id, sizeof(id), "%s %lu %s", (char*)files->items[idx], base_file->diff_num, branch); object_hash(BaseFileObject, id, diff_hash); flat_map_put(file_hash_map, files->items[idx], diff_hash);