Browse Source

init-db::copy_file() - use copy_fd()

Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Junio C Hamano 19 years ago
parent
commit
32276c8059
  1. 27
      init-db.c

27
init-db.c

@ -21,7 +21,7 @@ static void safe_create_dir(const char *dir) @@ -21,7 +21,7 @@ static void safe_create_dir(const char *dir)

static int copy_file(const char *dst, const char *src, int mode)
{
int fdi, fdo;
int fdi, fdo, status;

mode = (mode & 0111) ? 0777 : 0666;
if ((fdi = open(src, O_RDONLY)) < 0)
@ -30,30 +30,9 @@ static int copy_file(const char *dst, const char *src, int mode) @@ -30,30 +30,9 @@ static int copy_file(const char *dst, const char *src, int mode)
close(fdi);
return fdo;
}
while (1) {
char buf[BUFSIZ];
ssize_t leni, leno, ofs;
leni = read(fdi, buf, sizeof(buf));
if (leni < 0) {
error_return:
close(fdo);
close(fdi);
return -1;
}
if (!leni)
break;
ofs = 0;
do {
leno = write(fdo, buf+ofs, leni);
if (leno < 0)
goto error_return;
leni -= leno;
ofs += leno;
} while (0 < leni);
}
status = copy_fd(fdi, fdo);
close(fdo);
close(fdi);
return 0;
return status;
}

static void copy_templates_1(char *path, int baselen,

Loading…
Cancel
Save