# 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.

# Test the --reject-format=FORMAT option

. $srcdir/test-lib.sh

require_cat
require_diff
use_local_patch
use_tmpdir

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

cat > f.orig <<EOF
a() {
2
3

5
6
}
EOF

sed -e 's/5/5a/' f.orig > f
diff -p -c f.orig f > f.diff

check 'patch -f -F0 --no-backup-if-mismatch f < f.diff || echo "Status: $?"' <<EOF
patching file f
Hunk #1 FAILED at 2.
1 out of 1 hunk FAILED -- saving rejects to file f.rej
Status: 1
EOF

check 'cat f.rej' <<EOF
*** f.orig
--- f
*************** a() {
*** 2,7 ****
  2
  3
  
! 5
  6
  }
--- 2,7 ----
  2
  3
  
! 5a
  6
  }
EOF

# --------------------------------------------------------------

( echo "Index: f"; diff -p -u f.orig f ) > f.diff
check 'patch -f -F0 --no-backup-if-mismatch f < f.diff || echo "Status: $?"' <<EOF
patching file f
Hunk #1 FAILED at 2.
1 out of 1 hunk FAILED -- saving rejects to file f.rej
Status: 1
EOF

check 'cat f.rej' <<EOF
Index: f
--- f.orig
+++ f
@@ -2,6 +2,6 @@
 2
 3
 
-5
+5a
 6
 }
EOF

# --------------------------------------------------------------

diff -p -c f.orig f > f.diff
check 'patch -f -F0 --no-backup-if-mismatch --reject-format=unified f < f.diff || echo "Status: $?"' <<EOF
patching file f
Hunk #1 FAILED at 2.
1 out of 1 hunk FAILED -- saving rejects to file f.rej
Status: 1
EOF

check 'cat f.rej' <<EOF
--- f.orig
+++ f
@@ -2,6 +2,6 @@
 2
 3
 
-5
+5a
 6
 }
EOF

# --------------------------------------------------------------

( echo "Index: f"; diff -p -u f.orig f ) > f.diff
check 'patch -f -F0 --no-backup-if-mismatch --reject-format=context f < f.diff || echo "Status: $?"' <<EOF
patching file f
Hunk #1 FAILED at 2.
1 out of 1 hunk FAILED -- saving rejects to file f.rej
Status: 1
EOF

check 'cat f.rej' <<EOF
Index: f
*** f.orig
--- f
*************** a() {
*** 2,7 ****
  2
  3
  
! 5
  6
  }
--- 2,7 ----
  2
  3
  
! 5a
  6
  }
EOF
