Author: julianfoad Date: Mon Jan 14 15:13:02 2019 New Revision: 1851265 URL: http://svn.apache.org/viewvc?rev=1851265&view=rev Log: Move misplaced parameters out of the blame callback.
The svn_client_blame_receiver4_t parameters "start_revnum" and "end_revnum" do not really belong here because they are not per-line data. They are the "resolved" versions of the input revnums to svn_client_blame6(). This patch moves them to svn_client_blame6() output parameters. * subversion/bindings/javahl/native/BlameCallback.h, subversion/bindings/javahl/native/BlameCallback.cpp (callback, singleLine): Drop the start/end parameters. * subversion/bindings/javahl/native/SVNClient.cpp (blame): Adjust the call to svn_client_blame6(). Don't provide access to the start/end parameters here, as we weren't providing access to them through the callback. We could add them later. * subversion/svn/blame-cmd.c (blame_receiver_xml, blame_receiver): Don't expect and process start/end revnums here. (svn_cl__blame): Handle them here instead. Modified: subversion/trunk/subversion/bindings/javahl/native/BlameCallback.cpp subversion/trunk/subversion/bindings/javahl/native/BlameCallback.h subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp subversion/trunk/subversion/svn/blame-cmd.c Modified: subversion/trunk/subversion/bindings/javahl/native/BlameCallback.cpp URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/BlameCallback.cpp?rev=1851265&r1=1851264&r2=1851265&view=diff ============================================================================== --- subversion/trunk/subversion/bindings/javahl/native/BlameCallback.cpp (original) +++ subversion/trunk/subversion/bindings/javahl/native/BlameCallback.cpp Mon Jan 14 15:13:02 2019 @@ -48,8 +48,6 @@ BlameCallback::~BlameCallback() /* implements svn_client_blame_receiver3_t */ svn_error_t * BlameCallback::callback(void *baton, - svn_revnum_t start_revnum, - svn_revnum_t end_revnum, apr_int64_t line_no, svn_revnum_t revision, apr_hash_t *rev_props, @@ -61,8 +59,8 @@ BlameCallback::callback(void *baton, apr_pool_t *pool) { if (baton) - return static_cast<BlameCallback *>(baton)->singleLine(start_revnum, - end_revnum, line_no, revision, rev_props, merged_revision, + return static_cast<BlameCallback *>(baton)->singleLine( + line_no, revision, rev_props, merged_revision, merged_rev_props, merged_path, line, local_change, pool); return SVN_NO_ERROR; @@ -73,8 +71,7 @@ BlameCallback::callback(void *baton, * information was requested. See the Java-doc for more information. */ svn_error_t * -BlameCallback::singleLine(svn_revnum_t start_revnum, svn_revnum_t end_revnum, - apr_int64_t line_no, svn_revnum_t revision, +BlameCallback::singleLine(apr_int64_t line_no, svn_revnum_t revision, apr_hash_t *revProps, svn_revnum_t mergedRevision, apr_hash_t *mergedRevProps, const char *mergedPath, const svn_string_t *line, svn_boolean_t localChange, Modified: subversion/trunk/subversion/bindings/javahl/native/BlameCallback.h URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/BlameCallback.h?rev=1851265&r1=1851264&r2=1851265&view=diff ============================================================================== --- subversion/trunk/subversion/bindings/javahl/native/BlameCallback.h (original) +++ subversion/trunk/subversion/bindings/javahl/native/BlameCallback.h Mon Jan 14 15:13:02 2019 @@ -41,8 +41,6 @@ class BlameCallback ~BlameCallback(); static svn_error_t *callback(void *baton, - svn_revnum_t start_revnum, - svn_revnum_t end_revnum, apr_int64_t line_no, svn_revnum_t revision, apr_hash_t *rev_props, @@ -54,9 +52,7 @@ class BlameCallback apr_pool_t *pool); protected: - svn_error_t *singleLine(svn_revnum_t start_revnum, - svn_revnum_t end_revnum, - apr_int64_t line_no, + svn_error_t *singleLine(apr_int64_t line_no, svn_revnum_t revision, apr_hash_t *rev_props, svn_revnum_t merged_revision, Modified: subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp?rev=1851265&r1=1851264&r2=1851265&view=diff ============================================================================== --- subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp (original) +++ subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp Mon Jan 14 15:13:02 2019 @@ -1287,6 +1287,7 @@ void SVNClient::blame(const char *path, SVN_JNI_ERR(svn_client_blame6( intPath.c_str(), pegRevision.revision(), revisionStart.revision(), revisionEnd.revision(), + NULL, NULL, options.fileOptions(subPool), ignoreMimeType, includeMergedRevisions, BlameCallback::callback, callback, ctx, subPool.getPool()), Modified: subversion/trunk/subversion/svn/blame-cmd.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/blame-cmd.c?rev=1851265&r1=1851264&r2=1851265&view=diff ============================================================================== --- subversion/trunk/subversion/svn/blame-cmd.c (original) +++ subversion/trunk/subversion/svn/blame-cmd.c Mon Jan 14 15:13:02 2019 @@ -54,8 +54,6 @@ typedef struct blame_baton_t XML to stdout. */ static svn_error_t * blame_receiver_xml(void *baton, - svn_revnum_t start_revnum, - svn_revnum_t end_revnum, apr_int64_t line_no, svn_revnum_t revision, apr_hash_t *rev_props, @@ -170,8 +168,6 @@ print_line_info(svn_stream_t *out, /* This implements the svn_client_blame_receiver3_t interface. */ static svn_error_t * blame_receiver(void *baton, - svn_revnum_t start_revnum, - svn_revnum_t end_revnum, apr_int64_t line_no, svn_revnum_t revision, apr_hash_t *rev_props, @@ -187,21 +183,6 @@ blame_receiver(void *baton, svn_stream_t *out = bb->out; svn_boolean_t use_merged = FALSE; - if (!bb->rev_maxlength) - { - svn_revnum_t max_revnum = MAX(start_revnum, end_revnum); - /* The standard column width for the revision number is 6 characters. - If the revision number can potentially be larger (i.e. if the end_revnum - is larger than 1000000), we increase the column width as needed. */ - - bb->rev_maxlength = 6; - while (max_revnum >= 1000000) - { - bb->rev_maxlength++; - max_revnum = max_revnum / 10; - } - } - if (opt_state->use_merge_history) { /* Choose which revision to use. If they aren't equal, prefer the @@ -334,6 +315,7 @@ svn_cl__blame(apr_getopt_t *os, const char *truepath; svn_opt_revision_t peg_revision; svn_client_blame_receiver4_t receiver; + svn_revnum_t start_revnum, end_revnum; svn_pool_clear(subpool); SVN_ERR(svn_cl__check_cancel(ctx->cancel_baton)); @@ -372,6 +354,7 @@ svn_cl__blame(apr_getopt_t *os, &peg_revision, &opt_state->start_revision, &opt_state->end_revision, + &start_revnum, &end_revnum, diff_options, opt_state->force, opt_state->use_merge_history, @@ -379,6 +362,19 @@ svn_cl__blame(apr_getopt_t *os, &bl, ctx, subpool); + { + svn_revnum_t max_revnum = MAX(start_revnum, end_revnum); + /* The standard column width for the revision number is 6 characters. + If the revision number can potentially be larger (i.e. if max revnum + is larger than 1000000), we increase the column width as needed. */ + + bl.rev_maxlength = 6; + while (max_revnum >= 1000000) + { + bl.rev_maxlength++; + max_revnum = max_revnum / 10; + } + } if (err) {