Index: src/url_util.h |
=================================================================== |
--- src/url_util.h (revision 137) |
+++ src/url_util.h (working copy) |
@@ -33,6 +33,7 @@ |
#include <string> |
#include "base/string16.h" |
+#include "googleurl/src/url_common.h" |
#include "googleurl/src/url_parse.h" |
#include "googleurl/src/url_canon.h" |
@@ -51,13 +52,13 @@ |
// "noop", unless Shutdown() was called in the mean time. This will also be a |
// "noop" if other calls to the library have forced an initialization |
// beforehand. |
-void Initialize(); |
+GURL_API void Initialize(); |
// Cleanup is not required, except some strings may leak. For most user |
// applications, this is fine. If you're using it in a library that may get |
// loaded and unloaded, you'll want to unload to properly clean up your |
// library. |
-void Shutdown(); |
+GURL_API void Shutdown(); |
// Schemes -------------------------------------------------------------------- |
@@ -65,7 +66,7 @@ |
// schemes. This function is not threadsafe and can not be called concurrently |
// with any other url_util function. It will assert if the list of standard |
// schemes has been locked (see LockStandardSchemes). |
-void AddStandardScheme(const char* new_scheme); |
+GURL_API void AddStandardScheme(const char* new_scheme); |
// Sets a flag to prevent future calls to AddStandardScheme from succeeding. |
// |
@@ -79,7 +80,7 @@ |
// We could have had AddStandardScheme use a lock instead, but that would add |
// some platform-specific dependencies we don't otherwise have now, and is |
// overkill considering the normal usage is so simple. |
-void LockStandardSchemes(); |
+GURL_API void LockStandardSchemes(); |
// Locates the scheme in the given string and places it into |found_scheme|, |
// which may be NULL to indicate the caller does not care about the range. |
@@ -87,14 +88,14 @@ |
// Returns whether the given |compare| scheme matches the scheme found in the |
// input (if any). The |compare| scheme must be a valid canonical scheme or |
// the result of the comparison is undefined. |
-bool FindAndCompareScheme(const char* str, |
- int str_len, |
- const char* compare, |
- url_parse::Component* found_scheme); |
-bool FindAndCompareScheme(const char16* str, |
- int str_len, |
- const char* compare, |
- url_parse::Component* found_scheme); |
+GURL_API bool FindAndCompareScheme(const char* str, |
+ int str_len, |
+ const char* compare, |
+ url_parse::Component* found_scheme); |
+GURL_API bool FindAndCompareScheme(const char16* str, |
+ int str_len, |
+ const char* compare, |
+ url_parse::Component* found_scheme); |
inline bool FindAndCompareScheme(const std::string& str, |
const char* compare, |
url_parse::Component* found_scheme) { |
@@ -110,8 +111,10 @@ |
// Returns true if the given string represents a standard URL. This means that |
// either the scheme is in the list of known standard schemes. |
-bool IsStandard(const char* spec, const url_parse::Component& scheme); |
-bool IsStandard(const char16* spec, const url_parse::Component& scheme); |
+GURL_API bool IsStandard(const char* spec, |
+ const url_parse::Component& scheme); |
+GURL_API bool IsStandard(const char16* spec, |
+ const url_parse::Component& scheme); |
// TODO(brettw) remove this. This is a temporary compatibility hack to avoid |
// breaking the WebKit build when this version is synced via Chrome. |
@@ -132,16 +135,16 @@ |
// Returns true if a valid URL was produced, false if not. On failure, the |
// output and parsed structures will still be filled and will be consistent, |
// but they will not represent a loadable URL. |
-bool Canonicalize(const char* spec, |
- int spec_len, |
- url_canon::CharsetConverter* charset_converter, |
- url_canon::CanonOutput* output, |
- url_parse::Parsed* output_parsed); |
-bool Canonicalize(const char16* spec, |
- int spec_len, |
- url_canon::CharsetConverter* charset_converter, |
- url_canon::CanonOutput* output, |
- url_parse::Parsed* output_parsed); |
+GURL_API bool Canonicalize(const char* spec, |
+ int spec_len, |
+ url_canon::CharsetConverter* charset_converter, |
+ url_canon::CanonOutput* output, |
+ url_parse::Parsed* output_parsed); |
+GURL_API bool Canonicalize(const char16* spec, |
+ int spec_len, |
+ url_canon::CharsetConverter* charset_converter, |
+ url_canon::CanonOutput* output, |
+ url_parse::Parsed* output_parsed); |
// Resolves a potentially relative URL relative to the given parsed base URL. |
// The base MUST be valid. The resulting canonical URL and parsed information |
@@ -153,41 +156,43 @@ |
// |
// Returns true if the output is valid, false if the input could not produce |
// a valid URL. |
-bool ResolveRelative(const char* base_spec, |
- int base_spec_len, |
- const url_parse::Parsed& base_parsed, |
- const char* relative, |
- int relative_length, |
- url_canon::CharsetConverter* charset_converter, |
- url_canon::CanonOutput* output, |
- url_parse::Parsed* output_parsed); |
-bool ResolveRelative(const char* base_spec, |
- int base_spec_len, |
- const url_parse::Parsed& base_parsed, |
- const char16* relative, |
- int relative_length, |
- url_canon::CharsetConverter* charset_converter, |
- url_canon::CanonOutput* output, |
- url_parse::Parsed* output_parsed); |
+GURL_API bool ResolveRelative(const char* base_spec, |
+ int base_spec_len, |
+ const url_parse::Parsed& base_parsed, |
+ const char* relative, |
+ int relative_length, |
+ url_canon::CharsetConverter* charset_converter, |
+ url_canon::CanonOutput* output, |
+ url_parse::Parsed* output_parsed); |
+GURL_API bool ResolveRelative(const char* base_spec, |
+ int base_spec_len, |
+ const url_parse::Parsed& base_parsed, |
+ const char16* relative, |
+ int relative_length, |
+ url_canon::CharsetConverter* charset_converter, |
+ url_canon::CanonOutput* output, |
+ url_parse::Parsed* output_parsed); |
// Replaces components in the given VALID input url. The new canonical URL info |
// is written to output and out_parsed. |
// |
// Returns true if the resulting URL is valid. |
-bool ReplaceComponents(const char* spec, |
- int spec_len, |
- const url_parse::Parsed& parsed, |
- const url_canon::Replacements<char>& replacements, |
- url_canon::CharsetConverter* charset_converter, |
- url_canon::CanonOutput* output, |
- url_parse::Parsed* out_parsed); |
-bool ReplaceComponents(const char* spec, |
- int spec_len, |
- const url_parse::Parsed& parsed, |
- const url_canon::Replacements<char16>& replacements, |
- url_canon::CharsetConverter* charset_converter, |
- url_canon::CanonOutput* output, |
- url_parse::Parsed* out_parsed); |
+GURL_API bool ReplaceComponents( |
+ const char* spec, |
+ int spec_len, |
+ const url_parse::Parsed& parsed, |
+ const url_canon::Replacements<char>& replacements, |
+ url_canon::CharsetConverter* charset_converter, |
+ url_canon::CanonOutput* output, |
+ url_parse::Parsed* out_parsed); |
+GURL_API bool ReplaceComponents( |
+ const char* spec, |
+ int spec_len, |
+ const url_parse::Parsed& parsed, |
+ const url_canon::Replacements<char16>& replacements, |
+ url_canon::CharsetConverter* charset_converter, |
+ url_canon::CanonOutput* output, |
+ url_parse::Parsed* out_parsed); |
// String helper functions ---------------------------------------------------- |
@@ -197,17 +202,21 @@ |
// |
// The versions of this function that don't take a b_end assume that the b |
// string is NULL terminated. |
-bool LowerCaseEqualsASCII(const char* a_begin, |
- const char* a_end, |
- const char* b); |
-bool LowerCaseEqualsASCII(const char* a_begin, |
- const char* a_end, |
- const char* b_begin, |
- const char* b_end); |
-bool LowerCaseEqualsASCII(const char16* a_begin, |
- const char16* a_end, |
- const char* b); |
+GURL_API bool LowerCaseEqualsASCII(const char* a_begin, |
+ const char* a_end, |
+ const char* b); |
+GURL_API bool LowerCaseEqualsASCII(const char* a_begin, |
+ const char* a_end, |
+ const char* b_begin, |
+ const char* b_end); |
+GURL_API bool LowerCaseEqualsASCII(const char16* a_begin, |
+ const char16* a_end, |
+ const char* b); |
+// Unescapes the given string using URL escaping rules. |
+GURL_API void DecodeURLEscapeSequences(const char* input, int length, |
+ url_canon::CanonOutputW* output); |
+ |
} // namespace url_util |
#endif // GOOGLEURL_SRC_URL_UTIL_H__ |