summaryrefslogtreecommitdiff
path: root/mktree.c
diff options
context:
space:
mode:
Diffstat (limited to 'mktree.c')
-rw-r--r--mktree.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/mktree.c b/mktree.c
index 56205d1e00..d86dde89d6 100644
--- a/mktree.c
+++ b/mktree.c
@@ -95,7 +95,7 @@ int main(int ac, char **av)
int len;
char *ptr, *ntr;
unsigned mode;
- char type[20];
+ enum object_type type;
char *path;
read_line(&sb, stdin, line_termination);
@@ -115,11 +115,12 @@ int main(int ac, char **av)
ntr[41] != '\t' ||
get_sha1_hex(ntr + 1, sha1))
die("input format error: %s", sb.buf);
- if (sha1_object_info(sha1, type, NULL))
+ type = sha1_object_info(sha1, NULL);
+ if (type < 0)
die("object %s unavailable", sha1_to_hex(sha1));
*ntr++ = 0; /* now at the beginning of SHA1 */
- if (strcmp(ptr, type))
- die("object type %s mismatch (%s)", ptr, type);
+ if (type != type_from_string(ptr))
+ die("object type %s mismatch (%s)", ptr, typename(type));
ntr += 41; /* at the beginning of name */
if (line_termination && ntr[0] == '"')
path = unquote_c_style(ntr, NULL);