From 8fd6640caf1961c71c66a9c559f340d86cf17893 Mon Sep 17 00:00:00 2001
From: Lukas Fleischer <calcurse@cryptocrack.de>
Date: Sun, 18 Nov 2012 21:50:15 +0100
Subject: Refactor todo_chg_priority()

Instead of passing a key, pass the number of steps to increase the
priority by.

Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
---
 src/calcurse.c |  3 ++-
 src/todo.c     | 25 +++++++------------------
 2 files changed, 9 insertions(+), 19 deletions(-)

(limited to 'src')

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);
-- 
cgit v1.2.3-70-g09d2