You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ph...@apache.org on 2013/07/25 15:41:24 UTC
svn commit: r1506966 - /subversion/trunk/subversion/svnadmin/svnadmin.c
Author: philip
Date: Thu Jul 25 13:41:23 2013
New Revision: 1506966
URL: http://svn.apache.org/r1506966
Log:
Revert r1485650 as it was incorrect. The stream converts to native
encoding so explicitly converting the strings results in a double
conversion.
* subversion/svnadmin/svnadmin.c
(cmdline_stream_printf): Remove.
(repos_notify_handler): Go back to svn_stream_printf/svn_stream_puts.
Modified:
subversion/trunk/subversion/svnadmin/svnadmin.c
Modified: subversion/trunk/subversion/svnadmin/svnadmin.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svnadmin/svnadmin.c?rev=1506966&r1=1506965&r2=1506966&view=diff
==============================================================================
--- subversion/trunk/subversion/svnadmin/svnadmin.c (original)
+++ subversion/trunk/subversion/svnadmin/svnadmin.c Thu Jul 25 13:41:23 2013
@@ -772,39 +772,6 @@ subcommand_deltify(apr_getopt_t *os, voi
return SVN_NO_ERROR;
}
-static void
-cmdline_stream_printf(svn_stream_t *stream,
- apr_pool_t *pool,
- const char *fmt,
- ...)
- __attribute__((format(printf, 3, 4)));
-
-static void
-cmdline_stream_printf(svn_stream_t *stream,
- apr_pool_t *pool,
- const char *fmt,
- ...)
-{
- const char *message;
- va_list ap;
- svn_error_t *err;
- const char *out;
-
- va_start(ap, fmt);
- message = apr_pvsprintf(pool, fmt, ap);
- va_end(ap);
-
- err = svn_cmdline_cstring_from_utf8(&out, message, pool);
-
- if (err)
- {
- svn_error_clear(err);
- out = svn_cmdline_cstring_from_utf8_fuzzy(message, pool);
- }
-
- svn_error_clear(svn_stream_puts(stream, out));
-}
-
/* Implementation of svn_repos_notify_func_t to wrap the output to a
response stream for svn_repos_dump_fs2() and svn_repos_verify_fs() */
@@ -814,45 +781,46 @@ repos_notify_handler(void *baton,
apr_pool_t *scratch_pool)
{
svn_stream_t *feedback_stream = baton;
+ apr_size_t len;
switch (notify->action)
{
case svn_repos_notify_warning:
- cmdline_stream_printf(feedback_stream, scratch_pool,
- "WARNING 0x%04x: %s\n", notify->warning,
- notify->warning_str);
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
+ "WARNING 0x%04x: %s\n", notify->warning,
+ notify->warning_str));
return;
case svn_repos_notify_failure:
if (notify->revision != SVN_INVALID_REVNUM)
- cmdline_stream_printf(feedback_stream, scratch_pool,
- _("* Error verifying revision %ld.\n"),
- notify->revision);
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
+ _("* Error verifying revision %ld.\n"),
+ notify->revision));
if (notify->err)
svn_handle_error2(notify->err, stderr, FALSE /* non-fatal */,
"svnadmin: ");
return;
case svn_repos_notify_dump_rev_end:
- cmdline_stream_printf(feedback_stream, scratch_pool,
- _("* Dumped revision %ld.\n"),
- notify->revision);
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
+ _("* Dumped revision %ld.\n"),
+ notify->revision));
return;
case svn_repos_notify_verify_rev_end:
- cmdline_stream_printf(feedback_stream, scratch_pool,
- _("* Verified revision %ld.\n"),
- notify->revision);
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
+ _("* Verified revision %ld.\n"),
+ notify->revision));
return;
case svn_repos_notify_verify_rev_structure:
if (notify->revision == SVN_INVALID_REVNUM)
- cmdline_stream_printf(feedback_stream, scratch_pool,
- _("* Verifying repository metadata ...\n"));
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
+ _("* Verifying repository metadata ...\n")));
else
- cmdline_stream_printf(feedback_stream, scratch_pool,
- _("* Verifying metadata at revision %ld ...\n"),
- notify->revision);
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
+ _("* Verifying metadata at revision %ld ...\n"),
+ notify->revision));
return;
case svn_repos_notify_pack_shard_start:
@@ -860,14 +828,14 @@ repos_notify_handler(void *baton,
const char *shardstr = apr_psprintf(scratch_pool,
"%" APR_INT64_T_FMT,
notify->shard);
- cmdline_stream_printf(feedback_stream, scratch_pool,
- _("Packing revisions in shard %s..."),
- shardstr);
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
+ _("Packing revisions in shard %s..."),
+ shardstr));
}
return;
case svn_repos_notify_pack_shard_end:
- cmdline_stream_printf(feedback_stream, scratch_pool, _("done.\n"));
+ svn_error_clear(svn_stream_puts(feedback_stream, _("done.\n")));
return;
case svn_repos_notify_pack_shard_start_revprop:
@@ -875,30 +843,30 @@ repos_notify_handler(void *baton,
const char *shardstr = apr_psprintf(scratch_pool,
"%" APR_INT64_T_FMT,
notify->shard);
- cmdline_stream_printf(feedback_stream, scratch_pool,
- _("Packing revprops in shard %s..."),
- shardstr);
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
+ _("Packing revprops in shard %s..."),
+ shardstr));
}
return;
case svn_repos_notify_pack_shard_end_revprop:
- cmdline_stream_printf(feedback_stream, scratch_pool, _("done.\n"));
+ svn_error_clear(svn_stream_puts(feedback_stream, _("done.\n")));
return;
case svn_repos_notify_load_txn_committed:
if (notify->old_revision == SVN_INVALID_REVNUM)
{
- cmdline_stream_printf(feedback_stream, scratch_pool,
- _("\n------- Committed revision %ld >>>\n\n"),
- notify->new_revision);
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
+ _("\n------- Committed revision %ld >>>\n\n"),
+ notify->new_revision));
}
else
{
- cmdline_stream_printf(feedback_stream, scratch_pool,
- _("\n------- Committed new rev %ld"
- " (loaded from original rev %ld"
- ") >>>\n\n"), notify->new_revision,
- notify->old_revision);
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
+ _("\n------- Committed new rev %ld"
+ " (loaded from original rev %ld"
+ ") >>>\n\n"), notify->new_revision,
+ notify->old_revision));
}
return;
@@ -907,27 +875,27 @@ repos_notify_handler(void *baton,
switch (notify->node_action)
{
case svn_node_action_change:
- cmdline_stream_printf(feedback_stream, scratch_pool,
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
_(" * editing path : %s ..."),
- notify->path);
+ notify->path));
break;
case svn_node_action_delete:
- cmdline_stream_printf(feedback_stream, scratch_pool,
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
_(" * deleting path : %s ..."),
- notify->path);
+ notify->path));
break;
case svn_node_action_add:
- cmdline_stream_printf(feedback_stream, scratch_pool,
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
_(" * adding path : %s ..."),
- notify->path);
+ notify->path));
break;
case svn_node_action_replace:
- cmdline_stream_printf(feedback_stream, scratch_pool,
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
_(" * replacing path : %s ..."),
- notify->path);
+ notify->path));
break;
}
@@ -935,30 +903,32 @@ repos_notify_handler(void *baton,
return;
case svn_repos_notify_load_node_done:
- cmdline_stream_printf(feedback_stream, scratch_pool, _(" done.\n"));
+ len = 7;
+ svn_error_clear(svn_stream_write(feedback_stream, _(" done.\n"), &len));
return;
case svn_repos_notify_load_copied_node:
- cmdline_stream_printf(feedback_stream, scratch_pool, "COPIED...");
+ len = 9;
+ svn_error_clear(svn_stream_write(feedback_stream, "COPIED...", &len));
return;
case svn_repos_notify_load_txn_start:
- cmdline_stream_printf(feedback_stream, scratch_pool,
- _("<<< Started new transaction, based on "
- "original revision %ld\n"),
- notify->old_revision);
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
+ _("<<< Started new transaction, based on "
+ "original revision %ld\n"),
+ notify->old_revision));
return;
case svn_repos_notify_load_skipped_rev:
- cmdline_stream_printf(feedback_stream, scratch_pool,
- _("<<< Skipped original revision %ld\n"),
- notify->old_revision);
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
+ _("<<< Skipped original revision %ld\n"),
+ notify->old_revision));
return;
case svn_repos_notify_load_normalized_mergeinfo:
- cmdline_stream_printf(feedback_stream, scratch_pool,
- _(" removing '\\r' from %s ..."),
- SVN_PROP_MERGEINFO);
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
+ _(" removing '\\r' from %s ..."),
+ SVN_PROP_MERGEINFO));
return;
case svn_repos_notify_mutex_acquired:
@@ -967,17 +937,17 @@ repos_notify_handler(void *baton,
return;
case svn_repos_notify_recover_start:
- cmdline_stream_printf(feedback_stream, scratch_pool,
- _("Repository lock acquired.\n"
- "Please wait; recovering the"
- " repository may take some time...\n"));
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
+ _("Repository lock acquired.\n"
+ "Please wait; recovering the"
+ " repository may take some time...\n")));
return;
case svn_repos_notify_upgrade_start:
- cmdline_stream_printf(feedback_stream, scratch_pool,
- _("Repository lock acquired.\n"
- "Please wait; upgrading the"
- " repository may take some time...\n"));
+ svn_error_clear(svn_stream_puts(feedback_stream,
+ _("Repository lock acquired.\n"
+ "Please wait; upgrading the"
+ " repository may take some time...\n")));
return;
case svn_repos_notify_pack_revprops:
@@ -985,10 +955,10 @@ repos_notify_handler(void *baton,
const char *shardstr = apr_psprintf(scratch_pool,
"%" APR_INT64_T_FMT,
notify->shard);
- cmdline_stream_printf(feedback_stream, scratch_pool,
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
_("Packing revision properties"
" in shard %s..."),
- shardstr);
+ shardstr));
return;
}
@@ -997,17 +967,17 @@ repos_notify_handler(void *baton,
const char *shardstr = apr_psprintf(scratch_pool,
"%" APR_INT64_T_FMT,
notify->shard);
- cmdline_stream_printf(feedback_stream, scratch_pool,
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
_("Removing non-packed revision properties"
" in shard %s..."),
- shardstr);
+ shardstr));
return;
}
case svn_repos_notify_format_bumped:
- cmdline_stream_printf(feedback_stream, scratch_pool,
+ svn_error_clear(svn_stream_printf(feedback_stream, scratch_pool,
_("Bumped repository format to %ld\n"),
- notify->revision);
+ notify->revision));
default:
return;