summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/nsurl.h18
-rw-r--r--utils/nsurl/nsurl.c13
2 files changed, 31 insertions, 0 deletions
diff --git a/utils/nsurl.h b/utils/nsurl.h
index 054baf26b..bc6e910a6 100644
--- a/utils/nsurl.h
+++ b/utils/nsurl.h
@@ -181,6 +181,24 @@ const char *nsurl_access(const nsurl *url);
/**
+ * Variant of \ref nsurl_access for logging.
+ *
+ * \param url NetSurf URL to retrieve a string pointer for.
+ * \return the required string
+ *
+ * This will not necessarily return the actual nsurl's URL, but something
+ * that is suitable for recording to logs. E.g. URLs with the `data` scheme
+ * will return a simple place holder, to avoid repeatedly dumping loads of data.
+ *
+ * The returned string is owned by the NetSurf URL object. It will die
+ * with the NetSurf URL object. Keep a reference to the URL if you need it.
+ *
+ * The returned string has a trailing '\0'.
+ */
+const char *nsurl_access_log(const nsurl *url);
+
+
+/**
* Get a UTF-8 string (for human readable IDNs) from a NetSurf URL object
*
* \param url NetSurf URL object
diff --git a/utils/nsurl/nsurl.c b/utils/nsurl/nsurl.c
index 8c769cfff..f197d6dde 100644
--- a/utils/nsurl/nsurl.c
+++ b/utils/nsurl/nsurl.c
@@ -316,6 +316,19 @@ const char *nsurl_access(const nsurl *url)
/* exported interface, documented in nsurl.h */
+const char *nsurl_access_log(const nsurl *url)
+{
+ assert(url != NULL);
+
+ if (url->components.scheme_type == NSURL_SCHEME_DATA) {
+ return "[data url]";
+ }
+
+ return url->string;
+}
+
+
+/* exported interface, documented in nsurl.h */
nserror nsurl_get_utf8(const nsurl *url, char **url_s, size_t *url_l)
{
nserror err;