Add todo_pipe_item() function
Pipe a serialized todo item to an external process, similar to what day_pipe_item() does (cf. c3f532d814e555abf67efb136491956428f19965). Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
This commit is contained in:
parent
c3f532d814
commit
9e60084262
@ -838,6 +838,7 @@ void todo_edit_item (void);
|
|||||||
void todo_update_panel (int);
|
void todo_update_panel (int);
|
||||||
void todo_edit_note (char *);
|
void todo_edit_note (char *);
|
||||||
void todo_view_note (char *);
|
void todo_view_note (char *);
|
||||||
|
void todo_pipe_item (void);
|
||||||
void todo_init_list (void);
|
void todo_init_list (void);
|
||||||
void todo_free_list (void);
|
void todo_free_list (void);
|
||||||
|
|
||||||
|
29
src/todo.c
29
src/todo.c
@ -504,6 +504,35 @@ todo_view_note (char *pager)
|
|||||||
wins_launch_external (fullname, 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
|
void
|
||||||
todo_free (struct todo *todo)
|
todo_free (struct todo *todo)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user