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


Reply via email to