allow

	sam -r machine filelist...

from presotto
diff --git a/src/cmd/sam/io.c b/src/cmd/sam/io.c
index b7317a9..cdea842 100644
--- a/src/cmd/sam/io.c
+++ b/src/cmd/sam/io.c
@@ -219,10 +219,28 @@
 }
 
 void
-connectto(char *machine)
+connectto(char *machine, char **argv)
 {
 	int p1[2], p2[2];
+	char **av;
+	int ac;
 
+	// count args
+	for(av = argv; *av; av++)
+		;
+	av = malloc(sizeof(char*)*((av-argv) + 5));
+	if(av == nil){
+		dprint("out of memory\n");
+		exits("fork/exec");
+	}
+	ac = 0;
+	av[ac++] = RX;
+	av[ac++] = machine;
+	av[ac++] = rsamname;
+	av[ac++] = "-R";
+	while(*argv)
+		av[ac++] = *argv++;
+	av[ac] = 0;
 	if(pipe(p1)<0 || pipe(p2)<0){
 		dprint("can't pipe\n");
 		exits("pipe");
@@ -237,7 +255,7 @@
 		close(p1[1]);
 		close(p2[0]);
 		close(p2[1]);
-		execlp(RXPATH, RX, machine, rsamname, "-R", (char*)0);
+		execvp(RXPATH, av);
 		dprint("can't exec %s\n", RXPATH);
 		exits("exec");
 
@@ -245,15 +263,16 @@
 		dprint("can't fork\n");
 		exits("fork");
 	}
+	free(av);
 	close(p1[1]);
 	close(p2[0]);
 }
 
 void
-startup(char *machine, int Rflag, char **argv, char **end)
+startup(char *machine, int Rflag, char **argv, char **end, char **files)
 {
 	if(machine)
-		connectto(machine);
+		connectto(machine, files);
 	if(!Rflag)
 		bootterm(machine, argv, end);
 	downloaded = 1;
diff --git a/src/cmd/sam/sam.c b/src/cmd/sam/sam.c
index 5a009bb..803b84e 100644
--- a/src/cmd/sam/sam.c
+++ b/src/cmd/sam/sam.c
@@ -107,7 +107,7 @@
 	if(home == 0)
 		home = "/";
 	if(!dflag)
-		startup(machine, Rflag, arg, argv);
+		startup(machine, Rflag, arg, ap, argv);
 	notify(notifyf);
 	getcurwd();
 	if(argc>1){
diff --git a/src/cmd/sam/sam.h b/src/cmd/sam/sam.h
index 1e92c73..1ab2b49 100644
--- a/src/cmd/sam/sam.h
+++ b/src/cmd/sam/sam.h
@@ -292,7 +292,7 @@
 int	skipbl(void);
 void	snarf(File*, Posn, Posn, Buffer*, int);
 void	sortname(File*);
-void	startup(char*, int, char**, char**);
+void	startup(char*, int, char**, char**, char**);
 void	state(File*, int);
 int	statfd(int, ulong*, uvlong*, long*, long*, long*);
 int	statfile(char*, ulong*, uvlong*, long*, long*, long*);