Commits

Junio C Hamano  committed 32276c8

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

Signed-off-by: Junio C Hamano <junkio@cox.net>

  • Participants
  • Parent commits e6c64fc

Comments (0)

Files changed (1)

 
 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)
 		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,