summaryrefslogtreecommitdiff
path: root/userspace/fsh.c
diff options
context:
space:
mode:
Diffstat (limited to 'userspace/fsh.c')
-rw-r--r--userspace/fsh.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/userspace/fsh.c b/userspace/fsh.c
index 0b3acfd..d74d9d5 100644
--- a/userspace/fsh.c
+++ b/userspace/fsh.c
@@ -21,7 +21,6 @@
#include <string.h>
#include "interface/fs.h"
-#include "newcalls.h"
extern char **environ;
@@ -230,8 +229,12 @@ bool process(char *buf)
else // otherwise treat command as exectutable and send to execve
{
- int pid=_fork();
+ int last=0;
+ for(last=0;token[last+1]!=NULL;last++);
+ bool branch=!strcmp(token[last],"&");
+ if(branch)token[last]=NULL;
+ int pid=_fork();
if(pid==0)
{
@@ -242,10 +245,9 @@ bool process(char *buf)
exit(1);
}
- int last=0;
- for(last=0;token[last+1]!=NULL;last++);
+
//printf("last: %s\n",token[last]);
- if(strcmp(token[last],"&"))_wait(pid);
+ if(!branch)_wait(pid);
}
return true;