Use strbuf API in apply, blame, commit-tree and diff

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Pierre Habouzit
2007-09-06 13:20:09 +02:00
committed by Junio C Hamano
parent d52bc66152
commit af6eb82262
4 changed files with 43 additions and 107 deletions

25
diff.c
View File

@ -9,6 +9,7 @@
#include "xdiff-interface.h"
#include "color.h"
#include "attr.h"
#include "strbuf.h"
#ifdef NO_FAST_WORKING_DIRECTORY
#define FAST_WORKING_DIRECTORY 0
@ -1545,26 +1546,16 @@ static int reuse_worktree_file(const char *name, const unsigned char *sha1, int
static int populate_from_stdin(struct diff_filespec *s)
{
#define INCREMENT 1024
char *buf;
unsigned long size;
ssize_t got;
struct strbuf buf;
size = 0;
buf = NULL;
while (1) {
buf = xrealloc(buf, size + INCREMENT);
got = xread(0, buf + size, INCREMENT);
if (!got)
break; /* EOF */
if (got < 0)
return error("error while reading from stdin %s",
strbuf_init(&buf);
if (strbuf_read(&buf, 0) < 0)
return error("error while reading from stdin %s",
strerror(errno));
size += got;
}
s->should_munmap = 0;
s->data = buf;
s->size = size;
s->size = buf.len;
s->data = strbuf_detach(&buf);
s->should_free = 1;
return 0;
}