diff options
author | brian m. carlson <sandals@crustytoothpaste.net> | 2018-10-15 00:01:52 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-10-15 12:53:15 +0900 |
commit | 7b5e614e2acc2f4e6b2f1ea4eb93dd430d350abd (patch) | |
tree | 1240376b1f90c1d3e51956eeb24ab0ef6e5fa3dd | |
parent | builtin/mktree: remove hard-coded constant (diff) | |
download | tgif-7b5e614e2acc2f4e6b2f1ea4eb93dd430d350abd.tar.xz |
builtin/fetch-pack: remove constants with parse_oid_hex
Instead of using GIT_SHA1_HEXSZ, use parse_oid_hex to compute a pointer
and use that in comparisons. This is both simpler to read and works
independent of the hash length. Update references to SHA-1 in the same
function to refer to object IDs instead.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin/fetch-pack.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c index 1a1bc63566..63e69a5801 100644 --- a/builtin/fetch-pack.c +++ b/builtin/fetch-pack.c @@ -16,13 +16,14 @@ static void add_sought_entry(struct ref ***sought, int *nr, int *alloc, { struct ref *ref; struct object_id oid; + const char *p; - if (!get_oid_hex(name, &oid)) { - if (name[GIT_SHA1_HEXSZ] == ' ') { - /* <sha1> <ref>, find refname */ - name += GIT_SHA1_HEXSZ + 1; - } else if (name[GIT_SHA1_HEXSZ] == '\0') { - ; /* <sha1>, leave sha1 as name */ + if (!parse_oid_hex(name, &oid, &p)) { + if (*p == ' ') { + /* <oid> <ref>, find refname */ + name = p + 1; + } else if (*p == '\0') { + ; /* <oid>, leave oid as name */ } else { /* <ref>, clear cruft from oid */ oidclr(&oid); |