diff options
author | Lukas Fleischer <calcurse@cryptocrack.de> | 2012-06-26 14:07:14 +0200 |
---|---|---|
committer | Lukas Fleischer <calcurse@cryptocrack.de> | 2012-06-30 14:34:36 +0200 |
commit | 954e3fd8ee08054e79013e6af69c8026bce929a7 (patch) | |
tree | 8c0555c2f8e522c32e94b5b462dd6ca59068e2b0 | |
parent | 318e685ffe73587a01049d92aa0f60a46c1cfb16 (diff) | |
download | calcurse-954e3fd8ee08054e79013e6af69c8026bce929a7.zip |
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 <calcurse@cryptocrack.de>
-rw-r--r-- | src/calcurse.c | 8 | ||||
-rw-r--r-- | src/calcurse.h | 8 | ||||
-rw-r--r-- | 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); @@ -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); } |