commit 693188cbff678ee0934f5fe5da91365614864888 from: Omar Polo date: Mon Feb 07 16:08:20 2022 UTC ui_require_input: take a fn pointer instead of the protocol number commit - 98b6dee90d3fd7300cc834972decd2c123af999c commit + 693188cbff678ee0934f5fe5da91365614864888 blob - 5662481216175398fd6fab6157e02e1886a1b674 blob + 473b28c04befb9e50c13079a38f6d0453493302c --- telescope.c +++ telescope.c @@ -401,7 +401,7 @@ handle_imsg_got_meta(struct imsg *imsg, size_t datalen load_page_from_str(tab, err_pages[tab->code]); } else if (tab->code < 20) { /* 1x */ load_page_from_str(tab, err_pages[tab->code]); - ui_require_input(tab, tab->code == 11, PROTO_GEMINI); + ui_require_input(tab, tab->code == 11, ir_select_gemini); } else if (tab->code == 20) { if (setup_parser_for(tab)) { ui_send_net(IMSG_PROCEED, tab->id, NULL, 0); @@ -803,7 +803,7 @@ load_gopher_url(struct tab *tab, const char *url) parser_init(tab, gophermap_initparser); break; case '7': - ui_require_input(tab, 0, PROTO_GOPHER); + ui_require_input(tab, 0, ir_select_gopher); return load_page_from_str(tab, err_pages[10]); default: return load_page_from_str(tab, "Unknown gopher selector"); blob - ea9e15f47d366cdbcbcd3288ee9124aeb1f67d58 blob + f33ac6e2ff2d8ffd5124950f2834896f3c0b6478 --- ui.c +++ ui.c @@ -1284,17 +1284,8 @@ ui_schedule_redraw(void) } void -ui_require_input(struct tab *tab, int hide, int proto) +ui_require_input(struct tab *tab, int hide, void (*fn)(void)) { - void (*fn)(void); - - if (proto == PROTO_GEMINI) - fn = ir_select_gemini; - else if (proto == PROTO_GOPHER) - fn = ir_select_gopher; - else - abort(); - /* TODO: hard-switching to another tab is ugly */ switch_to_tab(tab); blob - b6e87ce4f0479d0e29d024e4e875df0e36469954 blob + fc246f83cadcb8f31f2b8a7fb2de68b04cd61937 --- ui.h +++ ui.h @@ -154,7 +154,7 @@ void ui_toggle_side_window(int); void ui_show_downloads_pane(void); void ui_schedule_redraw(void); void ui_after_message_hook(void); -void ui_require_input(struct tab *, int, int); +void ui_require_input(struct tab *, int, void (*)(void)); void ui_yornp(const char *, void (*)(int, struct tab *), struct tab *); void ui_read(const char *, void (*)(const char *, struct tab *), struct tab *, const char *); void ui_other_window(void);