diff options
Diffstat (limited to 'utils')
-rw-r--r-- | utils/nsurl.c | 59 | ||||
-rw-r--r-- | utils/nsurl.h | 22 |
2 files changed, 81 insertions, 0 deletions
diff --git a/utils/nsurl.c b/utils/nsurl.c index 6c51609f5..0c4d1ee07 100644 --- a/utils/nsurl.c +++ b/utils/nsurl.c @@ -1182,6 +1182,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) { assert(url != NULL); diff --git a/utils/nsurl.h b/utils/nsurl.h index ac62c7ced..fe29c2f1d 100644 --- a/utils/nsurl.h +++ b/utils/nsurl.h @@ -125,6 +125,28 @@ nserror nsurl_get(const nsurl *url, nsurl_component parts, /** + * 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 * * \param url NetSurf URL to retrieve a string pointer for. |