# -*- shell-script -*-
FILENAME=lha-test14
message testing to handle symbolic links

ln -s test-a test-tmp-a &&
ln -s test-b test-tmp-b &&
ln -s test-c test-tmp-c
							check $? $LINENO
$lha c test-tmp-1.lzh test-tmp-[abc]
							check $? $LINENO
$lha v test-tmp-1.lzh
							check $? $LINENO
$lha xw=test-tmp-1 test-tmp-1.lzh 2> test-tmp-stderr
							check $? $LINENO
# LHa: Symbolic Link test-a -> test-tmp-1/test-tmp-a
# LHa: Symbolic Link test-b -> test-tmp-1/test-tmp-b
# LHa: Symbolic Link test-c -> test-tmp-1/test-tmp-c
test -s test-tmp-stderr
							check $? $LINENO
test -L test-tmp-1/test-tmp-a &&
test -L test-tmp-1/test-tmp-b &&
test -L test-tmp-1/test-tmp-c
							check $? $LINENO
# symbolic link is broken
test ! -e test-tmp-1/test-tmp-a &&
test ! -e test-tmp-1/test-tmp-b &&
test ! -e test-tmp-1/test-tmp-c
							check $? $LINENO

# symbolic link filename contains '|'
case `$lha --version 2>&1` in
*-pc-cygwin*|*-pc-mingw*)
    #  On MS Windows, '|' is invalid character as filename.
    ;;
*)
ln -s test-a test-tmp-\|foo
							check $? $LINENO
$lha c test-tmp-2.lzh test-tmp-\|foo 2> test-tmp-stderr
test $? -ne 0
							check $? $LINENO
#LHa: Error: symlink name "test-tmp-|foo" contains '|' char. change it into '_'
test -s test-tmp-stderr
							check $? $LINENO
# '|' was changed into '_'.
$lha v test-tmp-2.lzh
							check $? $LINENO
$lha v test-tmp-2.lzh | egrep 'test-a -> test-tmp-_foo'
							check $? $LINENO
$lha xw=test-tmp-2 test-tmp-2.lzh 2> test-tmp-stderr
							check $? $LINENO
test -s test-tmp-stderr
							check $? $LINENO
test -L test-tmp-2/test-tmp-_foo &&
test ! -e test-tmp-1/test-tmp-_foo
							check $? $LINENO
# linked filename contains '|'
touch test-tmp-\|bar &&
ln -s test-test-tmp-\|bar test-tmp-foo
							check $? $LINENO
$lha c test-tmp-3.lzh test-tmp-foo
							check $? $LINENO
$lha v test-tmp-3.lzh
							check $? $LINENO
$lha v test-tmp-3.lzh | egrep 'test-tmp-\|bar -> test-tmp-foo'
							check $? $LINENO
$lha xw=test-tmp-3 test-tmp-3.lzh 2> test-tmp-stderr
							check $? $LINENO
# LHa: Symbolic Link test-test-tmp-|bar -> test-tmp-3/test-tmp-foo
test -s test-tmp-stderr
							check $? $LINENO
test -L test-tmp-3/test-tmp-foo &&
test ! -e test-tmp-1/test-tmp-foo
							check $? $LINENO
;;
esac
