1
0
mirror of https://github.com/rkd77/elinks.git synced 2025-02-02 15:09:23 -05:00

Factor recursively_goto_listbox out of recursively_goto_each_listbox.

This commit is contained in:
Miciah Dashiel Butler Masters 2006-01-01 03:02:01 +00:00 committed by Miciah Dashiel Butler Masters
parent a4209b02fe
commit 6aed6ff96f

View File

@ -441,6 +441,28 @@ push_hierbox_info_button(struct dialog_data *dlg_data, struct widget_data *butto
/* Goto action */
static void recursively_goto_each_listbox(struct session *ses,
struct listbox_item *root,
struct listbox_data *box);
static void
recursively_goto_listbox(struct session *ses, struct listbox_item *item,
struct listbox_data *box)
{
if (item->type == BI_FOLDER) {
recursively_goto_each_listbox(ses, item, box);
return;
} else if (item->type == BI_LEAF) {
struct uri *uri = box->ops->get_uri(item);
if (!uri) return;
open_uri_in_new_tab(ses, uri, 1, 0);
done_uri(uri);
}
}
static void
recursively_goto_each_listbox(struct session *ses, struct listbox_item *root,
struct listbox_data *box)
@ -448,18 +470,7 @@ recursively_goto_each_listbox(struct session *ses, struct listbox_item *root,
struct listbox_item *item;
foreach (item, root->child) {
if (item->type == BI_FOLDER) {
recursively_goto_each_listbox(ses, item, box);
continue;
} else if (item->type == BI_LEAF) {
struct uri *uri = box->ops->get_uri(item);
if (!uri) continue;
open_uri_in_new_tab(ses, uri, 1, 0);
done_uri(uri);
}
recursively_goto_listbox(ses, item, box);
}
}
@ -472,18 +483,7 @@ goto_marked(struct listbox_item *item, void *data_, int *offset)
struct session *ses = context->dlg_data->dlg->udata;
struct listbox_data *box = context->box;
if (item->type == BI_FOLDER) {
recursively_goto_each_listbox(ses, item, box);
return 0;
} else if (item->type == BI_LEAF) {
struct uri *uri = box->ops->get_uri(item);
if (!uri) return 0;
open_uri_in_new_tab(ses, uri, 1, 0);
done_uri(uri);
}
recursively_goto_listbox(ses, item, box);
}
return 0;