diff options
author | Lukas Fleischer <calcurse@cryptocrack.de> | 2012-07-07 11:55:10 +0200 |
---|---|---|
committer | Lukas Fleischer <calcurse@cryptocrack.de> | 2012-07-07 21:35:02 +0200 |
commit | 7fb25a84d427f4a3cb79ea02908daf9ce8ba07ca (patch) | |
tree | cb24b54351955c1d354095023534d8b51d8f9cec /src/interaction.c | |
parent | 69345edd77b3ff98a99b36de8063f9e5febad3eb (diff) | |
download | calcurse-7fb25a84d427f4a3cb79ea02908daf9ce8ba07ca.tar.gz calcurse-7fb25a84d427f4a3cb79ea02908daf9ce8ba07ca.zip |
Refactor note removal
Remove the note removal code from *_delete()/*_erase() and create a new
wrapper function called day_item_erase_note() that is be used to drop
the note being associated to an item.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
Diffstat (limited to 'src/interaction.c')
-rw-r--r-- | src/interaction.c | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/src/interaction.c b/src/interaction.c index b619992..4d71520 100644 --- a/src/interaction.c +++ b/src/interaction.c @@ -389,32 +389,26 @@ static int day_erase_item(long date, int item_number, enum eraseflg flag) unsigned delete_whole; p = day_get_item(item_number); - if (flag == ERASE_DONT_FORCE) { - if (day_item_get_note(p) == NULL) - ans = 1; - else - ans = status_ask_choice(note_warning, note_choices, nb_note_choices); - - switch (ans) { + if (flag == ERASE_DONT_FORCE && day_item_get_note(p)) { + switch (status_ask_choice(note_warning, note_choices, nb_note_choices)) { case 1: - flag = ERASE_FORCE; break; case 2: - flag = ERASE_FORCE_ONLY_NOTE; - break; + day_item_erase_note(p); + return 0; default: /* User escaped */ return 0; } } + + flag = ERASE_FORCE; + if (p->type == EVNT) { event_delete(p->item.ev, flag); } else if (p->type == APPT) { apoint_delete(p->item.apt, flag); } else { - if (flag == ERASE_FORCE_ONLY_NOTE) - ans = 1; - else - ans = status_ask_choice(erase_warning, erase_choices, nb_erase_choices); + ans = status_ask_choice(erase_warning, erase_choices, nb_erase_choices); switch (ans) { case 1: @@ -433,10 +427,8 @@ static int day_erase_item(long date, int item_number, enum eraseflg flag) recur_apoint_erase(p->item.rapt, date, delete_whole, flag); } } - if (flag == ERASE_FORCE_ONLY_NOTE) - return 0; - else - return p->type; + + return p->type; } /* Pipe an appointment or event to an external program. */ |