From 954e3fd8ee08054e79013e6af69c8026bce929a7 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Tue, 26 Jun 2012 14:07:14 +0200 Subject: Add an item parameter to various todo_*() functions These functions operate on arbitrary items. Pull out the code that gets the currently selected item, get the current selection when one of the functions is called and pass it as a parameter. Signed-off-by: Lukas Fleischer --- src/calcurse.c | 8 ++++---- src/calcurse.h | 8 ++++---- src/todo.c | 15 ++++----------- 3 files changed, 12 insertions(+), 19 deletions(-) diff --git a/src/calcurse.c b/src/calcurse.c index 962f665..3708236 100644 --- a/src/calcurse.c +++ b/src/calcurse.c @@ -315,7 +315,7 @@ int main(int argc, char **argv) inday = do_storage(0); wins_update(FLAG_APP); } else if (wins_slctd() == TOD && todo_hilt() != 0) { - todo_flag(); + todo_flag(todo_get_item(todo_hilt())); wins_update(FLAG_TOD); } break; @@ -331,7 +331,7 @@ int main(int argc, char **argv) case KEY_RAISE_PRIORITY: case KEY_LOWER_PRIORITY: if (wins_slctd() == TOD && todo_hilt() != 0) { - todo_chg_priority(key); + todo_chg_priority(todo_get_item(todo_hilt()), key); if (todo_hilt_pos() < 0) todo_set_first(todo_hilt()); else if (todo_hilt_pos() >= win[TOD].h - 4) @@ -345,7 +345,7 @@ int main(int argc, char **argv) day_edit_note(day_get_item(apoint_hilt()), conf.editor); inday = do_storage(0); } else if (wins_slctd() == TOD && todo_hilt() != 0) - todo_edit_note(conf.editor); + todo_edit_note(todo_get_item(todo_hilt()), conf.editor); wins_update(FLAG_ALL); break; @@ -353,7 +353,7 @@ int main(int argc, char **argv) if (wins_slctd() == APP && apoint_hilt() != 0) day_view_note(day_get_item(apoint_hilt()), conf.pager); else if (wins_slctd() == TOD && todo_hilt() != 0) - todo_view_note(conf.pager); + todo_view_note(todo_get_item(todo_hilt()), conf.pager); wins_update(FLAG_ALL); break; diff --git a/src/calcurse.h b/src/calcurse.h index 78bd752..adc742f 100644 --- a/src/calcurse.h +++ b/src/calcurse.h @@ -901,11 +901,11 @@ struct todo *todo_add(char *, int, char *); void todo_write(struct todo *, FILE *); void todo_delete_note_bynum(unsigned); void todo_delete(struct todo *); -void todo_flag(void); -void todo_chg_priority(int); +void todo_flag(struct todo *); +void todo_chg_priority(struct todo *, int); void todo_update_panel(int); -void todo_edit_note(const char *); -void todo_view_note(const char *); +void todo_edit_note(struct todo *, const char *); +void todo_view_note(struct todo *, const char *); void todo_init_list(void); void todo_free_list(void); diff --git a/src/todo.c b/src/todo.c index 2ca648d..5352eb8 100644 --- a/src/todo.c +++ b/src/todo.c @@ -189,11 +189,8 @@ void todo_delete(struct todo *todo) * This way, it is easy to retrive its original priority if the user decides * that in fact it was not completed. */ -void todo_flag(void) +void todo_flag(struct todo *t) { - struct todo *t; - - t = todo_get_item(hilt); t->id = -t->id; } @@ -217,14 +214,12 @@ static int todo_get_position(struct todo *needle) } /* Change an item priority by pressing '+' or '-' inside TODO panel. */ -void todo_chg_priority(int action) +void todo_chg_priority(struct todo *backup, int action) { - struct todo *backup; char backup_mesg[BUFSIZ]; int backup_id; char backup_note[MAX_NOTESIZ + 1]; - backup = todo_get_item(hilt); strncpy(backup_mesg, backup->mesg, strlen(backup->mesg) + 1); backup_id = backup->id; if (backup->note) @@ -338,16 +333,14 @@ void todo_update_panel(int which_pan) } /* Attach a note to a todo */ -void todo_edit_note(const char *editor) +void todo_edit_note(struct todo *i, const char *editor) { - struct todo *i = todo_get_item(hilt); edit_note(&i->note, editor); } /* View a note previously attached to a todo */ -void todo_view_note(const char *pager) +void todo_view_note(struct todo *i, const char *pager) { - struct todo *i = todo_get_item(hilt); view_note(i->note, pager); } -- cgit v1.2.3-54-g00ecf