summary refs log tree commit diff
path: root/progs/shel
diff options
context:
space:
mode:
Diffstat (limited to 'progs/shel')
-rw-r--r--progs/shel/shel.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/progs/shel/shel.c b/progs/shel/shel.c
index f4292b6..323a06d 100644
--- a/progs/shel/shel.c
+++ b/progs/shel/shel.c
@@ -86,6 +86,9 @@ int main() {
     setenv("PATH", "/bin", 0);
     setenv("TERM", "xterm-256color", 1);
     setenv("TERMINFO", "/etc/smolsh", 1);
+    setenv("HOME", "/root", 1);
+
+    strcpy(path, getenv("HOME"));
 
     while (!false) {
         memset(input, 0, sizeof(input));
@@ -162,7 +165,9 @@ int main() {
                     }
                 }
                 if (found) {
-                    execve(newPath, argv, 0);
+                    extern char** environ;
+                    setenv("CWD", path, 1);
+                    execve(newPath, argv, environ);
                 }
             }
         } else {