commit 2f0ffab47b34449e9e24a05e408e9d6983b24ba8 from: Omar Polo date: Sat Jun 22 21:38:12 2024 UTC prompt before opening the downloads commit - 057e7eb6f1bc703a5d90e6ca41a5506008b850e9 commit + 2f0ffab47b34449e9e24a05e408e9d6983b24ba8 blob - 55e409f587dd8e950bd3e92ff391b43de995028d blob + 8d99448e05f0635c4fb2697c80b760e1ef89441a --- downloads.c +++ downloads.c @@ -119,5 +119,5 @@ download_finished(struct download *d) d->fd = -1; ui_on_download_refresh(); - ui_prompt_download_cmd(d->path, d->mime_type); + ui_prompt_download_cmd(d); } blob - b3aac44246bce82d209ffde2fc02cfe429b21132 blob + 3d80b3f3f90db230627a5809a6ffa98ec5f41a27 --- ui.c +++ ui.c @@ -1257,20 +1257,33 @@ ui_on_download_refresh(void) handle_download_refresh, NULL); } -void -ui_prompt_download_cmd(char *path, char *mime_type) +static void +open_download(int res, void *data) { + struct download *d = data; struct mailcap *mc = NULL; enum exec_mode mode = EXEC_BACKGROUND; - if ((mc = mailcap_cmd_from_mimetype(mime_type, path)) == NULL) + if (!res) return; + if ((mc = mailcap_cmd_from_mimetype(d->mime_type, d->path)) == NULL) + return; + if (mc->flags & MAILCAP_NEEDSTERMINAL) mode = EXEC_FOREGROUND; - message("Loaded %s with %s", mime_type, mc->cmd_argv[0]); + message("Loaded %s with %s", d->mime_type, mc->cmd_argv[0]); exec_external_cmd(mc->cmd_argv, mode); +} + +void +ui_prompt_download_cmd(struct download *d) +{ + char prompt[64]; + + snprintf(prompt, sizeof(prompt), "Open %s?", d->path); + ui_yornp(prompt, open_download, d); } void blob - b8bcbd9cefc98b72e3145e0b46cbf84318f07f98 blob + 455b6a9408c7281563c1328d29f58ce38f0fe0d7 --- ui.h +++ ui.h @@ -145,7 +145,7 @@ void ui_main_loop(void); void ui_on_tab_loaded(struct tab *); void ui_on_tab_refresh(struct tab *); void ui_on_download_refresh(void); -void ui_prompt_download_cmd(char *, char *); +void ui_prompt_download_cmd(struct download *); void ui_remotely_open_link(const char *); const char *ui_keyname(int); void ui_toggle_side_window(int);