aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/calcurse.c3
-rw-r--r--src/todo.c25
2 files changed, 9 insertions, 19 deletions
diff --git a/src/calcurse.c b/src/calcurse.c
index 84bd06a..b3b9098 100644
--- a/src/calcurse.c
+++ b/src/calcurse.c
@@ -221,7 +221,8 @@ static inline void key_pipe_item(int key)
static inline void key_change_priority(int key)
{
if (wins_slctd() == TOD && todo_hilt() != 0) {
- todo_chg_priority(todo_get_item(todo_hilt()), key);
+ todo_chg_priority(todo_get_item(todo_hilt()),
+ key == KEY_RAISE_PRIORITY ? 1 : -1);
if (todo_hilt_pos() < 0)
todo_set_first(todo_hilt());
else if (todo_hilt_pos() >= win[TOD].h - 4)
diff --git a/src/todo.c b/src/todo.c
index 9b8f283..af25a60 100644
--- a/src/todo.c
+++ b/src/todo.c
@@ -208,7 +208,7 @@ static int todo_get_position(struct todo *needle)
}
/* Change an item priority by pressing '+' or '-' inside TODO panel. */
-void todo_chg_priority(struct todo *backup, int action)
+void todo_chg_priority(struct todo *backup, int diff)
{
char backup_mesg[BUFSIZ];
int backup_id;
@@ -220,23 +220,12 @@ void todo_chg_priority(struct todo *backup, int action)
strncpy(backup_note, backup->note, MAX_NOTESIZ + 1);
else
backup_note[0] = '\0';
- switch (action) {
- case KEY_RAISE_PRIORITY:
- if (backup_id > 1)
- backup_id--;
- else
- return;
- break;
- case KEY_LOWER_PRIORITY:
- if (backup_id > 0 && backup_id < 9)
- backup_id++;
- else
- return;
- break;
- default:
- EXIT(_("no such action"));
- /* NOTREACHED */
- }
+
+ backup_id += diff;
+ if (backup_id < 1)
+ backup_id = 1;
+ else if (backup_id > 9)
+ backup_id = 9;
todo_delete(todo_get_item(hilt));
backup = todo_add(backup_mesg, backup_id, backup_note);