nsurl: Make nusrl component dump more usable.

This is only a development aid, and not something that should
be called in production.
This commit is contained in:
Michael Drake 2020-03-11 11:02:40 +00:00
parent 2c549b28fb
commit 7d06021e21
3 changed files with 44 additions and 45 deletions

View File

@ -369,4 +369,14 @@ nserror nsurl_nice(const nsurl *url, char **result, bool remove_extensions);
*/
nserror nsurl_parent(const nsurl *url, nsurl **new_url);
/**
* Dump a NetSurf URL's internal components to stderr
*
* This is helper functionality for developers, and shouldn't be called
* generally.
*
* \param url The NetSurf URL to dump components of
*/
void nsurl_dump(const nsurl *url);
#endif

View File

@ -36,6 +36,7 @@
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include <inttypes.h>
#include "utils/ascii.h"
#include "utils/corestrings.h"
@ -955,3 +956,36 @@ nserror nsurl_parent(const nsurl *url, nsurl **new_url)
return NSERROR_OK;
}
/* exported interface, documented in nsurl.h */
void nsurl_dump(const nsurl *url)
{
fprintf(stderr, "nsurl components for %p "
"(refs: %i hash: %"PRIx32"):\n",
url, url->count, url->hash);
if (url->components.scheme)
fprintf(stderr, " Scheme: %s\n",
lwc_string_data(url->components.scheme));
if (url->components.username)
fprintf(stderr, "Username: %s\n",
lwc_string_data(url->components.username));
if (url->components.password)
fprintf(stderr, "Password: %s\n",
lwc_string_data(url->components.password));
if (url->components.host)
fprintf(stderr, " Host: %s\n",
lwc_string_data(url->components.host));
if (url->components.port)
fprintf(stderr, " Port: %s\n",
lwc_string_data(url->components.port));
if (url->components.path)
fprintf(stderr, " Path: %s\n",
lwc_string_data(url->components.path));
if (url->components.query)
fprintf(stderr, " Query: %s\n",
lwc_string_data(url->components.query));
if (url->components.fragment)
fprintf(stderr, "Fragment: %s\n",
lwc_string_data(url->components.fragment));
}

View File

@ -174,49 +174,4 @@ static inline void nsurl__components_destroy(struct nsurl_components *c)
lwc_string_unref(c->fragment);
}
#ifdef NSURL_DEBUG
/**
* Dump a NetSurf URL's internal components
*
* \param url The NetSurf URL to dump components of
*/
static inline void nsurl__dump(const nsurl *url)
{
if (url->components.scheme)
NSLOG(netsurf, DEEPDEBUG, " Scheme: %s",
lwc_string_data(url->components.scheme));
if (url->components.username)
NSLOG(netsurf, DEEPDEBUG, "Username: %s",
lwc_string_data(url->components.username));
if (url->components.password)
NSLOG(netsurf, DEEPDEBUG, "Password: %s",
lwc_string_data(url->components.password));
if (url->components.host)
NSLOG(netsurf, DEEPDEBUG, " Host: %s",
lwc_string_data(url->components.host));
if (url->components.port)
NSLOG(netsurf, DEEPDEBUG, " Port: %s",
lwc_string_data(url->components.port));
if (url->components.path)
NSLOG(netsurf, DEEPDEBUG, " Path: %s",
lwc_string_data(url->components.path));
if (url->components.query)
NSLOG(netsurf, DEEPDEBUG, " Query: %s",
lwc_string_data(url->components.query));
if (url->components.fragment)
NSLOG(netsurf, DEEPDEBUG, "Fragment: %s",
lwc_string_data(url->components.fragment));
}
#endif
#endif