We already support that in context rejects, just do the same for
unified rejects.
---
 src/patch.c                     |    3 ++-
 tests/preserve-c-function-names |   16 ++++++++++++++++
 tests/reject-format             |    4 ++--
 3 files changed, 20 insertions(+), 3 deletions(-)

--- a/src/patch.c
+++ b/src/patch.c
@@ -1237,6 +1237,7 @@ abort_hunk_unified (bool header, bool re
   lin old = 1;
   lin lastline = pch_ptrn_lines ();
   lin new = lastline + 1;
+  char const *c_function = pch_c_function();
 
   if (header)
     {
@@ -1251,7 +1252,7 @@ abort_hunk_unified (bool header, bool re
   print_unidiff_range (rejfp, pch_first () + out_offset, lastline);
   fprintf (rejfp, " +");
   print_unidiff_range (rejfp, pch_newfirst () + out_offset, pch_repl_lines ());
-  fprintf (rejfp, " @@\n");
+  fprintf (rejfp, " @@%s\n", c_function ? c_function : "");
 
   while (pch_char (new) == '=' || pch_char (new) == '\n')
     new++;
--- a/tests/preserve-c-function-names
+++ b/tests/preserve-c-function-names
@@ -34,6 +34,7 @@ EOF
 preserve_trailing_blank=
 
 diff -p -c -L a -L b a b > ab.diff
+diff -p -u -L a -L b a b > ab-unified.diff
 touch c
 check 'patch c < ab.diff || cat c.rej' <<EOF
 patching file c
@@ -55,3 +56,18 @@ Hunk #1 FAILED at 2.
 !     return 2;
     }
 EOF
+rm -f c.rej
+check 'patch c < ab-unified.diff || cat c.rej' <<EOF
+patching file c
+Hunk #1 FAILED at 2.
+1 out of 1 hunk FAILED -- saving rejects to file c.rej
+--- a
++++ b
+@@ -2,5 +2,5 @@ int foo()
+   {
+     /* waste a line */
+ $preserve_trailing_blank
+-    return 1;
++    return 2;
+   }
+EOF
--- a/tests/reject-format
+++ b/tests/reject-format
@@ -79,7 +79,7 @@ check 'cat f.rej' <<EOF
 Index: f
 --- f.orig
 +++ f
-@@ -2,6 +2,6 @@
+@@ -2,6 +2,6 @@ a() {
  2
  3
  $preserve_trailing_blank
@@ -102,7 +102,7 @@ EOF
 check 'cat f.rej' <<EOF
 --- f.orig
 +++ f
-@@ -2,6 +2,6 @@
+@@ -2,6 +2,6 @@ a() {
  2
  3
  $preserve_trailing_blank


-- 
Jean Delvare
SUSE L3 Support

Reply via email to