summaryrefslogtreecommitdiffstats
path: root/src/todo.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/todo.c')
-rw-r--r--src/todo.c25
1 files changed, 7 insertions, 18 deletions
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);