summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/nsurl.c59
-rw-r--r--utils/nsurl.h22
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.