Avoid segfault when ticky file argument is stderr
[ghc-hetmet.git] / darcs-all
index 7bd96a4..65d6612 100644 (file)
--- a/darcs-all
+++ b/darcs-all
@@ -8,9 +8,11 @@ top_dirs="nofib testsuite"
 # based on where this GHC repo came from.
 defaultrepo=`cat _darcs/prefs/defaultrepo`
 case $defaultrepo in
-  http://* | *@*:*)
+  # HTTP or SSH:
+  http://* | *:*)
     defaultrepo_base="`echo $defaultrepo | sed 's!/ghc$!!'`"
     defaultrepo_lib="$defaultrepo_base"/packages;;
+  # Local filesystem (assumes a checked-out tree):
   /*)
     defaultrepo_base="$defaultrepo"
     defaultrepo_lib="$defaultrepo"/libraries;;
@@ -21,26 +23,26 @@ quiet=NO
 message()
 {
   if [ "$quiet" = "NO" ]; then
-     echo $*
+     echo "$@"
   fi
 }
 
 darcsall()
 {
-  message "== running darcs $* at the top level"
-  darcs $*
+  message "== running darcs $@ at the top level"
+  darcs "$@"
   for dir in $top_dirs; do
     if test -d $dir -a -d $dir/_darcs; then
-       message "== running darcs $* in $dir"
-       darcs $* --repodir $dir
+       message "== running darcs $@ in $dir"
+       darcs "$@" --repodir $dir
     else
        message "== $dir not present or not a repository; skipping"
     fi
   done
   for pkg in `cat libraries/core-packages libraries/extra-packages`; do
     if test -d libraries/$pkg; then
-       message "== running darcs $* in libraries/$pkg"
-       darcs $* --repodir libraries/$pkg
+       message "== running darcs $@ in libraries/$pkg"
+       darcs "$@" --repodir libraries/$pkg
     else
        echo "warning: $pkg doesn't seem to exist, use 'darcs-all get' to get it"
     fi
@@ -62,8 +64,8 @@ darcsget()
       echo "warning: nofib already present; omitting"
     else
       repo="$defaultrepo_base"/nofib
-      message "== running darcs get $additional_flag $* $repo"
-      darcs get $additional_flag $* $repo
+      message "== running darcs get $additional_flag $@ $repo"
+      darcs get $additional_flag "$@" $repo
     fi
   fi
 
@@ -72,8 +74,8 @@ darcsget()
       echo "warning: testsuite already present; omitting"
     else
       repo="$defaultrepo_base"/testsuite
-      message "== running darcs get $additional_flag $* $repo"
-      darcs get $additional_flag $* $repo
+      message "== running darcs get $additional_flag $@ $repo"
+      darcs get $additional_flag "$@" $repo
     fi
   fi
 
@@ -90,8 +92,8 @@ darcsget()
        echo "warning: $pkg already present; omitting"
     else
        repo=$defaultrepo_lib/$pkg
-       message "== running darcs get $additional_flag $* $repo"
-       darcs get $additional_flag $* $repo
+       message "== running darcs get $additional_flag $@ $repo"
+       darcs get $additional_flag "$@" $repo
     fi
   done
 }
@@ -126,8 +128,8 @@ do
 done
 
 case $1 in
-  get)  shift; darcsget $*;;
+  get)  shift; darcsget "$@";;
   # Hack around whatsnew failing if there are no changes
-  w|wh|wha|what|whats|whatsn|whatsne|whatsnew) set +e; darcsall $*;;
-  *) darcsall $*;;
+  w|wh|wha|what|whats|whatsn|whatsne|whatsnew) set +e; darcsall "$@";;
+  *) darcsall "$@";;
 esac