int show_trashes_menu(FileView *view, int calc_size) { char **trashes; int ntrashes; int i; static menu_data_t m; init_menu_data(&m, view, format_str("%sNon-empty trash directories", calc_size ? "[ size] " : ""), strdup("No non-empty trash directories found")); m.execute_handler = &execute_trashes_cb; m.key_handler = &trashes_khandler; m.extra_data = calc_size; trashes = list_trashes(&ntrashes); show_progress(NULL, 0); for(i = 0; i < ntrashes; i++) { char *const item = format_item(trashes[i], calc_size); m.len = put_into_string_array(&m.items, m.len, item); } free_string_array(trashes, ntrashes); return display_menu(m.state, view); }
int show_register_menu(FileView *view, const char registers[]) { static menu_data_t m; init_menu_data(&m, view, strdup("Registers"), strdup("Registers are empty")); m.items = regs_list(registers); while(m.items[m.len] != NULL) { ++m.len; } return display_menu(m.state, view); }
int show_cabbrevs_menu(FileView *view) { void *state; const wchar_t *lhs, *rhs; int no_remap; static menu_data_t m; init_menu_data(&m, view, strdup("Abbreviation -- N -- Replacement"), strdup("No abbreviation set")); m.key_handler = &commands_khandler; state = NULL; while(vle_abbr_iter(&lhs, &rhs, &no_remap, &state)) { char *const descr = describe_abbrev(lhs, rhs, no_remap, 2); m.len = put_into_string_array(&m.items, m.len, descr); } return display_menu(m.state, view); }
int show_trash_menu(FileView *view) { int i; static menu_data_t m; init_menu_data(&m, view, strdup("Original paths of files in trash"), strdup("No files in trash")); m.key_handler = &trash_khandler; trash_prune_dead_entries(); for(i = 0; i < nentries; ++i) { const trash_entry_t *const entry = &trash_list[i]; if(is_under_trash(entry->trash_name)) { m.len = add_to_string_array(&m.items, m.len, 1, entry->path); } } return display_menu(m.state, view); }