#!/bin/sh
######################################################
#
# Test that whatnow's "ls" copes with directory names
# which have spaces 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

cd "$MH_TEST_DIR"
testname="baz's boz"
testname_quoted="baz\'s\ boz"
touch "$testname"
# whatnow's attach stuff needs a draft to work on
cp "$MH_TEST_DIR/Mail/inbox/1" "$MH_TEST_DIR/Mail/draft"

expectederr=$MH_TEST_DIR/$$.expectederr
actualerr=$MH_TEST_DIR/$$.actualerr
expected=$MH_TEST_DIR/$$.expected
actual=$MH_TEST_DIR/$$.actual

rm -f $expected $expectederr $actual $actualerr
touch $expected $expectederr $actual $actualerr

#
# Sigh.  Different readline versions change echoing behavior, so we need
# to deal.
#

set +e
whatnowtest=`echo cd | TERM=dumb whatnow -prompt ''`
set -e

case "${whatnowtest}" in
    cd) cat > "$expected" <<EOF
attach $testname_quoted
alist
$testname
detach $testname_quoted
alist
EOF
    ;;
    "") cat > "$expected" <<EOF
$testname
EOF
    ;;
    *) echo "Unknown response to whatnow readline test"
    echo "Response is: ${whatnowtest}"
    exit 1
    ;;
esac

# whatnow's exit status is always 1 so that is not a failure
set +e
echo "attach $testname_quoted" | \
  TERM=dumb whatnow -attach foo -noedit -prompt '' 2>> $actualerr >> $actual
echo "alist" | TERM=dumb whatnow -attach foo -noedit -prompt '' \
				2>> $actualerr >> $actual
echo "detach $testname_quoted" | \
  TERM=dumb whatnow -attach foo -noedit -prompt '' 2>> $actualerr >> $actual
echo "alist" | TERM=dumb whatnow -attach foo -noedit -prompt '' \
				2>> $actualerr >> $actual
set -e

check "$expectederr" "$actualerr"
check "$expected" "$actual"

test ${failed:-0} -eq 0  &&  rm "$testname"

exit $failed
