#include <apr_pools.h>
#include "svn_pools.h"
#include "svn_error.h"
#include "svn_types.h"
#include "svn_opt.h"
#include "svn_wc.h"
#include "svn_client.h"
#include "svn_dirent_uri.h"
#include "svn_path.h"
#include "private/svn_wc_private.h"
#include "client.h"
#include "svn_private_config.h"
svn_error_t *
svn_client_url_from_path2(const char **url,
const char *path_or_url,
svn_client_ctx_t *ctx,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
if (!svn_path_is_url(path_or_url))
{
SVN_ERR(svn_dirent_get_absolute(&path_or_url, path_or_url,
scratch_pool));
return svn_error_trace(
svn_wc__node_get_url(url, ctx->wc_ctx, path_or_url,
result_pool, scratch_pool));
}
else
*url = svn_uri_canonicalize(path_or_url, result_pool);
return SVN_NO_ERROR;
}
svn_error_t *
svn_client_root_url_from_path(const char **url,
const char *path_or_url,
svn_client_ctx_t *ctx,
apr_pool_t *pool)
{
if (!svn_path_is_url(path_or_url))
SVN_ERR(svn_dirent_get_absolute(&path_or_url, path_or_url, pool));
return svn_error_trace(
svn_client__get_repos_root(url, path_or_url,
ctx, pool, pool));
}