commit - 057e7eb6f1bc703a5d90e6ca41a5506008b850e9
commit + 2f0ffab47b34449e9e24a05e408e9d6983b24ba8
blob - 55e409f587dd8e950bd3e92ff391b43de995028d
blob + 8d99448e05f0635c4fb2697c80b760e1ef89441a
--- downloads.c
+++ downloads.c
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
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
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);