tr2post and aux/download; download is a shell script in $PLAN9/bin.
diff --git a/src/cmd/postscript/tr2post/tr2post.c b/src/cmd/postscript/tr2post/tr2post.c
index acfe604..5a22ac7 100644
--- a/src/cmd/postscript/tr2post/tr2post.c
+++ b/src/cmd/postscript/tr2post/tr2post.c
@@ -23,6 +23,10 @@
 Biobuf *Bstdin, *Bstdout, *Bstderr;
 int debug = 0;
 
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 255
+#endif
+
 char tmpfilename[MAXPATHLEN+1];
 char copybuf[BUFSIZ];
 
@@ -41,20 +45,20 @@
 	Bprint(Bstdout, "%s %s\n", PAGES, ATEND);
 	Bprint(Bstdout, "%s", ENDCOMMENTS);
 
-	if (cat(DPOST)) {
+	if (cat(unsharp(DPOST))) {
 		Bprint(Bstderr, "can't read %s\n", DPOST);
 		exits("dpost prologue");
 	}
 
 	if (drawflag) {
-		if (cat(DRAW)) {
+		if (cat(unsharp(DRAW))) {
 			Bprint(Bstderr, "can't read %s\n", DRAW);
 			exits("draw prologue");
 		}
 	}
 
 	if (DOROUND)
-		cat(ROUNDPAGE);
+		cat(unsharp(ROUNDPAGE));
 
 	Bprint(Bstdout, "%s", ENDPROLOG);
 	Bprint(Bstdout, "%s", BEGINSETUP);
@@ -70,19 +74,19 @@
 	if (pointsize != 10) Bprint(Bstdout, "/pointsize %d def\n", pointsize);
 	if (xoffset != .25) Bprint(Bstdout, "/xoffset %g def\n", xoffset);
 	if (yoffset != .25) Bprint(Bstdout, "/yoffset %g def\n", yoffset);
-	cat(ENCODINGDIR"/Latin1.enc");
+	cat(unsharp(ENCODINGDIR"/Latin1.enc"));
 	if (passthrough != 0) Bprint(Bstdout, "%s\n", passthrough);
 
 	Bprint(Bstdout, "setup\n");
 	if (formsperpage > 1) {
-		cat(FORMFILE);
+		cat(unsharp(FORMFILE));
 		Bprint(Bstdout, "%d setupforms \n", formsperpage);
 	}
 /* output Build character info from charlib if necessary. */
 
 	for (i=0; i<build_char_cnt; i++) {
 		sprint(charlibname, "%s/%s", CHARLIB, build_char_list[i]->name);
-		if (cat(charlibname))
+		if (cat(unsharp(charlibname)))
 		Bprint(Bstderr, "cannot open %s\n", charlibname);
 	}
 
@@ -94,10 +98,11 @@
 	remove(tmpfilename);
 }
 
+int
 main(int argc, char *argv[]) {
 	Biobuf btmp;
 	Biobuf *binp;
-	Biobufhdr *Binp;
+	Biobuf *Binp;
 	int i, tot, ifd, fd;
 	char *t;
 
@@ -217,4 +222,5 @@
 	finish();
 		
 	exits("");
+	return 0;
 }