commit b35751391b2c524617ef856ea156f44b4ab68972 from: Omar Polo date: Thu Apr 01 09:47:35 2021 UTC switch yornp_cb data back to an unsigned int it bothers me to keep alive a pointer inside a struct tab. commit - e9b1e094d42a3cce09ea7029ca82b298d44da261 commit + b35751391b2c524617ef856ea156f44b4ab68972 blob - 4df53b9b15288038037f8c6d5a78591df9712e09 blob + ba5e9868bb4d161ad5292766dc2b1f9c82165314 --- telescope.c +++ telescope.c @@ -25,7 +25,7 @@ static void die(void) __attribute__((__noreturn__)); static struct tab *tab_by_id(uint32_t); static void handle_imsg_err(struct imsg*, size_t); static void handle_imsg_check_cert(struct imsg*, size_t); -static void handle_check_cert_user_choice(int, void*); +static void handle_check_cert_user_choice(int, unsigned int); static void handle_imsg_got_code(struct imsg*, size_t); static void handle_imsg_got_meta(struct imsg*, size_t); static void handle_imsg_buf(struct imsg*, size_t); @@ -128,15 +128,13 @@ handle_imsg_check_cert(struct imsg *imsg, size_t datal tab->trust = TS_UNTRUSTED; load_page_from_str(tab, "# Certificate mismatch\n"); ui_yornp("Certificate mismatch. Proceed?", - handle_check_cert_user_choice, &tab->id); + handle_check_cert_user_choice, tab->id); } } static void -handle_check_cert_user_choice(int accept, void *d) +handle_check_cert_user_choice(int accept, unsigned int tabid) { - unsigned int tabid = *(unsigned int*)d; - imsg_compose(netibuf, IMSG_CERT_STATUS, tabid, 0, -1, &accept, sizeof(accept)); imsg_flush(netibuf); blob - f655701a0218a729095cb36427b2c787a3dda7b6 blob + dd7cfaf2e219ffbf7cb333bcd9c10b7e595cc1de --- telescope.h +++ telescope.h @@ -256,7 +256,7 @@ int ui_init(int, char * const*); void ui_on_tab_loaded(struct tab*); void ui_on_tab_refresh(struct tab*); void ui_require_input(struct tab*, int); -void ui_yornp(const char*, void (*)(int, void*), void*); +void ui_yornp(const char*, void (*)(int, unsigned int), unsigned int); void ui_notify(const char*, ...) __attribute__((format(printf, 1, 2))); void ui_end(void); blob - c0554c6ea45fbf875d2f309a526aec8be7868885 blob + 32f7475b9f1abca38940609a096cb66cf8907002 --- ui.c +++ ui.c @@ -169,8 +169,8 @@ static uint32_t tab_counter; static char keybuf[64]; -static void (*yornp_cb)(int, void*); -static void *yornp_data; +static void (*yornp_cb)(int, unsigned int); +static unsigned int yornp_data; struct kmap global_map, minibuffer_map, @@ -1145,7 +1145,6 @@ yornp_self_insert(void) } yornp_cb(thiskey.key == 'y', yornp_data); - yornp_data = NULL; exit_minibuffer(); } @@ -1153,7 +1152,6 @@ static void yornp_abort(void) { yornp_cb(0, yornp_data); - yornp_data = NULL; exit_minibuffer(); } @@ -2029,7 +2027,8 @@ ui_require_input(struct tab *tab, int hide) } void -ui_yornp(const char *prompt, void (*fn)(int, void*), void *data) +ui_yornp(const char *prompt, void (*fn)(int, unsigned int), + unsigned int data) { size_t len;