aboutsummaryrefslogtreecommitdiff
path: root/builtin-apply.c
diff options
context:
space:
mode:
authorPierre Habouzit <madcoder@debian.org>2007-09-27 15:25:55 +0200
committerJunio C Hamano <gitster@pobox.com>2007-09-29 21:26:10 -0700
commit387e7e19d7eb5444be8da8e99ed7491989dc1cbb (patch)
treeb1fcd32479e6d22abc0e2060e70ea7846fa2b273 /builtin-apply.c
parentb315c5c08139c0d3c1e4867a305334e29da01d07 (diff)
downloadgit-387e7e19d7eb5444be8da8e99ed7491989dc1cbb.tar.gz
git-387e7e19d7eb5444be8da8e99ed7491989dc1cbb.tar.xz
strbuf_read_file enhancement, and use it.
* make strbuf_read_file take a size hint (works like strbuf_read) * use it in a couple of places. Signed-off-by: Pierre Habouzit <madcoder@debian.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-apply.c')
-rw-r--r--builtin-apply.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/builtin-apply.c b/builtin-apply.c
index 740623e6c..fec96a8d9 100644
--- a/builtin-apply.c
+++ b/builtin-apply.c
@@ -1425,8 +1425,6 @@ static void show_stats(struct patch *patch)
static int read_old_data(struct stat *st, const char *path, struct strbuf *buf)
{
- int fd;
-
switch (st->st_mode & S_IFMT) {
case S_IFLNK:
strbuf_grow(buf, st->st_size);
@@ -1435,14 +1433,8 @@ static int read_old_data(struct stat *st, const char *path, struct strbuf *buf)
strbuf_setlen(buf, st->st_size);
return 0;
case S_IFREG:
- fd = open(path, O_RDONLY);
- if (fd < 0)
- return error("unable to open %s", path);
- if (strbuf_read(buf, fd, st->st_size) < 0) {
- close(fd);
- return -1;
- }
- close(fd);
+ if (strbuf_read_file(buf, path, st->st_size) != st->st_size)
+ return error("unable to open or read %s", path);
convert_to_git(path, buf->buf, buf->len, buf);
return 0;
default: