浏览代码

Shell: Set up the PWD environment variable early

This ensures that PWD is set when running "sh -c something"
Andreas Kling 5 年之前
父节点
当前提交
4a271430f8
共有 1 个文件被更改,包括 7 次插入7 次删除
  1. 7 7
      Shell/main.cpp

+ 7 - 7
Shell/main.cpp

@@ -981,6 +981,13 @@ int main(int argc, char** argv)
     if (rc < 0)
     if (rc < 0)
         perror("ttyname_r");
         perror("ttyname_r");
 
 
+    {
+        auto* cwd = getcwd(nullptr, 0);
+        g.cwd = cwd;
+        setenv("PWD", cwd, 1);
+        free(cwd);
+    }
+
     {
     {
         auto* pw = getpwuid(getuid());
         auto* pw = getpwuid(getuid());
         if (pw) {
         if (pw) {
@@ -1012,13 +1019,6 @@ int main(int argc, char** argv)
         return 0;
         return 0;
     }
     }
 
 
-    {
-        auto* cwd = getcwd(nullptr, 0);
-        g.cwd = cwd;
-        setenv("PWD", cwd, 1);
-        free(cwd);
-    }
-
     g.directory_stack.append(g.cwd);
     g.directory_stack.append(g.cwd);
 
 
     load_history();
     load_history();