Author: breser
Date: Tue Aug 19 13:32:52 2014
New Revision: 1618863

URL: http://svn.apache.org/r1618863
Log:
Extend cancel support to conflict output of svn_diff_file_output_merge3().

* subversion/libsvn_diff/diff_file.c
  (svn_diff3__file_output_baton_t): Add cancel argument members.
  (output_conflict): Switch to svn_diff_output2() using the cancel arguments
    from the baton.
  (svn_diff_file_output_merge3): Fill the cancel members of the baton.

Modified:
    subversion/trunk/subversion/libsvn_diff/diff_file.c

Modified: subversion/trunk/subversion/libsvn_diff/diff_file.c
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_diff/diff_file.c?rev=1618863&r1=1618862&r2=1618863&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_diff/diff_file.c (original)
+++ subversion/trunk/subversion/libsvn_diff/diff_file.c Tue Aug 19 13:32:52 2014
@@ -2002,6 +2002,10 @@ typedef struct svn_diff3__file_output_ba
   svn_diff_conflict_display_style_t conflict_style;
   int context_size;
 
+  /* cancel support */
+  svn_cancel_func_t cancel_func;
+  void *cancel_baton;
+
   /* The rest of the fields are for
      svn_diff_conflict_display_only_conflicts only.  Note that for
      these batons, OUTPUT_STREAM is either CONTEXT_SAVER->STREAM or
@@ -2300,8 +2304,10 @@ output_conflict(void *baton,
   if (style == svn_diff_conflict_display_resolved_modified_latest)
     {
       if (diff)
-        return svn_diff_output(diff, baton,
-                               &svn_diff3__file_output_vtable);
+        return svn_diff_output2(diff, baton,
+                                &svn_diff3__file_output_vtable,
+                                file_baton->cancel_func,
+                                file_baton->cancel_baton);
       else
         style = svn_diff_conflict_display_modified_latest;
     }
@@ -2427,6 +2433,9 @@ svn_diff_file_output_merge3(svn_stream_t
     eol = APR_EOL_STR;
   baton.marker_eol = eol;
 
+  baton.cancel_func = cancel_func;
+  baton.cancel_baton = cancel_baton;
+
   SVN_ERR(svn_diff_output2(diff, &baton,
                           &svn_diff3__file_output_vtable,
                           cancel_func, cancel_baton));


Reply via email to