Add -e flag to set environment for popup, from Alexis Hildebrandt in

GitHub issue 2924.
This commit is contained in:
nicm
2021-10-11 10:55:30 +00:00
parent 7800a431ea
commit 759efe1b33
9 changed files with 48 additions and 21 deletions

View File

@ -590,8 +590,9 @@ popup_job_complete_cb(struct job *job)
int
popup_display(int flags, struct cmdq_item *item, u_int px, u_int py, u_int sx,
u_int sy, const char *shellcmd, int argc, char **argv, const char *cwd,
struct client *c, struct session *s, popup_close_cb cb, void *arg)
u_int sy, struct environ *env, const char *shellcmd, int argc, char **argv,
const char *cwd, struct client *c, struct session *s, popup_close_cb cb,
void *arg)
{
struct popup_data *pd;
u_int jx, jy;
@ -635,7 +636,7 @@ popup_display(int flags, struct cmdq_item *item, u_int px, u_int py, u_int sx,
pd->psx = sx;
pd->psy = sy;
pd->job = job_run(shellcmd, argc, argv, s, cwd,
pd->job = job_run(shellcmd, argc, argv, env, s, cwd,
popup_job_update_cb, popup_job_complete_cb, NULL, pd,
JOB_NOWAIT|JOB_PTY|JOB_KEEPWRITE, jx, jy);
pd->ictx = input_init(NULL, job_get_event(pd->job), &pd->palette);
@ -725,7 +726,7 @@ popup_editor(struct client *c, const char *buf, size_t len,
xasprintf(&cmd, "%s %s", editor, path);
if (popup_display(POPUP_INTERNAL|POPUP_CLOSEEXIT, NULL, px, py, sx, sy,
cmd, 0, NULL, _PATH_TMP, c, NULL, popup_editor_close_cb, pe) != 0) {
NULL, cmd, 0, NULL, _PATH_TMP, c, NULL, popup_editor_close_cb, pe) != 0) {
popup_editor_free(pe);
free(cmd);
return (-1);