From f5f7675939ca3e5463c7dbd106daaf79802a37ed Mon Sep 17 00:00:00 2001 From: arthur Date: Wed, 2 Nov 2022 12:52:18 +0100 Subject: [PATCH] Added new argument to plumber command --- sfeed_curses.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/sfeed_curses.c b/sfeed_curses.c index 4d2b698..5f6a823 100644 --- a/sfeed_curses.c +++ b/sfeed_curses.c @@ -1429,11 +1429,11 @@ feed_open_selected(struct pane *p) } void -feed_plumb_selected_item(struct pane *p, int field) +feed_plumb_selected_item(struct pane *p, int field, char *audio) { struct row *row; struct item *item; - char *cmd[3]; /* will have: { plumbercmd, arg, NULL } */ + char *cmd[4]; /* will have: { plumbercmd, arg, NULL } */ if (!(row = pane_row_get(p, p->pos))) return; @@ -1441,7 +1441,8 @@ feed_plumb_selected_item(struct pane *p, int field) item = row->data; cmd[0] = plumbercmd; cmd[1] = item->fields[field]; /* set first argument for plumber */ - cmd[2] = NULL; + cmd[2] = audio; + cmd[3] = NULL; forkexec(cmd, plumberia); } @@ -1700,7 +1701,7 @@ mousereport(int button, int release, int keymask, int x, int y) if (i == PaneFeeds) feed_open_selected(&panes[PaneFeeds]); else if (i == PaneItems && dblclick && !changedpane) - feed_plumb_selected_item(&panes[PaneItems], FieldLink); + feed_plumb_selected_item(&panes[PaneItems], FieldLink, ""); break; case 2: /* right-click */ if (!p->nrows || pos >= p->nrows) @@ -2268,7 +2269,7 @@ nextpage: case 'e': /* enclosure */ case '@': if (selpane == PaneItems) - feed_plumb_selected_item(&panes[selpane], FieldEnclosure); + feed_plumb_selected_item(&panes[selpane], FieldEnclosure, ""); break; case 'm': /* toggle mouse mode */ usemouse = !usemouse; @@ -2300,11 +2301,16 @@ nextpage: pane_setpos(p, 0); break; case 'o': /* feeds: load, items: plumb URL */ + if (selpane == PaneFeeds && panes[selpane].nrows) + feed_open_selected(&panes[selpane]); + else if (selpane == PaneItems && panes[selpane].nrows) + feed_plumb_selected_item(&panes[selpane], FieldLink, "audio"); + break; case '\n': if (selpane == PaneFeeds && panes[selpane].nrows) feed_open_selected(&panes[selpane]); else if (selpane == PaneItems && panes[selpane].nrows) - feed_plumb_selected_item(&panes[selpane], FieldLink); + feed_plumb_selected_item(&panes[selpane], FieldLink, ""); break; case 'c': /* items: pipe TSV line to program */ case 'p': -- 2.25.1