int bCached = 1;\r
t_sysFInfo info;\r
\r
- //Command_Clear(0, NULL);\r
+ Command_Clear(0, NULL);\r
\r
{\r
char *tmp = getenv("CWD");\r
if(saArgs[0]) free(saArgs);\r
if(!bCached) free(sCommandStr);\r
bCached = 0;\r
- write(_stdout, 1, "\n");\r
write(_stdout, strlen(gsCurrentDirectory), gsCurrentDirectory);\r
write(_stdout, 3, "$ ");\r
\r
}\r
// Load new executable\r
pid = clone(CLONE_VM, 0);\r
+ printf("pid = %i\n", pid);\r
if(pid == 0) execve(gsTmpBuffer, &saArgs[1], envp);\r
if(pid <= 0) {\r
Print("Unablt to create process: `");Print(gsTmpBuffer);Print("'\n"); // Error Message
\r
// Preset Variables\r
ret = malloc( space+1 );\r
+ if(!ret) return NULL;\r
len = 0;\r
pos = 0;\r
\r
do {\r
read(_stdin, 1, &ch); // Read Character from stdin (read is a blocking call)\r
// Ignore control characters\r
- if(ch < 0) continue;\r
+ if(ch == '\x1B') {\r
+ read(_stdin, 1, &ch); // Read control character\r
+ switch(ch)\r
+ {\r
+ case 'D': if(pos) pos--; break;\r
+ case 'C': if(pos<len) pos++; break;\r
+ case '[':\r
+ read(_stdin, 1, &ch); // Read control character\r
+ switch(ch)\r
+ {\r
+ case 'D': if(pos) pos--; break;\r
+ case 'C': if(pos<len) pos++; break;\r
+ }\r
+ }\r
+ continue;\r
+ }\r
// Backspace\r
if(ch == '\b') {\r
if(len <= 0) continue; // Protect against underflows\r
SYSCALL3 finfo, SYS_FINFO ; int, void*, int
SYSCALL2 readdir, SYS_READDIR ; int, char*
SYSCALL2 _SysGetACL, SYS_GETACL ; int, void*
+SYSCALL1 chdir, SYS_CHDIR ; char*