summary refs log tree commit diff
path: root/scripts/cross-test-ssh.sh
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@linux-m68k.org>2012-11-02 18:33:33 +0100
committerAndreas Schwab <schwab@linux-m68k.org>2012-11-03 08:06:12 +0100
commita542b3894da05c9377beadfe13d68bd7387ebcc9 (patch)
tree8003456b7e6ef87ae4a418c3e30f172f72195a7e /scripts/cross-test-ssh.sh
parentf62c8abcfbf0d2e7f0a6c6c1dde53158e6fc4e59 (diff)
downloadglibc-a542b3894da05c9377beadfe13d68bd7387ebcc9.tar.gz
glibc-a542b3894da05c9377beadfe13d68bd7387ebcc9.tar.xz
glibc-a542b3894da05c9377beadfe13d68bd7387ebcc9.zip
Make cross-test-ssh.sh compatible with a remote POSIX sh
Diffstat (limited to 'scripts/cross-test-ssh.sh')
-rwxr-xr-xscripts/cross-test-ssh.sh26
1 files changed, 7 insertions, 19 deletions
diff --git a/scripts/cross-test-ssh.sh b/scripts/cross-test-ssh.sh
index f09c98ec11..51b0da924a 100755
--- a/scripts/cross-test-ssh.sh
+++ b/scripts/cross-test-ssh.sh
@@ -108,37 +108,25 @@ bourne_quote ()
   done
 }
 
-# Remove unnecessary newlines from a Bourne shell command sequence.
-remove_newlines ()
-{
-  sed -n \
-    -e '1h' \
-    -e '2,$H' \
-    -e '${g
-          s/\([^\]\)\n/\1; /g
-          p
-         }'
-}
-
 # Unset all variables from the blacklist.  Then echo all exported
-# variables.  The 'export -p' command adds backslashes for environment
-# variables which contain newlines.
+# variables.
 blacklist_exports ()
 {
-  (unset ${env_blacklist}; export -p) | remove_newlines
+  (unset ${env_blacklist}; export -p) | sed 's/^declare -x/export/'
 }
 
-# Produce properly quoted Bourne shell arguments for 'env' to carry
-# over the current environment, less blacklisted variables.
+# Produce commands to carry over the current environment, less blacklisted
+# variables.
 exports="$(blacklist_exports)"
-exports="${exports:+${exports}; }"
 
 # Transform the current argument list into a properly quoted Bourne shell
 # command string.
 command="$(bourne_quote "$@")"
 
 # Add commands to set environment variables and the current directory.
-command="${exports}cd $PWD; ${command}"
+command="${exports}
+cd $(bourne_quote "$PWD")
+${command}"
 
 # HOST's sshd simply concatenates its arguments with spaces and
 # passes them to some shell.  We want to force the use of /bin/sh,