From 0bb140f9911851e9712dba311925f9c9ab521fd2 Mon Sep 17 00:00:00 2001
From: Peter Stephenson
Date: Sun, 28 Jul 2024 20:33:07 +0100
Subject: 52999: import OLDPWD from environment if set
---
ChangeLog | 5 +++++
Src/init.c | 6 +++++-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
index 5c6270d05..22ccce77a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2024-07-28 Peter Stephenson
+
+ * 52999: Franklin Yu (adapted): Src/init.c: Import OLDPWD from
+ the environment if set.
+
2024-07-04 Jun-ichi Takimoto
* 52985: Src/exec.c: avoid adding original param to restorelist
diff --git a/Src/init.c b/Src/init.c
index ec21521b1..0aecb5db9 100644
--- a/Src/init.c
+++ b/Src/init.c
@@ -1245,7 +1245,11 @@ setupvals(char *cmd, char *runscript, char *zsh_name)
pwd = metafy(zgetcwd(), -1, META_DUP);
}
- oldpwd = ztrdup(pwd); /* initialize `OLDPWD' = `PWD' */
+ oldpwd = zgetenv("OLDPWD");
+ if (oldpwd == NULL)
+ oldpwd = ztrdup(pwd); /* initialize `OLDPWD' = `PWD' */
+ else
+ oldpwd = ztrdup(oldpwd);
inittyptab(); /* initialize the ztypes table */
initlextabs(); /* initialize lexing tables */
--
cgit v1.2.3