static int get_sha1_oneline(const char *, unsigned char *, struct commit_list *);
-static int find_short_object_filename(int len, const char *name, unsigned char *sha1)
+static int find_short_object_filename(int len, const char *hex_pfx, unsigned char *sha1)
{
struct alternate_object_database *alt;
char hex[40];
}
fakeent->next = alt_odb_list;
- sprintf(hex, "%.2s", name);
+ sprintf(hex, "%.2s", hex_pfx);
for (alt = fakeent; alt && found < 2; alt = alt->next) {
struct dirent *de;
DIR *dir;
- sprintf(alt->name, "%.2s/", name);
+ sprintf(alt->name, "%.2s/", hex_pfx);
dir = opendir(alt->base);
if (!dir)
continue;
while ((de = readdir(dir)) != NULL) {
if (strlen(de->d_name) != 38)
continue;
- if (memcmp(de->d_name, name + 2, len - 2))
+ if (memcmp(de->d_name, hex_pfx + 2, len - 2))
continue;
if (!found) {
memcpy(hex + 2, de->d_name, 38);
}
static int unique_in_pack(int len,
- const unsigned char *match,
+ const unsigned char *bin_pfx,
struct packed_git *p,
const unsigned char **found_sha1,
int seen_so_far)
int cmp;
current = nth_packed_object_sha1(p, mid);
- cmp = hashcmp(match, current);
+ cmp = hashcmp(bin_pfx, current);
if (!cmp) {
first = mid;
break;
/*
* At this point, "first" is the location of the lowest object
- * with an object name that could match "match". See if we have
+ * with an object name that could match "bin_pfx". See if we have
* 0, 1 or more objects that actually match(es).
*/
for (i = first; i < num; i++) {
current = nth_packed_object_sha1(p, first);
- if (!match_sha(len, match, current))
+ if (!match_sha(len, bin_pfx, current))
break;
/* current matches */
return seen_so_far;
}
-static int find_short_packed_object(int len, const unsigned char *match, unsigned char *sha1)
+static int find_short_packed_object(int len, const unsigned char *bin_pfx, unsigned char *sha1)
{
struct packed_git *p;
const unsigned char *found_sha1 = NULL;
prepare_packed_git();
for (p = packed_git; p && found < 2; p = p->next)
- found = unique_in_pack(len, match, p, &found_sha1, found);
+ found = unique_in_pack(len, bin_pfx, p, &found_sha1, found);
if (found == 1)
hashcpy(sha1, found_sha1);
#define SHORT_NAME_NOT_FOUND (-1)
#define SHORT_NAME_AMBIGUOUS (-2)
-static int find_unique_short_object(int len, char *canonical,
- unsigned char *res, unsigned char *sha1)
+static int find_unique_short_object(int len, char *hex_pfx,
+ unsigned char *bin_pfx, unsigned char *sha1)
{
int has_unpacked, has_packed;
unsigned char unpacked_sha1[20], packed_sha1[20];
prepare_alt_odb();
- has_unpacked = find_short_object_filename(len, canonical, unpacked_sha1);
- has_packed = find_short_packed_object(len, res, packed_sha1);
+ has_unpacked = find_short_object_filename(len, hex_pfx, unpacked_sha1);
+ has_packed = find_short_packed_object(len, bin_pfx, packed_sha1);
if (!has_unpacked && !has_packed)
return SHORT_NAME_NOT_FOUND;
if (1 < has_unpacked || 1 < has_packed)
int quietly)
{
int i, status;
- char canonical[40];
- unsigned char res[20];
+ char hex_pfx[40];
+ unsigned char bin_pfx[20];
if (len < MINIMUM_ABBREV || len > 40)
return -1;
- hashclr(res);
- memset(canonical, 'x', 40);
+ hashclr(bin_pfx);
+ memset(hex_pfx, 'x', 40);
for (i = 0; i < len ;i++) {
unsigned char c = name[i];
unsigned char val;
}
else
return -1;
- canonical[i] = c;
+ hex_pfx[i] = c;
if (!(i & 1))
val <<= 4;
- res[i >> 1] |= val;
+ bin_pfx[i >> 1] |= val;
}
- status = find_unique_short_object(i, canonical, res, sha1);
+ status = find_unique_short_object(i, hex_pfx, bin_pfx, sha1);
if (!quietly && (status == SHORT_NAME_AMBIGUOUS))
- return error("short SHA1 %.*s is ambiguous.", len, canonical);
+ return error("short SHA1 %.*s is ambiguous.", len, hex_pfx);
return status;
}