aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/sam
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2006-08-24 18:37:55 +0000
committerrsc <devnull@localhost>2006-08-24 18:37:55 +0000
commitc7c29d26b7f9bcd735779859211bf525f007078e (patch)
treec9b792051cca6a72af962387cce92dbd5cae8b1e /src/cmd/sam
parentca6a2d95acc005ef9a50e3f962ef0bbaa7876751 (diff)
downloadplan9port-c7c29d26b7f9bcd735779859211bf525f007078e.tar.gz
plan9port-c7c29d26b7f9bcd735779859211bf525f007078e.tar.bz2
plan9port-c7c29d26b7f9bcd735779859211bf525f007078e.zip
set $samfile during external commands
Diffstat (limited to 'src/cmd/sam')
-rw-r--r--src/cmd/sam/shell.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/cmd/sam/shell.c b/src/cmd/sam/shell.c
index ee30e5d0..ba69be6e 100644
--- a/src/cmd/sam/shell.c
+++ b/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)