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));