+ height = pad_height(sysinfo ? sysinfo->n_blockdevs : 0);
+
+ if (!boot_editor->pad || getmaxy(boot_editor->pad) < height) {
+ if (boot_editor->pad)
+ delwin(boot_editor->pad);
+ boot_editor->pad = newpad(height, COLS);
+ }
+
+ if (boot_editor->widgetset) {
+ widgetset_unpost(boot_editor->widgetset);
+ talloc_free(boot_editor->widgetset);
+ repost = true;
+ }
+
+ boot_editor->widgetset = widgetset_create(boot_editor,
+ boot_editor->scr.main_ncw,
+ boot_editor->pad);
+ widgetset_set_widget_focus(boot_editor->widgetset,
+ boot_editor_widget_focus, boot_editor);
+
+ boot_editor_setup_widgets(boot_editor, sysinfo);
+ boot_editor_layout_widgets(boot_editor);
+
+ if (repost)
+ widgetset_post(boot_editor->widgetset);
+}
+
+void boot_editor_update(struct boot_editor *boot_editor,
+ const struct system_info *sysinfo)
+{
+ const char *str;
+