From 286029c47836178eb034bb3cff6b884f0a4ed74d Mon Sep 17 00:00:00 2001 From: jilles Date: Sat, 17 Apr 2010 14:35:46 +0000 Subject: sh: On startup of the shell, use PWD from the environment if it is valid. Unset PWD if it is incorrect and no value for it can be determined. This preserves the logical current directory across shell invocations. Example (assuming /home is a symlink): $ cd $ pwd /home/foo $ sh $ pwd /home/foo Formerly the second pwd would show the physical path (symlinks resolved). --- tools/regression/bin/sh/parameters/pwd2.0 | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 tools/regression/bin/sh/parameters/pwd2.0 (limited to 'tools') diff --git a/tools/regression/bin/sh/parameters/pwd2.0 b/tools/regression/bin/sh/parameters/pwd2.0 new file mode 100644 index 0000000..29b5531 --- /dev/null +++ b/tools/regression/bin/sh/parameters/pwd2.0 @@ -0,0 +1,24 @@ +# $FreeBSD$ +# Check that PWD is exported and accepted from the environment. +set -e + +T=$(mktemp -d ${TMPDIR:-/tmp}/sh-test.XXXXXX) +trap 'rm -rf $T' 0 +cd -P $T +TP=$(pwd) +mkdir test1 +ln -s test1 link +cd link +[ "$PWD" = "$TP/link" ] +[ "$(pwd)" = "$TP/link" ] +[ "$(pwd -P)" = "$TP/test1" ] +[ "$(sh -c pwd)" = "$TP/link" ] +[ "$(sh -c pwd\ -P)" = "$TP/test1" ] +cd .. +[ "$(pwd)" = "$TP" ] +cd -P link +[ "$PWD" = "$TP/test1" ] +[ "$(pwd)" = "$TP/test1" ] +[ "$(pwd -P)" = "$TP/test1" ] +[ "$(sh -c pwd)" = "$TP/test1" ] +[ "$(sh -c pwd\ -P)" = "$TP/test1" ] -- cgit v1.1