Author: breser
Date: Tue Aug 19 11:09:23 2014
New Revision: 1618839
URL: http://svn.apache.org/r1618839
Log:
Add svn_diff_mem_string_output_unified3() with cancel support and adjust
callers.
* subversion/include/svn_diff.h
(svn_diff_mem_string_output_unified3): New function that replaces...
(svn_diff_mem_string_output_unified, svn_diff_mem_string_output_unified2):
Deprecate.
* subversion/include/private/svn_diff_private.h
(svn_diff__display_prop_diffs): Add cancel support.
* subversion/libsvn_client/diff.c
(display_prop_diffs, diff_props_changed): Add cancel support.
* subversion/libsvn_diff/deprecated.c
(svn_diff_mem_string_output_unified, svn_diff_mem_string_output_unified2): Add
implementations that are based on svn_diff_mem_string_output_unified3().
* subversion/libsvn_diff/diff_memory.c
(svn_diff_mem_string_output_unified2): Replace with ...
(svn_diff_mem_string_output_unified3): New function with cancel support.
(svn_diff_mem_string_output_unified): Moved to deprecated.c.
* subversion/libsvn_diff/util.c
(svn_diff__display_prop_diffs): Add cancel support.
* subversion/svnlook/svnlook.c
(display_prop_diffs): Add cancel support.
Modified:
subversion/trunk/subversion/include/private/svn_diff_private.h
subversion/trunk/subversion/include/svn_diff.h
subversion/trunk/subversion/libsvn_client/diff.c
subversion/trunk/subversion/libsvn_diff/deprecated.c
subversion/trunk/subversion/libsvn_diff/diff_memory.c
subversion/trunk/subversion/libsvn_diff/util.c
subversion/trunk/subversion/svnlook/svnlook.c
Modified: subversion/trunk/subversion/include/private/svn_diff_private.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private/svn_diff_private.h?rev=1618839&r1=1618838&r2=1618839&view=diff
==============================================================================
--- subversion/trunk/subversion/include/private/svn_diff_private.h (original)
+++ subversion/trunk/subversion/include/private/svn_diff_private.h Tue Aug 19
11:09:23 2014
@@ -105,6 +105,8 @@ svn_diff__display_prop_diffs(svn_stream_
const apr_array_header_t *propchanges,
apr_hash_t *original_props,
svn_boolean_t pretty_print_mergeinfo,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
apr_pool_t *scratch_pool);
Modified: subversion/trunk/subversion/include/svn_diff.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_diff.h?rev=1618839&r1=1618838&r2=1618839&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_diff.h (original)
+++ subversion/trunk/subversion/include/svn_diff.h Tue Aug 19 11:09:23 2014
@@ -831,8 +831,30 @@ svn_diff_mem_string_diff4(svn_diff_t **d
* final line use the text "\ No newline at end of property" instead of
* "\ No newline at end of file".
*
+ * @since New in 1.9
+ */
+svn_error_t *
+svn_diff_mem_string_output_unified3(svn_stream_t *output_stream,
+ svn_diff_t *diff,
+ svn_boolean_t with_diff_header,
+ const char *hunk_delimiter,
+ const char *original_header,
+ const char *modified_header,
+ const char *header_encoding,
+ const svn_string_t *original,
+ const svn_string_t *modified,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ apr_pool_t *pool);
+
+/** Similar to svn_diff_mem_string_output_unified3() but without
+ * cancel support.
+ *
* @since New in 1.7. Hunk delimiter "##" has the special meaning since 1.8.
+ *
+ * @deprecated Provided for backwards compatibility with the 1.8 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_diff_mem_string_output_unified2(svn_stream_t *output_stream,
svn_diff_t *diff,
@@ -850,7 +872,10 @@ svn_diff_mem_string_output_unified2(svn_
* set to NULL.
*
* @since New in 1.5.
+ *
+ * @deprecated Provided for backwards compatibility with the 1.8 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_diff_mem_string_output_unified(svn_stream_t *output_stream,
svn_diff_t *diff,
Modified: subversion/trunk/subversion/libsvn_client/diff.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/diff.c?rev=1618839&r1=1618838&r2=1618839&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/diff.c (original)
+++ subversion/trunk/subversion/libsvn_client/diff.c Tue Aug 19 11:09:23 2014
@@ -440,6 +440,8 @@ display_prop_diffs(const apr_array_heade
svn_boolean_t show_diff_header,
svn_boolean_t use_git_diff_format,
const char *ra_session_relpath,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
svn_wc_context_t *wc_ctx,
apr_pool_t *scratch_pool)
{
@@ -508,7 +510,8 @@ display_prop_diffs(const apr_array_heade
SVN_ERR(svn_diff__display_prop_diffs(
outstream, encoding, propchanges, original_props,
- TRUE /* pretty_print_mergeinfo */, scratch_pool));
+ TRUE /* pretty_print_mergeinfo */,
+ cancel_func, cancel_baton, scratch_pool));
return SVN_NO_ERROR;
}
@@ -636,6 +639,8 @@ diff_props_changed(const char *diff_relp
show_diff_header,
dwi->use_git_diff_format,
dwi->ddi.session_relpath,
+ dwi->cancel_func,
+ dwi->cancel_baton,
dwi->wc_ctx,
scratch_pool));
}
Modified: subversion/trunk/subversion/libsvn_diff/deprecated.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_diff/deprecated.c?rev=1618839&r1=1618838&r2=1618839&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_diff/deprecated.c (original)
+++ subversion/trunk/subversion/libsvn_diff/deprecated.c Tue Aug 19 11:09:23
2014
@@ -352,3 +352,51 @@ svn_diff_mem_string_output_merge2(svn_st
NULL, NULL,
pool));
}
+
+svn_error_t *
+svn_diff_mem_string_output_unified(svn_stream_t *output_stream,
+ svn_diff_t *diff,
+ const char *original_header,
+ const char *modified_header,
+ const char *header_encoding,
+ const svn_string_t *original,
+ const svn_string_t *modified,
+ apr_pool_t *pool)
+{
+ return svn_error_trace(svn_diff_mem_string_output_unified2(output_stream,
+ diff,
+ TRUE,
+ NULL,
+ original_header,
+ modified_header,
+ header_encoding,
+ original,
+ modified,
+ pool));
+}
+
+svn_error_t *
+svn_diff_mem_string_output_unified2(svn_stream_t *output_stream,
+ svn_diff_t *diff,
+ svn_boolean_t with_diff_header,
+ const char *hunk_delimiter,
+ const char *original_header,
+ const char *modified_header,
+ const char *header_encoding,
+ const svn_string_t *original,
+ const svn_string_t *modified,
+ apr_pool_t *pool)
+{
+ return svn_error_trace(svn_diff_mem_string_output_unified3(output_stream,
+ diff,
+ with_diff_header,
+ hunk_delimiter,
+ original_header,
+ modified_header,
+ header_encoding,
+ original,
+ modified,
+ /* cancel */
+ NULL, NULL,
+ pool));
+}
Modified: subversion/trunk/subversion/libsvn_diff/diff_memory.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_diff/diff_memory.c?rev=1618839&r1=1618838&r2=1618839&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_diff/diff_memory.c (original)
+++ subversion/trunk/subversion/libsvn_diff/diff_memory.c Tue Aug 19 11:09:23
2014
@@ -610,7 +610,7 @@ static const svn_diff_output_fns_t mem_o
svn_error_t *
-svn_diff_mem_string_output_unified2(svn_stream_t *output_stream,
+svn_diff_mem_string_output_unified3(svn_stream_t *output_stream,
svn_diff_t *diff,
svn_boolean_t with_diff_header,
const char *hunk_delimiter,
@@ -619,6 +619,8 @@ svn_diff_mem_string_output_unified2(svn_
const char *header_encoding,
const svn_string_t *original,
const svn_string_t *modified,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
apr_pool_t *pool)
{
@@ -658,8 +660,9 @@ svn_diff_mem_string_output_unified2(svn_
original_header, modified_header, pool));
}
- SVN_ERR(svn_diff_output(diff, &baton,
- &mem_output_unified_vtable));
+ SVN_ERR(svn_diff_output2(diff, &baton,
+ &mem_output_unified_vtable,
+ cancel_func, cancel_baton));
SVN_ERR(output_unified_flush_hunk(&baton, hunk_delimiter));
@@ -669,28 +672,6 @@ svn_diff_mem_string_output_unified2(svn_
return SVN_NO_ERROR;
}
-svn_error_t *
-svn_diff_mem_string_output_unified(svn_stream_t *output_stream,
- svn_diff_t *diff,
- const char *original_header,
- const char *modified_header,
- const char *header_encoding,
- const svn_string_t *original,
- const svn_string_t *modified,
- apr_pool_t *pool)
-{
- SVN_ERR(svn_diff_mem_string_output_unified2(output_stream,
- diff,
- TRUE,
- NULL,
- original_header,
- modified_header,
- header_encoding,
- original,
- modified,
- pool));
- return SVN_NO_ERROR;
-}
Modified: subversion/trunk/subversion/libsvn_diff/util.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_diff/util.c?rev=1618839&r1=1618838&r2=1618839&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_diff/util.c (original)
+++ subversion/trunk/subversion/libsvn_diff/util.c Tue Aug 19 11:09:23 2014
@@ -516,6 +516,8 @@ svn_diff__display_prop_diffs(svn_stream_
const apr_array_header_t *propchanges,
apr_hash_t *original_props,
svn_boolean_t pretty_print_mergeinfo,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
apr_pool_t *scratch_pool)
{
apr_pool_t *pool = scratch_pool;
@@ -600,9 +602,9 @@ svn_diff__display_prop_diffs(svn_stream_
* UNIX patch could apply the property diff to, so we use "##"
* instead of "@@" as the default hunk delimiter for property diffs.
* We also suppress the diff header. */
- SVN_ERR(svn_diff_mem_string_output_unified2(
+ SVN_ERR(svn_diff_mem_string_output_unified3(
outstream, diff, FALSE /* no header */, "##", NULL, NULL,
- encoding, orig, val, iterpool));
+ encoding, orig, val, cancel_func, cancel_baton, iterpool));
}
}
svn_pool_destroy(iterpool);
Modified: subversion/trunk/subversion/svnlook/svnlook.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/svnlook/svnlook.c?rev=1618839&r1=1618838&r2=1618839&view=diff
==============================================================================
--- subversion/trunk/subversion/svnlook/svnlook.c (original)
+++ subversion/trunk/subversion/svnlook/svnlook.c Tue Aug 19 11:09:23 2014
@@ -811,7 +811,7 @@ display_prop_diffs(svn_stream_t *outstre
SVN_ERR(svn_diff__display_prop_diffs(
outstream, encoding, propchanges, original_props,
- FALSE /* pretty_print_mergeinfo */, pool));
+ FALSE /* pretty_print_mergeinfo */, check_cancel, NULL, pool));
return SVN_NO_ERROR;
}