Patrick Steinhardt wrote on Mon, Nov 21, 2016 at 11:57:01 +0100:
> On Sat, Nov 19, 2016 at 05:53:26AM +0000, Daniel Shahaf wrote:
> > Patrick Steinhardt wrote on Wed, Nov 09, 2016 at 12:54:08 +0100:
> > > + if (kind != svn_node_dir)
> > > + return svn_error_createf(
> > > + SVN_ERR_ILLEGAL_TARGET,
> > > + NULL,
> > > + _("Rejecting checkout to existing %s '%s'"),
> > > + svn_node_kind_to_word(kind),
> > Would using 'kind' through %s cause a problem for translators?
> > It would result in a nominative English noun being used in a dative
> > local-language context.
> Is there any recommendation what to use instead here?
I think best practice in translations is to repeat the full string:
"Rejecting checkout to existing file '%s'"
"Rejecting checkout to existing directory '%s'"
> > > + svn_pool_clear(scratch_pool);
> > > +
> > This pool usage is not idiomatic.
> > Does this function (verify_checkout_target()) return a value to its
> > caller? If it does, then let its signature have two pools. If it does
> > not, then let it take a single 'apr_pool_t *scratch_pool' argument, use
> > that pool for both pool arguments of callees, and leave that pool for
> > its (verify_checkout_target()'s) caller to clear. (In this case,
> > probably at apr_terminate().)
> No, `verify_checkout_target()` does not return a value, it only
> indicates an error if the target is not valid. The reason why I
> created the scratch pool was that I have to pass both a result
> and scratch pool to `svn_client_get_repos_root`, where I wasn't
> exactly sure which semantics one may expect when passing the same
> pool as both result and scratch pool to a callee.
> So if I understand it correctly I can expect
> `svn_client_get_repos_root` to behave correct in that case, so I
> can pass a scratch pool twice?
Yes, you can, and it'll work.
The rule is that a 'scratch_pool' argument may be cleared by the
*caller* at any time after the call. Callees don't clear pools passed
to them by callers.
> Thanks for your review.
Received on 2016-11-21 12:08:36 CET