summaryrefslogtreecommitdiff
path: root/content/urldb.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2009-01-31 02:02:01 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2009-01-31 02:02:01 +0000
commit45b222ab500241728ada83db6e126d9bcad2b024 (patch)
treedecb48d77fcf409bb09eb8769a88622a11e172e7 /content/urldb.c
parenta1d409d9224e1e86ac1fd40dcccde8077bc51bae (diff)
downloadnetsurf-45b222ab500241728ada83db6e126d9bcad2b024.tar.gz
netsurf-45b222ab500241728ada83db6e126d9bcad2b024.tar.bz2
Make urldb_dump_paths iterate
svn path=/trunk/netsurf/; revision=6311
Diffstat (limited to 'content/urldb.c')
-rw-r--r--content/urldb.c31
1 files changed, 21 insertions, 10 deletions
diff --git a/content/urldb.c b/content/urldb.c
index 23a150dee..42617985e 100644
--- a/content/urldb.c
+++ b/content/urldb.c
@@ -1998,21 +1998,32 @@ void urldb_dump_hosts(struct host_part *parent)
*/
void urldb_dump_paths(struct path_data *parent)
{
- struct path_data *p;
+ const struct path_data *p = parent;
unsigned int i;
- if (parent->segment) {
- LOG(("\t%s : %u", parent->scheme, parent->port));
+ do {
+ if (p->segment != NULL) {
+ LOG(("\t%s : %u", p->scheme, p->port));
- LOG(("\t\t'%s'", parent->segment));
+ LOG(("\t\t'%s'", p->segment));
- for (i = 0; i != parent->frag_cnt; i++)
- LOG(("\t\t\t#%s", parent->fragment[i]));
- }
+ for (i = 0; i != p->frag_cnt; i++)
+ LOG(("\t\t\t#%s", p->fragment[i]));
+ }
- /* and recurse */
- for (p = parent->children; p; p = p->next)
- urldb_dump_paths(p);
+ if (p->children != NULL) {
+ p = p->children;
+ } else {
+ while (p != parent) {
+ if (p->next != NULL) {
+ p = p->next;
+ break;
+ }
+
+ p = p->parent;
+ }
+ }
+ } while (p != parent);
}
/**