diff --git a/bundle.c b/bundle.c
index 08020bc3a258e055a8f5f6974217cf482edc3ee3..b8acf3c18b600f1f413f95744ad281e3879b3f6e 100644 (file)
--- a/bundle.c
+++ b/bundle.c
while (1) {
char ch;
ssize_t len = xread(fd, &ch, 1);
- if (len < 0)
- return -1;
+ if (len <= 0)
+ return len;
strbuf_addch(sb, ch);
if (ch == '\n')
break;
continue;
if (dwim_ref(e->name, strlen(e->name), sha1, &ref) != 1)
continue;
- if (!resolve_ref(e->name, sha1, 1, &flag))
+ if (read_ref_full(e->name, sha1, 1, &flag))
flag = 0;
display_ref = (flag & REF_ISSYMREF) ? e->name : ref;