# Copyright (C) 2009 Free Software Foundation, Inc.
#
# Copying and distribution of this file, with or without modification,
# in any medium, are permitted without royalty provided the copyright
# notice and this notice are preserved.

# LF vs. CRLF line endings

. $srcdir/test-lib.sh

require_diff
use_local_patch
use_tmpdir

lf2crlf() {
    while read l; do echo -e "$l\r"; done \
}
echo 1 > a
echo 1b > b

diff a b | lf2crlf > ab.diff
echo 1 > c
check 'patch c < ab.diff' <<EOF
(Stripping trailing CRs from patch.)
patching file c
EOF

diff -c a b | lf2crlf > ab.diff
echo 1 > c
check 'patch c < ab.diff' <<EOF
(Stripping trailing CRs from patch.)
patching file c
EOF

diff -u a b | lf2crlf > ab.diff
echo 1 > c
check 'patch c < ab.diff' <<EOF
(Stripping trailing CRs from patch.)
patching file c
EOF

if ! have_ed ; then
    echo "The ed utility is not available; skipping ed related tests"
else
    diff -e a b > ab.ed | lf2crlf > ab.ed
    echo 1 > c
    ncheck 'patch c < ab.ed'
fi

# ==============================================================

echo 1 | lf2crlf > a
echo 1b | lf2crlf > b
diff -u a b > ab.diff
cp a c
check 'patch c < ab.diff' <<EOF
patching file c
EOF

check 'cat -A c' <<EOF
1b^M$
EOF

echo 1 > a
echo 1b > b
diff -u a b | lf2crlf > ab.diff
cp a c
check 'patch c < ab.diff' <<EOF
(Stripping trailing CRs from patch.)
patching file c
EOF

check 'cat -A c' <<EOF
1b$
EOF

echo 1 | lf2crlf > c
check 'patch --binary c < ab.diff' <<EOF
patching file c
EOF

check 'cat -A c' <<EOF
1b^M$
EOF

# ==============================================================

echo 1 > a
echo 2 > b
diff -u a b | sed -e 's,@@$,@@ context\r,' > ab.diff

echo 1 > c
check 'patch c < ab.diff' <<EOF
patching file c
EOF

check 'cat -A c' <<EOF
2$
EOF
