summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2009-01-31 03:03:50 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2009-01-31 03:03:50 +0000
commit6a0a7c346a40f87fba42421d49dc372e33658990 (patch)
treee4dc53c43cd82f8c051c72274e7dc8b23ff0d3a1
parente2ebfb72f7f66deae6571f7575ec6d25a4f6981c (diff)
downloadnetsurf-6a0a7c346a40f87fba42421d49dc372e33658990.tar.gz
netsurf-6a0a7c346a40f87fba42421d49dc372e33658990.tar.bz2
Let's try that again. Now actually passes the regression tests.
svn path=/trunk/netsurf/; revision=6317
-rw-r--r--content/urldb.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/content/urldb.c b/content/urldb.c
index 93d9879ce..9e5c45ac1 100644
--- a/content/urldb.c
+++ b/content/urldb.c
@@ -1905,17 +1905,13 @@ struct path_data *urldb_match_path(const struct path_data *parent,
const char *slash;
assert(parent != NULL);
+ assert(parent->segment == NULL);
assert(path[0] == '/');
- /* Skip past leading / */
- path++;
- /* And start with children, as parent has no segment */
+ /* Start with children, as parent has no segment */
p = parent->children;
while (p != NULL) {
- if (*path == '\0')
- return (struct path_data *) p;
-
slash = strchr(path + 1, '/');
if (!slash)
slash = path + strlen(path);
@@ -1923,6 +1919,11 @@ struct path_data *urldb_match_path(const struct path_data *parent,
if (strncmp(p->segment, path + 1, slash - path - 1) == 0 &&
strcmp(p->scheme, scheme) == 0 &&
p->port == port) {
+ if (*slash == '\0') {
+ /* Complete match */
+ return (struct path_data *) p;
+ }
+
/* Match so far, go down tree */
p = p->children;