summaryrefslogtreecommitdiff
path: root/userspace/fsh.c
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2018-10-13 00:57:28 +0200
committerMiguel <m.i@gmx.at>2018-10-13 00:57:28 +0200
commit279f3336a8f6b31ca38bdd272c73aebd68fa88fe (patch)
treeb4bb4a21a4acf38eb810768ac6c1b099e2f18a58 /userspace/fsh.c
parentb461c3558b2fe765a4bac512638b0acf5185b4bb (diff)
ncurses arrow keys working etc
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;