#!/bin/sh ###################################################### # # Test that whatnow's "ls" copes with directory names # which have spaces and quotes in them (see bug #23319) # ###################################################### set -e if test -z "${MH_OBJ_DIR}"; then srcdir=`dirname "$0"`/../.. MH_OBJ_DIR=`cd "$srcdir" && pwd`; export MH_OBJ_DIR fi . "$MH_OBJ_DIR/test/common.sh" setup_test SPDIR="$MH_TEST_DIR/foo's bar" rm -rf "$SPDIR" mkdir "$SPDIR" cd "$SPDIR" touch baz boz expectederr=$MH_TEST_DIR/$$.expectederr actualerr=$MH_TEST_DIR/$$.actualerr expected=$MH_TEST_DIR/$$.expected actual=$MH_TEST_DIR/$$.actual # # Handle different output depending on readline version # set +e whatnowtest=`echo cd | TERM=dumb whatnow -prompt ''` set -e case "${whatnowtest}" in cd) cat > "$expected" < "$expected" < $expectederr < "$actualerr" | \ sort > "$actual" check "$expectederr" "$actualerr" 'keep first' check "$expected" "$actual" 'keep first' # Check with SHELL unset. system () on Linux (glibc) seems to # always use /bin/sh, so this test won't reveal anything with it. unset SHELL echo 'ls' | TERM=dumb whatnow -noedit -prompt '' 2> "$actualerr" | \ sort > "$actual" check "$expectederr" "$actualerr" check "$expected" "$actual" # On some platforms, need to be out of $SPDIR in order to remove it. cd "$MH_TEST_DIR" test ${failed:-0} -eq 0 && rm -r "$SPDIR" exit $failed