5 kx # Copyright (C) 2009, 2011-2012 Free Software Foundation, Inc.
5 kx #
5 kx # Copying and distribution of this file, with or without modification,
5 kx # in any medium, are permitted without royalty provided the copyright
5 kx # notice and this notice are preserved.
5 kx
5 kx # Don't recognize hunks before a filename has been specified/seen
5 kx
5 kx . $srcdir/test-lib.sh
5 kx
5 kx require cat
5 kx require sed
5 kx use_local_patch
5 kx use_tmpdir
5 kx
5 kx # ==============================================================
5 kx
5 kx cat > n.diff <<EOF
5 kx 0a1
5 kx > one
5 kx EOF
5 kx
5 kx check 'patch < n.diff || echo "Status: $?"' <<EOF
5 kx $PATCH: **** Only garbage was found in the patch input.
5 kx Status: 2
5 kx EOF
5 kx
5 kx check 'patch -f -n < n.diff || echo "Status: $?"' <<EOF
5 kx can't find file to patch at input line 1
5 kx No file to patch. Skipping patch.
5 kx 1 out of 1 hunk ignored
5 kx Status: 1
5 kx EOF
5 kx
5 kx touch f
5 kx check 'patch f < n.diff' <<EOF
5 kx patching file f
5 kx EOF
5 kx
5 kx # ==============================================================
5 kx
5 kx if ! have_ed ; then
5 kx echo "The ed utility is not available; skipping ed related tests"
5 kx else
5 kx cat > e.diff <<EOF
5 kx 0a
5 kx one
5 kx .
5 kx EOF
5 kx
5 kx check 'patch < e.diff || echo "Status: $?"' <<EOF
5 kx $PATCH: **** Only garbage was found in the patch input.
5 kx Status: 2
5 kx EOF
5 kx
5 kx check 'patch -f -e < e.diff || echo "Status: $?"' <<EOF
5 kx can't find file to patch at input line 1
5 kx No file to patch. Skipping patch.
5 kx Status: 1
5 kx EOF
5 kx
5 kx rm -f f
5 kx touch f
5 kx ncheck 'patch -f f < e.diff'
5 kx
5 kx check 'cat f' <<EOF
5 kx one
5 kx EOF
5 kx fi
5 kx
5 kx # ==============================================================
5 kx
5 kx cat > h+c.diff <<EOF
5 kx *** /dev/null
5 kx --- f
5 kx ***************
5 kx *** 0 ****
5 kx --- 1 ----
5 kx + one
5 kx EOF
5 kx
5 kx rm -f f
5 kx check 'patch < h+c.diff' <<EOF
5 kx patching file f
5 kx EOF
5 kx
5 kx check 'cat f' <<EOF
5 kx one
5 kx EOF
5 kx
5 kx sed -e '1,2d' h+c.diff > c.diff
5 kx
5 kx check 'patch < c.diff || echo "Status: $?"' <<EOF
5 kx $PATCH: **** Only garbage was found in the patch input.
5 kx Status: 2
5 kx EOF
5 kx
5 kx rm -f f
5 kx check 'patch f < c.diff' <<EOF
5 kx patching file f
5 kx EOF
5 kx
5 kx check 'cat f' <<EOF
5 kx one
5 kx EOF
5 kx
5 kx # ==============================================================
5 kx
5 kx cat > h+u.diff <<EOF
5 kx --- /dev/null
5 kx +++ f
5 kx @@ -0,0 +1 @@
5 kx +one
5 kx EOF
5 kx
5 kx rm -f f
5 kx check 'patch < h+u.diff' <<EOF
5 kx patching file f
5 kx EOF
5 kx
5 kx check 'cat f' <<EOF
5 kx one
5 kx EOF
5 kx
5 kx sed -e '1,2d' h+u.diff > u.diff
5 kx
5 kx check 'patch < u.diff || echo "Status: $?"' <<EOF
5 kx $PATCH: **** Only garbage was found in the patch input.
5 kx Status: 2
5 kx EOF
5 kx
5 kx rm -f f
5 kx check 'patch f < u.diff' <<EOF
5 kx patching file f
5 kx EOF
5 kx
5 kx check 'cat f' <<EOF
5 kx one
5 kx EOF