diff options
Diffstat (limited to 'userspace/fsh.c')
| -rw-r--r-- | userspace/fsh.c | 12 |
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; |
