From 70475d08c0c05176f9ba8bb36d71dd8b80a40f84 Mon Sep 17 00:00:00 2001
From: Todd Gamblin <tgamblin@llnl.gov>
Date: Mon, 29 Sep 2014 22:39:36 -0700
Subject: [PATCH] Bugfix for spack cd -h

---
 share/spack/csh/spack.csh | 11 ++++++++++-
 share/spack/setup-env.sh  |  7 ++++++-
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/share/spack/csh/spack.csh b/share/spack/csh/spack.csh
index 30c4ec1361..b21da23836 100644
--- a/share/spack/csh/spack.csh
+++ b/share/spack/csh/spack.csh
@@ -46,8 +46,17 @@ set _sp_spec=""
 set _sp_modtype = ""
 switch ($_sp_subcommand)
 case cd:
+    shift _sp_args  # get rid of 'cd'
+
+    set _sp_arg=""
+    [ $#_sp_args -gt 0 ] && set _sp_arg = ($_sp_args[1])
     shift _sp_args
-    cd `spack location $_sp_args`
+
+    if ( "$_sp_arg" == "-h" ) then
+        \spack cd -h
+    else
+        cd `\spack location $_sp_arg $_sp_args`
+    endif
     breaksw
 case use:
 case unuse:
diff --git a/share/spack/setup-env.sh b/share/spack/setup-env.sh
index 6f56d4739b..91b1dc4630 100755
--- a/share/spack/setup-env.sh
+++ b/share/spack/setup-env.sh
@@ -76,7 +76,12 @@ function spack {
     # command.
     case $_sp_subcommand in
         "cd")
-            cd $(spack location "$@")
+            _sp_arg="$1"; shift
+            if [ "$_sp_arg" = "-h" ]; then
+                command spack cd -h
+            else
+                cd $(spack location $_sp_arg "$@")
+            fi
             return
             ;;
         "use"|"unuse"|"load"|"unload")
-- 
GitLab