builtin/difftool: use parse_oid_hex

Instead of using get_oid_hex and adding constants to the result, use parse_oid_hex to make this code independent of the hash size. Additionally, correct a typo that would cause us to print one too few characters on error, since we will already have incremented the pointer to point to the beginning of the object ID before we get to printing the error message. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

brian m. carlson committed Feb 19, 2019 at 00:05 UTC ebe4df59c45ea95ce51fd8fede2a08d9009e990f
1 file changed +4 -6
builtin/difftool.c
+4 -6
@@ -65,14 +65,12 @@ static int parse_index_info(char *p, int *mode1, int *mode2,
65 *mode2 = (int)strtol(p + 1, &p, 8);
66 if (*p != ' ')
67 return error("expected ' ', got '%c'", *p);
68 - if (get_oid_hex(++p, oid1))
69 - return error("expected object ID, got '%s'", p + 1);
70 - p += GIT_SHA1_HEXSZ;
68 + if (parse_oid_hex(++p, oid1, (const char **)&p))
69 + return error("expected object ID, got '%s'", p);
70 if (*p != ' ')
71 return error("expected ' ', got '%c'", *p);
73 - if (get_oid_hex(++p, oid2))
74 - return error("expected object ID, got '%s'", p + 1);
75 - p += GIT_SHA1_HEXSZ;
72 + if (parse_oid_hex(++p, oid2, (const char **)&p))
73 + return error("expected object ID, got '%s'", p);
74 if (*p != ' ')
75 return error("expected ' ', got '%c'", *p);
76 *status = *++p;