Commit Diff


commit - 93f2ae0d92e0ed88fef8265194024606b78d58c6
commit + 2b9172c7d4f8f3f773946e1aab4f9376f50b4cf7
blob - 8edfdddc232ff0611e5becba212f452d76f0da4d
blob + fcfee03b2f42f2188d9ee618eb0f764027e9d1bd
--- src/cmd/mk/archive.c
+++ src/cmd/mk/archive.c
@@ -23,6 +23,25 @@ static void atimes(char *);
 static char *split(char*, char**);
 
 long
+readn(int f, void *av, long n)
+{
+	char *a;
+	long m, t;
+
+	a = av;
+	t = 0;
+	while(t < n){
+		m = read(f, a+t, n-t);
+		if(m <= 0){
+			if(t == 0)
+				return m;
+			break;
+		}
+		t += m;
+	}
+	return t;
+}
+long
 atimeof(int force, char *name)
 {
 	Symtab *sym;
blob - f520b066c2e9c2be32ca0ac0f7f0fe44c44e5642
blob + 03a9d058d3eaa9f2055a10476521a55137916d8b
--- src/cmd/mk/sys.h
+++ src/cmd/mk/sys.h
@@ -2,3 +2,4 @@
 #include <libc.h>
 #include <bio.h>
 #include <regexp.h>
+