Add means to find out if a NetSurf URL object contains a given component.

svn path=/trunk/netsurf/; revision=12883
This commit is contained in:
Michael Drake 2011-09-26 13:27:20 +00:00
parent dc53b47e0b
commit 38caddcf93
2 changed files with 81 additions and 0 deletions

View File

@ -1181,6 +1181,65 @@ nserror nsurl_get(const nsurl *url, nsurl_component parts,
}
/* exported interface, documented in nsurl.h */
bool nsurl_enquire(const nsurl *url, nsurl_component part)
{
assert(url != NULL);
if (part == NSURL_SCHEME) {
if (url->scheme != NULL)
return true;
else
return false;
} else if (part == NSURL_QUERY) {
if (url->query != NULL)
return true;
else
return false;
} else if (part == NSURL_USERNAME || part == NSURL_CREDENTIALS) {
if (url->username != NULL)
return true;
else
return false;
} else if (part == NSURL_PASSWORD) {
if (url->password != NULL)
return true;
else
return false;
} else if (part == NSURL_HOST) {
if (url->host != NULL)
return true;
else
return false;
} else if (part == NSURL_PORT) {
if (url->port != NULL)
return true;
else
return false;
} else if (part == NSURL_PATH) {
if (url->path != NULL)
return true;
else
return false;
} else if (part == NSURL_FRAGMENT) {
if (url->fragment != NULL)
return true;
else
return false;
}
LOG(("Unsupported value passed to part param."));
assert(0);
}
/* exported interface, documented in nsurl.h */
const char *nsurl_access(const nsurl *url)
{

View File

@ -124,6 +124,28 @@ nserror nsurl_get(const nsurl *url, nsurl_component parts,
char **url_s, size_t *url_l);
/**
* Enquire about the existence of componenets in a given URL
*
* \param url NetSurf URL object
* \param part The URL components confirm existence of
* \return true iff the component in question exists in url
*
* The valid values for the part parameter are:
* NSURL_SCHEME
* NSURL_USERNAME
* NSURL_PASSWORD
* NSURL_CREDENTIALS
* NSURL_HOST
* NSURL_PORT
* NSURL_AUTHORITY
* NSURL_PATH
* NSURL_QUERY
* NSURL_FRAGMENT
*/
bool nsurl_enquire(const nsurl *url, nsurl_component part);
/**
* Access a NetSurf URL object as a string
*