summaryrefslogtreecommitdiffstats
path: root/envsetup.sh
diff options
context:
space:
mode:
authorKhalid Zubair <kzubair@cyngn.com>2016-02-11 14:34:12 -0800
committerKhalid Zubair <kzubair@cyngn.com>2016-02-29 16:14:05 -0800
commit521aa1e2e6d1ef35e0051d4cc76f4b2c91577212 (patch)
tree48e5cb823fa5218ca2bb475cb9a4ab1872636f81 /envsetup.sh
parentba297413c51feab9fa43be5af56e12b79891f5fb (diff)
downloadbuild-521aa1e2e6d1ef35e0051d4cc76f4b2c91577212.zip
build-521aa1e2e6d1ef35e0051d4cc76f4b2c91577212.tar.gz
build-521aa1e2e6d1ef35e0051d4cc76f4b2c91577212.tar.bz2
envesetup: mmm/mmma: fix for zsh
Fix broken argument handling due to differnt word-splitting behavior in zsh [1]. Zsh arrays should be explicitly defined. - [1] http://zsh.sourceforge.net/FAQ/zshfaq03.html Change-Id: Ic299c1952384001e374c64caebbb23e9792fddf2
Diffstat (limited to 'envsetup.sh')
-rw-r--r--envsetup.sh20
1 files changed, 16 insertions, 4 deletions
diff --git a/envsetup.sh b/envsetup.sh
index eeb6534..3384211 100644
--- a/envsetup.sh
+++ b/envsetup.sh
@@ -902,8 +902,15 @@ function mmm()
local ARGS=
local DIR TO_CHOP
local GET_INSTALL_PATH=
- local DASH_ARGS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^-.*$/')
- local DIRS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^[^-].*$/')
+
+ if [ "$(__detect_shell)" == "zsh" ]; then
+ set -lA DASH_ARGS $(echo "$@" | awk -v RS=" " -v ORS=" " '/^-.*$/')
+ set -lA DIRS $(echo "$@" | awk -v RS=" " -v ORS=" " '/^[^-].*$/')
+ else
+ local DASH_ARGS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^-.*$/')
+ local DIRS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^[^-].*$/')
+ fi
+
for DIR in $DIRS ; do
MODULES=`echo $DIR | sed -n -e 's/.*:\(.*$\)/\1/p' | sed 's/,/ /'`
if [ "$MODULES" = "" ]; then
@@ -966,8 +973,13 @@ function mmma()
local T=$(gettop)
local DRV=$(getdriver $T)
if [ "$T" ]; then
- local DASH_ARGS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^-.*$/')
- local DIRS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^[^-].*$/')
+ if [ "$(__detect_shell)" == "zsh" ]; then
+ set -lA DASH_ARGS $(echo "$@" | awk -v RS=" " -v ORS=" " '/^-.*$/')
+ set -lA DIRS $(echo "$@" | awk -v RS=" " -v ORS=" " '/^[^-].*$/')
+ else
+ local DASH_ARGS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^-.*$/')
+ local DIRS=$(echo "$@" | awk -v RS=" " -v ORS=" " '/^[^-].*$/')
+ fi
local MY_PWD=`PWD= /bin/pwd`
if [ "$MY_PWD" = "$T" ]; then
MY_PWD=