summary refs log tree commit diff
path: root/progs
diff options
context:
space:
mode:
Diffstat (limited to 'progs')
-rw-r--r--progs/shel/shel.c7
-rw-r--r--progs/testterm/testterm.c20
2 files changed, 26 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 {
diff --git a/progs/testterm/testterm.c b/progs/testterm/testterm.c
new file mode 100644
index 0000000..5a79633
--- /dev/null
+++ b/progs/testterm/testterm.c
@@ -0,0 +1,20 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+int main() {
+    char *term = getenv("TERM");
+    if (term) {
+        printf("TERM=%s\n", term);
+    } else {
+        printf("TERM is not set.\n");
+        return 1;
+    }
+
+    if (system("tput colors") == 0) {
+        printf("Colors are supported\n");
+    } else {
+        printf("Colors are NOT supported\n");
+    }
+
+    return 0;
+}