summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2011-09-26 13:27:20 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2011-09-26 13:27:20 +0000
commit38caddcf934f3378613a8a81d2163abe5cb84544 (patch)
tree3b96cf7bf12a55ef10aa5ff902cd34eb36e4523c /utils
parentdc53b47e0b21d0666e5900f0908628da3e01f3cc (diff)
downloadnetsurf-38caddcf934f3378613a8a81d2163abe5cb84544.tar.gz
netsurf-38caddcf934f3378613a8a81d2163abe5cb84544.tar.bz2
Add means to find out if a NetSurf URL object contains a given component.
svn path=/trunk/netsurf/; revision=12883
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.