Uri.h | Uri.h | |||
---|---|---|---|---|
skipping to change at line 318 | skipping to change at line 318 | |||
/** | /** | |||
* Performs reference resolution as described in | * Performs reference resolution as described in | |||
* <a href="http://tools.ietf.org/html/rfc3986#section-5.2.2">section 5.2.2 of RFC 3986</a>. | * <a href="http://tools.ietf.org/html/rfc3986#section-5.2.2">section 5.2.2 of RFC 3986</a>. | |||
* NOTE: On success you have to call uriFreeUriMembersA on \p absoluteDest manually later. | * NOTE: On success you have to call uriFreeUriMembersA on \p absoluteDest manually later. | |||
* | * | |||
* @param absoluteDest <b>OUT</b>: Result %URI | * @param absoluteDest <b>OUT</b>: Result %URI | |||
* @param relativeSource <b>IN</b>: Reference to resolve | * @param relativeSource <b>IN</b>: Reference to resolve | |||
* @param absoluteBase <b>IN</b>: Base %URI to apply | * @param absoluteBase <b>IN</b>: Base %URI to apply | |||
* @return Error code or 0 on success | * @return Error code or 0 on success | |||
* | * | |||
* @see uriRemoveBaseUriA | * @see uriRemoveBaseUriA, uriAddBaseUriExA | |||
* @since 0.4.0 | * @since 0.4.0 | |||
*/ | */ | |||
int URI_FUNC(AddBaseUri)(URI_TYPE(Uri) * absoluteDest, | int URI_FUNC(AddBaseUri)(URI_TYPE(Uri) * absoluteDest, | |||
const URI_TYPE(Uri) * relativeSource, | const URI_TYPE(Uri) * relativeSource, | |||
const URI_TYPE(Uri) * absoluteBase); | const URI_TYPE(Uri) * absoluteBase); | |||
/** | /** | |||
* Performs reference resolution as described in | ||||
* <a href="http://tools.ietf.org/html/rfc3986#section-5.2.2">section 5.2.2 | ||||
of RFC 3986</a>. | ||||
* NOTE: On success you have to call uriFreeUriMembersA on \p absoluteDest | ||||
manually later. | ||||
* | ||||
* @param absoluteDest <b>OUT</b>: Result %URI | ||||
* @param relativeSource <b>IN</b>: Reference to resolve | ||||
* @param absoluteBase <b>IN</b>: Base %URI to apply | ||||
* @param options <b>IN</b>: Configuration to apply | ||||
* @return Error code or 0 on success | ||||
* | ||||
* @see uriRemoveBaseUriA, uriAddBaseUriA | ||||
* @since 0.8.1 | ||||
*/ | ||||
int URI_FUNC(AddBaseUriEx)(URI_TYPE(Uri) * absoluteDest, | ||||
const URI_TYPE(Uri) * relativeSource, | ||||
const URI_TYPE(Uri) * absoluteBase, | ||||
UriResolutionOptions options); | ||||
/** | ||||
* Tries to make a relative %URI (a reference) from an | * Tries to make a relative %URI (a reference) from an | |||
* absolute %URI and a given base %URI. This can only work if | * absolute %URI and a given base %URI. This can only work if | |||
* the absolute %URI shares scheme and authority with | * the absolute %URI shares scheme and authority with | |||
* the base %URI. If it does not the result will still be | * the base %URI. If it does not the result will still be | |||
* an absolute URI (with scheme part if necessary). | * an absolute URI (with scheme part if necessary). | |||
* NOTE: On success you have to call uriFreeUriMembersA on | * NOTE: On success you have to call uriFreeUriMembersA on | |||
* \p dest manually later. | * \p dest manually later. | |||
* | * | |||
* @param dest <b>OUT</b>: Result %URI | * @param dest <b>OUT</b>: Result %URI | |||
* @param absoluteSource <b>IN</b>: Absolute %URI to make relative | * @param absoluteSource <b>IN</b>: Absolute %URI to make relative | |||
* @param absoluteBase <b>IN</b>: Base %URI | * @param absoluteBase <b>IN</b>: Base %URI | |||
* @param domainRootMode <b>IN</b>: Create %URI with path relative to dom ain root | * @param domainRootMode <b>IN</b>: Create %URI with path relative to dom ain root | |||
* @return Error code or 0 on success | * @return Error code or 0 on success | |||
* | * | |||
* @see uriAddBaseUriA | * @see uriAddBaseUriA, uriAddBaseUriExA | |||
* @since 0.5.2 | * @since 0.5.2 | |||
*/ | */ | |||
int URI_FUNC(RemoveBaseUri)(URI_TYPE(Uri) * dest, | int URI_FUNC(RemoveBaseUri)(URI_TYPE(Uri) * dest, | |||
const URI_TYPE(Uri) * absoluteSource, | const URI_TYPE(Uri) * absoluteSource, | |||
const URI_TYPE(Uri) * absoluteBase, | const URI_TYPE(Uri) * absoluteBase, | |||
UriBool domainRootMode); | UriBool domainRootMode); | |||
/** | /** | |||
* Checks two URIs for equivalence. Comparison is done | * Checks two URIs for equivalence. Comparison is done | |||
* the naive way, without prior normalization. | * the naive way, without prior normalization. | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 23 lines changed or added | |||
UriBase.h | UriBase.h | |||
---|---|---|---|---|
skipping to change at line 53 | skipping to change at line 53 | |||
*/ | */ | |||
#ifndef URI_BASE_H | #ifndef URI_BASE_H | |||
#define URI_BASE_H 1 | #define URI_BASE_H 1 | |||
/* Version helper macro */ | /* Version helper macro */ | |||
#define URI_ANSI_TO_UNICODE(x) L##x | #define URI_ANSI_TO_UNICODE(x) L##x | |||
/* Version */ | /* Version */ | |||
#define URI_VER_MAJOR 0 | #define URI_VER_MAJOR 0 | |||
#define URI_VER_MINOR 7 | #define URI_VER_MINOR 8 | |||
#define URI_VER_RELEASE 6 | #define URI_VER_RELEASE 1 | |||
#define URI_VER_SUFFIX_ANSI "" | #define URI_VER_SUFFIX_ANSI "" | |||
#define URI_VER_SUFFIX_UNICODE URI_ANSI_TO_UNICODE(URI_VER_SUFFIX_ANSI) | #define URI_VER_SUFFIX_UNICODE URI_ANSI_TO_UNICODE(URI_VER_SUFFIX_ANSI) | |||
/* More version helper macros */ | /* More version helper macros */ | |||
#define URI_INT_TO_ANSI_HELPER(x) #x | #define URI_INT_TO_ANSI_HELPER(x) #x | |||
#define URI_INT_TO_ANSI(x) URI_INT_TO_ANSI_HELPER(x) | #define URI_INT_TO_ANSI(x) URI_INT_TO_ANSI_HELPER(x) | |||
#define URI_INT_TO_UNICODE_HELPER(x) URI_ANSI_TO_UNICODE(#x) | #define URI_INT_TO_UNICODE_HELPER(x) URI_ANSI_TO_UNICODE(#x) | |||
#define URI_INT_TO_UNICODE(x) URI_INT_TO_UNICODE_HELPER(x) | #define URI_INT_TO_UNICODE(x) URI_INT_TO_UNICODE_HELPER(x) | |||
skipping to change at line 135 | skipping to change at line 135 | |||
} UriIp4; /**< @copydoc UriIp4Struct */ | } UriIp4; /**< @copydoc UriIp4Struct */ | |||
/** | /** | |||
* Holds an IPv6 address. | * Holds an IPv6 address. | |||
*/ | */ | |||
typedef struct UriIp6Struct { | typedef struct UriIp6Struct { | |||
unsigned char data[16]; /**< Each quad in two bytes */ | unsigned char data[16]; /**< Each quad in two bytes */ | |||
} UriIp6; /**< @copydoc UriIp6Struct */ | } UriIp6; /**< @copydoc UriIp6Struct */ | |||
/** | /** | |||
* Specifies a line break conversion mode | * Specifies a line break conversion mode. | |||
*/ | */ | |||
typedef enum UriBreakConversionEnum { | typedef enum UriBreakConversionEnum { | |||
URI_BR_TO_LF, /**< Convert to Unix line breaks ("\\x0a") */ | URI_BR_TO_LF, /**< Convert to Unix line breaks ("\\x0a") */ | |||
URI_BR_TO_CRLF, /**< Convert to Windows line breaks ("\\x0d\\x0a") * / | URI_BR_TO_CRLF, /**< Convert to Windows line breaks ("\\x0d\\x0a") * / | |||
URI_BR_TO_CR, /**< Convert to Macintosh line breaks ("\\x0d") */ | URI_BR_TO_CR, /**< Convert to Macintosh line breaks ("\\x0d") */ | |||
URI_BR_TO_UNIX = URI_BR_TO_LF, /**< @copydoc UriBreakConversionEnum: :URI_BR_TO_LF */ | URI_BR_TO_UNIX = URI_BR_TO_LF, /**< @copydoc UriBreakConversionEnum: :URI_BR_TO_LF */ | |||
URI_BR_TO_WINDOWS = URI_BR_TO_CRLF, /**< @copydoc UriBreakConversion Enum::URI_BR_TO_CRLF */ | URI_BR_TO_WINDOWS = URI_BR_TO_CRLF, /**< @copydoc UriBreakConversion Enum::URI_BR_TO_CRLF */ | |||
URI_BR_TO_MAC = URI_BR_TO_CR, /**< @copydoc UriBreakConversionEnum:: URI_BR_TO_CR */ | URI_BR_TO_MAC = URI_BR_TO_CR, /**< @copydoc UriBreakConversionEnum:: URI_BR_TO_CR */ | |||
URI_BR_DONT_TOUCH /**< Copy line breaks unmodified */ | URI_BR_DONT_TOUCH /**< Copy line breaks unmodified */ | |||
} UriBreakConversion; /**< @copydoc UriBreakConversionEnum */ | } UriBreakConversion; /**< @copydoc UriBreakConversionEnum */ | |||
skipping to change at line 160 | skipping to change at line 160 | |||
typedef enum UriNormalizationMaskEnum { | typedef enum UriNormalizationMaskEnum { | |||
URI_NORMALIZED = 0, /**< Do not normalize anything */ | URI_NORMALIZED = 0, /**< Do not normalize anything */ | |||
URI_NORMALIZE_SCHEME = 1 << 0, /**< Normalize scheme (fix uppercase letters) */ | URI_NORMALIZE_SCHEME = 1 << 0, /**< Normalize scheme (fix uppercase letters) */ | |||
URI_NORMALIZE_USER_INFO = 1 << 1, /**< Normalize user info (fix uppe rcase percent-encodings) */ | URI_NORMALIZE_USER_INFO = 1 << 1, /**< Normalize user info (fix uppe rcase percent-encodings) */ | |||
URI_NORMALIZE_HOST = 1 << 2, /**< Normalize host (fix uppercase lett ers) */ | URI_NORMALIZE_HOST = 1 << 2, /**< Normalize host (fix uppercase lett ers) */ | |||
URI_NORMALIZE_PATH = 1 << 3, /**< Normalize path (fix uppercase perc ent-encodings and redundant dot segments) */ | URI_NORMALIZE_PATH = 1 << 3, /**< Normalize path (fix uppercase perc ent-encodings and redundant dot segments) */ | |||
URI_NORMALIZE_QUERY = 1 << 4, /**< Normalize query (fix uppercase pe rcent-encodings) */ | URI_NORMALIZE_QUERY = 1 << 4, /**< Normalize query (fix uppercase pe rcent-encodings) */ | |||
URI_NORMALIZE_FRAGMENT = 1 << 5 /**< Normalize fragment (fix upperca se percent-encodings) */ | URI_NORMALIZE_FRAGMENT = 1 << 5 /**< Normalize fragment (fix upperca se percent-encodings) */ | |||
} UriNormalizationMask; /**< @copydoc UriNormalizationMaskEnum */ | } UriNormalizationMask; /**< @copydoc UriNormalizationMaskEnum */ | |||
/** | ||||
* Specifies how to resolve %URI references. | ||||
*/ | ||||
typedef enum UriResolutionOptionsEnum { | ||||
URI_RESOLVE_STRICTLY = 0, /**< Full RFC conformance */ | ||||
URI_RESOLVE_IDENTICAL_SCHEME_COMPAT = 1 << 0 /**< Treat %URI to reso | ||||
lve with identical scheme as having no scheme */ | ||||
} UriResolutionOptions; /**< @copydoc UriResolutionOptionsEnum */ | ||||
#endif /* URI_BASE_H */ | #endif /* URI_BASE_H */ | |||
End of changes. 3 change blocks. | ||||
3 lines changed or deleted | 12 lines changed or added | |||