Commit Diff


commit - ca6a2d95acc005ef9a50e3f962ef0bbaa7876751
commit + c7c29d26b7f9bcd735779859211bf525f007078e
blob - ee30e5d0bed244149a568cf4c238d5621cc413c8
blob + ba69be6e22da542cd8c57394889b86312dcbd244
--- src/cmd/sam/shell.c
+++ src/cmd/sam/shell.c
@@ -8,6 +8,14 @@ String	plan9cmd;	/* null terminated */
 Buffer	plan9buf;
 void	checkerrs(void);
 
+void
+setname(File *f)
+{
+	char buf[1024];
+	snprint(buf, sizeof buf, "%.*S", f->name.n, f->name.s);
+	putenv("samfile", buf);
+}
+
 int
 plan9(File *f, int type, String *s, int nest)
 {
@@ -31,6 +39,7 @@ plan9(File *f, int type, String *s, int nest)
 	if(type=='|')
 		snarf(f, addr.r.p1, addr.r.p2, &plan9buf, 1);
 	if((pid=fork()) == 0){
+		setname(f);
 		if(downloaded){	/* also put nasty fd's into errfile */
 			fd = create(errfile, 1, 0666L);
 			if(fd < 0)