Refactor out todo item serialization

Add a todo_write() function that allows one to serialize todo items and
write serialized data to an output stream in a fashion similar to
apoint_write() and event_write().

Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
This commit is contained in:
Lukas Fleischer 2011-07-01 14:26:43 +02:00
parent 29d71935af
commit 3076670a76
3 changed files with 11 additions and 4 deletions

View File

@ -827,6 +827,7 @@ int todo_hilt_pos (void);
char *todo_saved_mesg (void);
void todo_new_item (void);
struct todo *todo_add (char *, int, char *);
void todo_write (struct todo *, FILE *);
void todo_flag (void);
void todo_delete (struct conf *);
void todo_chg_priority (int);

View File

@ -1023,10 +1023,7 @@ io_save_todo (void)
LLIST_FOREACH (&todolist, i)
{
struct todo *todo = LLIST_TS_GET_DATA (i);
if (todo->note)
(void)fprintf (fp, "[%d]>%s %s\n", todo->id, todo->note, todo->mesg);
else
(void)fprintf (fp, "[%d] %s\n", todo->id, todo->mesg);
todo_write (todo, fp);
}
file_close (fp, __FILE_POS__);

View File

@ -183,6 +183,15 @@ todo_add (char *mesg, int id, char *note)
return todo;
}
void
todo_write (struct todo *todo, FILE *f)
{
if (todo->note)
(void)fprintf (f, "[%d]>%s %s\n", todo->id, todo->note, todo->mesg);
else
(void)fprintf (f, "[%d] %s\n", todo->id, todo->mesg);
}
/* Delete a note previously attached to a todo item. */
static void
todo_delete_note_bynum (unsigned num)