Commit Diff


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;