Add todo_pipe_item() function
Pipe a serialized todo item to an external process, similar to what
day_pipe_item() does (cf. c3f532d814).
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
This commit is contained in:
29
src/todo.c
29
src/todo.c
@@ -504,6 +504,35 @@ todo_view_note (char *pager)
|
||||
wins_launch_external (fullname, pager);
|
||||
}
|
||||
|
||||
/* Pipe a todo item to an external program. */
|
||||
void
|
||||
todo_pipe_item (void)
|
||||
{
|
||||
char cmd[BUFSIZ] = "";
|
||||
int pout;
|
||||
int pid;
|
||||
FILE *fpout;
|
||||
struct todo *todo;
|
||||
|
||||
status_mesg (_("Pipe item to external command:"), "");
|
||||
if (getstring (win[STA].p, cmd, BUFSIZ, 0, 1) != GETSTRING_VALID)
|
||||
return;
|
||||
|
||||
wins_prepare_external ();
|
||||
if ((pid = shell_exec (NULL, &pout, cmd)))
|
||||
{
|
||||
fpout = fdopen (pout, "w");
|
||||
|
||||
todo = todo_get_item (hilt);
|
||||
todo_write (todo, fpout);
|
||||
|
||||
fclose (fpout);
|
||||
child_wait (NULL, &pout, pid);
|
||||
press_any_key ();
|
||||
}
|
||||
wins_unprepare_external ();
|
||||
}
|
||||
|
||||
void
|
||||
todo_free (struct todo *todo)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user