Subversion
Loading...
Searching...
No Matches
URI/URL conversion

URI/URL stuff. More...

Functions

svn_boolean_t svn_path_is_url (const char *path)
 Return TRUE iff path looks like a valid absolute URL.
svn_boolean_t svn_path_is_uri_safe (const char *path)
 Return TRUE iff path is URI-safe, FALSE otherwise.
const char * svn_path_uri_encode (const char *path, apr_pool_t *pool)
 Return a URI-encoded copy of path, allocated in pool.
const char * svn_path_uri_decode (const char *path, apr_pool_t *pool)
 Return a URI-decoded copy of path, allocated in pool.
const char * svn_path_url_add_component2 (const char *url, const char *component, apr_pool_t *pool)
 Extend url by component, URI-encoding that component before adding it to the url; return the new url, allocated in pool.
const char * svn_path_url_add_component (const char *url, const char *component, apr_pool_t *pool)
 Like svn_path_url_add_component2(), but allows path components that end with a trailing '/'.
const char * svn_path_uri_from_iri (const char *iri, apr_pool_t *pool)
 Convert iri (Internationalized URI) to an URI.

Detailed Description

URI/URL stuff.

Function Documentation

◆ svn_path_uri_encode()

const char * svn_path_uri_encode ( const char * path,
apr_pool_t * pool )

Return a URI-encoded copy of path, allocated in pool.

(path can be an arbitrary UTF-8 string and does not have to be a canonical path.)

References path.

◆ svn_path_uri_from_iri()

const char * svn_path_uri_from_iri ( const char * iri,
apr_pool_t * pool )

Convert iri (Internationalized URI) to an URI.

The return value may be the same as iri if it was already a URI. Else, allocate the return value in pool.

Since
New in 1.1.

◆ svn_path_url_add_component()

const char * svn_path_url_add_component ( const char * url,
const char * component,
apr_pool_t * pool )

Like svn_path_url_add_component2(), but allows path components that end with a trailing '/'.

Deprecated
Provided for backward compatibility with the 1.5 API.

References url.

◆ svn_path_url_add_component2()

const char * svn_path_url_add_component2 ( const char * url,
const char * component,
apr_pool_t * pool )

Extend url by component, URI-encoding that component before adding it to the url; return the new url, allocated in pool.

If component is NULL, just return a copy of url, allocated in pool.

component need not be a single path segment, but if it contains multiple segments, they must be separated by '/'. component should not begin with '/', however; if it does, the behavior is undefined.

url must be in canonical format; it may not have a trailing '/'.

Note
To add a component that is already URI-encoded, use svn_path_join(url, component, pool) instead.
gstein suggests this for when component begins with '/':
  "replace the path entirely
   https://example.com:4444/base/path joined with /leading/slash,
   should return: https://example.com:4444/leading/slash
   per the RFCs on combining URIs"

  We may implement that someday, which is why leading '/' is
  merely undefined right now.
Since
New in 1.6.

References SVN_DEPRECATED, and url.