diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2009-01-31 02:02:01 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2009-01-31 02:02:01 +0000 |
commit | 45b222ab500241728ada83db6e126d9bcad2b024 (patch) | |
tree | decb48d77fcf409bb09eb8769a88622a11e172e7 | |
parent | a1d409d9224e1e86ac1fd40dcccde8077bc51bae (diff) | |
download | netsurf-45b222ab500241728ada83db6e126d9bcad2b024.tar.gz netsurf-45b222ab500241728ada83db6e126d9bcad2b024.tar.bz2 |
Make urldb_dump_paths iterate
svn path=/trunk/netsurf/; revision=6311
-rw-r--r-- | content/urldb.c | 31 |
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); } /** |