From 45b222ab500241728ada83db6e126d9bcad2b024 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sat, 31 Jan 2009 02:02:01 +0000 Subject: Make urldb_dump_paths iterate svn path=/trunk/netsurf/; revision=6311 --- content/urldb.c | 31 +++++++++++++++++++++---------- 1 file 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); } /** -- cgit v1.2.3