diff --git a/content/urldb.c b/content/urldb.c index 5cc56d26c..05c97c6ac 100644 --- a/content/urldb.c +++ b/content/urldb.c @@ -1375,15 +1375,19 @@ bool urldb_iterate_entries_path(const struct path_data *parent, * attached to them. If this is not the case, it indicates * that there's a bug in the file loader/URL insertion code. * Therefore, assert this here. */ - assert(parent->url || parent->cookies); + assert(url_callback || cookie_callback); /** \todo handle fragments? */ - if (url_callback && parent->url && !url_callback(parent->url, - (const struct url_data *) &parent->urld)) - return false; - if (cookie_callback && parent->cookies && !cookie_callback( - (const struct cookie_data *) parent->cookies)) - return false; + if (url_callback) { + assert(parent->url); + if (!url_callback(parent->url, + (const struct url_data *) &parent->urld)) + return false; + } else { + if (parent->cookies && !cookie_callback( + (const struct cookie_data *) parent->cookies)) + return false; + } } for (p = parent->children; p; p = p->next) { diff --git a/riscos/url_complete.c b/riscos/url_complete.c index 72a1e4071..cd7e932f5 100644 --- a/riscos/url_complete.c +++ b/riscos/url_complete.c @@ -177,7 +177,10 @@ bool ro_gui_url_complete_keypress(struct gui_window *g, int key) /* find matches */ url_complete_memory_exhausted = false; - urldb_iterate_partial(match_url, url_complete_callback); + if (strlen(match_url) == 0) + urldb_iterate_entries(url_complete_callback); + else + urldb_iterate_partial(match_url, url_complete_callback); if (url_complete_memory_exhausted) { ro_gui_url_complete_close(NULL, 0); return false;