From b1d3178bba66089726e6f93a49af97371bdf5db8 Mon Sep 17 00:00:00 2001
From: Frederic Culot <calcurse@culot.org>
Date: Mon, 15 Dec 2008 20:02:00 +0000
Subject: small bugfixes and a major one (freeze when deleting an appointment's
 note, thanks Jan for reporting it)

---
 src/apoint.c | 11 ++++++-----
 src/day.c    | 12 ++++++++----
 src/keys.c   |  4 ++--
 src/todo.c   |  6 +++---
 src/utils.c  |  4 ++--
 5 files changed, 21 insertions(+), 16 deletions(-)

(limited to 'src')

diff --git a/src/apoint.c b/src/apoint.c
index 1b067ba..75b2235 100755
--- a/src/apoint.c
+++ b/src/apoint.c
@@ -1,4 +1,4 @@
-/*	$calcurse: apoint.c,v 1.27 2008/12/14 15:54:51 culot Exp $	*/
+/*	$calcurse: apoint.c,v 1.28 2008/12/15 20:02:00 culot Exp $	*/
 
 /*
  * Calcurse - text-based organizer
@@ -269,9 +269,7 @@ apoint_delete (conf_t *conf, unsigned *nb_events, unsigned *nb_apoints)
 	      to_be_removed = 3;
 	    }
 	  else if (deleted_item_type == 0)
-	    {
-	      to_be_removed = 0;
-	    }
+            return;
 	  else
             EXIT (_("no such type"));
 	  /* NOTREACHED */
@@ -425,7 +423,10 @@ apoint_delete_bynum (long start, unsigned num, erase_flag_e flag)
 	  if (n == num)
 	    {
 	      if (flag == ERASE_FORCE_ONLY_NOTE)
-		erase_note (&i->note, flag);
+                {
+                  erase_note (&i->note, flag);
+                  pthread_mutex_unlock (&(alist_p->mutex));
+                }
 	      else
 		{
 		  if (notify_bar ())
diff --git a/src/day.c b/src/day.c
index c727cf2..884fd3b 100755
--- a/src/day.c
+++ b/src/day.c
@@ -1,4 +1,4 @@
-/*	$calcurse: day.c,v 1.41 2008/12/12 20:44:50 culot Exp $	*/
+/*	$calcurse: day.c,v 1.42 2008/12/15 20:02:00 culot Exp $	*/
 
 /*
  * Calcurse - text-based organizer
@@ -728,7 +728,7 @@ day_edit_item (conf_t *conf)
   p = day_get_item (item_num);
   date = calendar_get_slctd_day_sec ();
 
-  ch = 0;
+  ch = -1;
   switch (p->type)
     {
     case RECUR_EVNT:
@@ -819,9 +819,10 @@ day_erase_item (long date, int item_number, erase_flag_e flag)
 	"Delete (i)tem or just its (n)ote ?");
   char *note_choice = _("[i/n] ");
   char *erase_choice = _("[a/o] ");
-  int ch = 0, ans;
+  int ch, ans;
   unsigned delete_whole;
 
+  ch = -1;
   p = day_get_item (item_number);
   if (flag == ERASE_DONT_FORCE)
     {
@@ -877,7 +878,10 @@ day_erase_item (long date, int item_number, erase_flag_e flag)
 	  recur_apoint_erase (date, p->appt_pos, delete_whole, flag);
 	}
     }
-  return (p->type);
+  if (flag == ERASE_FORCE_ONLY_NOTE)
+    return 0;
+  else
+    return (p->type);
 }
 
 /* Returns a structure containing the selected item. */
diff --git a/src/keys.c b/src/keys.c
index 57fac95..790a03a 100755
--- a/src/keys.c
+++ b/src/keys.c
@@ -1,4 +1,4 @@
-/*	$calcurse: keys.c,v 1.9 2008/12/12 20:44:50 culot Exp $	*/
+/*	$calcurse: keys.c,v 1.10 2008/12/15 20:02:00 culot Exp $	*/
 
 /*
  * Calcurse - text-based organizer
@@ -49,7 +49,7 @@ static struct key_str_s *keys[NBKEYS];
 static keys_e actions[MAXKEYVAL];
 
 static struct keydef_s keydef[NBKEYS] = {
-  {"generic-escape", "ESC"},
+  {"generic-cancel", "ESC"},
   {"generic-select", "SPC"},
   {"generic-credits", "@"},
   {"generic-help", "?"},
diff --git a/src/todo.c b/src/todo.c
index 16c9a79..68d5eb5 100755
--- a/src/todo.c
+++ b/src/todo.c
@@ -1,4 +1,4 @@
-/*	$calcurse: todo.c,v 1.27 2008/12/12 20:44:50 culot Exp $	*/
+/*	$calcurse: todo.c,v 1.28 2008/12/15 20:02:00 culot Exp $	*/
 
 /*
  * Calcurse - text-based organizer
@@ -239,7 +239,7 @@ todo_delete (conf_t *conf)
 	"Delete (t)odo or just its (n)ote ?");
   char *erase_choice = _("[t/n] ");
   bool go_for_todo_del = false;
-  int answer = 0, has_note;
+  int answer, has_note;
 
   if (conf->confirm_delete)
     {
@@ -264,7 +264,7 @@ todo_delete (conf_t *conf)
       return;
     }
 
-  answer = 0;
+  answer = -1;
   has_note = (todo_get_item (hilt)->note != NULL) ? 1 : 0;
   if (has_note == 0)
     answer = 't';
diff --git a/src/utils.c b/src/utils.c
index 147229e..f4d82fe 100755
--- a/src/utils.c
+++ b/src/utils.c
@@ -1,4 +1,4 @@
-/*	$calcurse: utils.c,v 1.59 2008/12/14 15:54:51 culot Exp $	*/
+/*	$calcurse: utils.c,v 1.60 2008/12/15 20:02:00 culot Exp $	*/
 
 /*
  * Calcurse - text-based organizer
@@ -329,7 +329,7 @@ getstring (WINDOW *win, char *str, int l, int x, int y)
 	    newpos++;
 	  break;
 
-	case KEY_GENERIC_CANCEL:	/* cancel editing */
+	case ESCAPE:	/* cancel editing */
 	  return (GETSTRING_ESC);
 	  break;
 
-- 
cgit v1.2.3-70-g09d2