]> Trent Huber's Code - thus.git/commitdiff
pwd builtin works when current directory changes name
authorTrent Huber <trentmhuber@gmail.com>
Mon, 24 Nov 2025 05:14:27 +0000 (00:14 -0500)
committerTrent Huber <trentmhuber@gmail.com>
Mon, 24 Nov 2025 05:14:27 +0000 (00:14 -0500)
src/builtins/pwd.c

index 6c5b9db871cad3cb99fe5dfbd698a9a8ee1f13fe..21953827ab9928515e61496de4cef8bc9c60a198 100644 (file)
@@ -13,19 +13,17 @@ int pwd(char **args, size_t numargs) {
 
    if (numargs != 1) return usage(args[0], NULL);
 
-   if (!(cwd = getenv("PWD"))) {
-       if (!(cwd = getcwd(buffer, PATH_MAX))) {
-           note("Unable to get current working directory");
-           return EXIT_FAILURE;
-       }
-       if (buffer[(l = strlen(buffer)) - 1] != '/') {
-           buffer[l++] = '/';
-           buffer[l] = '\0';
-       }
-       if (setenv("PWD", buffer, 1) == -1) {
-           note("Unable to set $PWD$");
-           return EXIT_FAILURE;
-       }
+   if (!(cwd = getcwd(buffer, PATH_MAX))) {
+       note("Unable to get current working directory");
+       return EXIT_FAILURE;
+   }
+   if (buffer[(l = strlen(buffer)) - 1] != '/') {
+       buffer[l++] = '/';
+       buffer[l] = '\0';
+   }
+   if (setenv("PWD", buffer, 1) == -1) {
+       note("Unable to set $PWD$");
+       return EXIT_FAILURE;
    }
 
    puts(cwd);