Alien-SVN
view release on metacpan or search on metacpan
src/subversion/subversion/include/svn_dirent_uri.h view on Meta::CPAN
* - converting a drive letter to upper case (on Windows)
*
* and possibly other semantically inoperative transformations.
*
* Allocate the result in @a result_pool.
*
* @since New in 1.6.
*/
const char *
svn_dirent_canonicalize(const char *dirent,
apr_pool_t *result_pool);
/** Return a new relpath like @a relpath, but transformed such that some types
* of relpath specification redundancies are removed.
*
* This involves:
* - collapsing redundant "/./" elements
* - removing multiple adjacent separator characters
* - removing trailing separator characters
*
* and possibly other semantically inoperative transformations.
*
* Allocate the result in @a result_pool.
*
* @since New in 1.7.
*/
const char *
svn_relpath_canonicalize(const char *relpath,
apr_pool_t *result_pool);
/** Return a new uri like @a uri, but transformed such that some types
* of uri specification redundancies are removed.
*
* This involves:
* - collapsing redundant "/./" elements
* - removing multiple adjacent separator characters
* - removing trailing separator characters
* - normalizing the escaping of the path component by unescaping
* characters that don't need escaping and escaping characters that do
* need escaping but weren't
* - removing the port number if it is the default port number (80 for
* http, 443 for https, 3690 for svn)
*
* and possibly other semantically inoperative transformations.
*
* Allocate the result in @a result_pool.
*
* @since New in 1.7.
*/
const char *
svn_uri_canonicalize(const char *uri,
apr_pool_t *result_pool);
/** Return @c TRUE iff @a dirent is canonical.
*
* Use @a scratch_pool for temporary allocations.
*
* @note The test for canonicalization is currently defined as
* "looks exactly the same as @c svn_dirent_canonicalize() would make
* it look".
*
* @see svn_dirent_canonicalize()
* @since New in 1.6.
*/
svn_boolean_t
svn_dirent_is_canonical(const char *dirent,
apr_pool_t *scratch_pool);
/** Return @c TRUE iff @a relpath is canonical.
*
* @see svn_relpath_canonicalize()
* @since New in 1.7.
*/
svn_boolean_t
svn_relpath_is_canonical(const char *relpath);
/** Return @c TRUE iff @a uri is canonical.
*
* Use @a scratch_pool for temporary allocations.
*
* @see svn_uri_canonicalize()
* @since New in 1.7.
*/
svn_boolean_t
svn_uri_is_canonical(const char *uri,
apr_pool_t *scratch_pool);
/** Return the longest common dirent shared by two canonicalized dirents,
* @a dirent1 and @a dirent2. If there's no common ancestor, return the
* empty path.
*
* Allocate the result in @a result_pool.
*
* @since New in 1.6.
*/
char *
svn_dirent_get_longest_ancestor(const char *dirent1,
const char *dirent2,
apr_pool_t *result_pool);
/** Return the longest common path shared by two relative paths,
* @a relpath1 and @a relpath2. If there's no common ancestor, return the
* empty path.
*
* Allocate the result in @a result_pool.
*
* @since New in 1.7.
*/
char *
svn_relpath_get_longest_ancestor(const char *relpath1,
const char *relpath2,
apr_pool_t *result_pool);
/** Return the longest common path shared by two canonicalized uris,
* @a uri1 and @a uri2. If there's no common ancestor, return the
* empty path. In order for two URLs to have a common ancestor, they
* must (a) have the same protocol (since two URLs with the same path
* but different protocols may point at completely different
* resources), and (b) share a common ancestor in their path
( run in 0.776 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )