From 9f56916a97d5af44789eba5f567e44a49dbec53c Mon Sep 17 00:00:00 2001 From: jilles Date: Thu, 31 Dec 2009 17:44:24 +0000 Subject: sh: Use PATH= assignment in type. Example: PATH=/var/empty; PATH=/bin type ls --- bin/sh/exec.c | 2 +- tools/regression/bin/sh/builtins/type2.0 | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 tools/regression/bin/sh/builtins/type2.0 diff --git a/bin/sh/exec.c b/bin/sh/exec.c index 02cf91e..c9f9a26 100644 --- a/bin/sh/exec.c +++ b/bin/sh/exec.c @@ -838,5 +838,5 @@ typecmd_impl(int argc, char **argv, int cmd, const char *path) int typecmd(int argc, char **argv) { - return typecmd_impl(argc, argv, TYPECMD_TYPE, pathval()); + return typecmd_impl(argc, argv, TYPECMD_TYPE, bltinlookup("PATH", 1)); } diff --git a/tools/regression/bin/sh/builtins/type2.0 b/tools/regression/bin/sh/builtins/type2.0 new file mode 100644 index 0000000..fe44d95 --- /dev/null +++ b/tools/regression/bin/sh/builtins/type2.0 @@ -0,0 +1,26 @@ +# $FreeBSD$ + +failures=0 + +check() { + if ! eval "$*"; then + echo "Failed: $*" + : $((failures += 1)) + fi +} + +check 'PATH=/libexec type ld-elf.so.1 >/dev/null' +check '! PATH=/libexec type ls 2>/dev/null' + +PATH=/libexec:$PATH + +check 'type ld-elf.so.1 >/dev/null' + +PATH=/libexec + +check 'type ld-elf.so.1 >/dev/null' +check '! type ls 2>/dev/null' +check 'PATH=/bin type ls >/dev/null' +check '! PATH=/bin type ld-elf.so.1 2>/dev/null' + +exit $((failures > 0)) -- cgit v1.1