various bugfixes

This commit is contained in:
Frederic Culot 2009-01-02 19:52:32 +00:00
parent cac30a7e14
commit aa7d6c5eb7
9 changed files with 46 additions and 38 deletions

View File

@ -1,3 +1,8 @@
2009-01-02 Frederic Culot <frederic@culot.org>
* src/io.c (io_stop_pthread_save): do not crash when canceling the
thread if it was not started before
2009-01-01 Frederic Culot <frederic@culot.org> 2009-01-01 Frederic Culot <frederic@culot.org>
* src/event.c (event_free_bkp, event_llist_free): new functions * src/event.c (event_free_bkp, event_llist_free): new functions
@ -16,7 +21,7 @@
that made repeated items with exceptions load uncorrectly in that made repeated items with exceptions load uncorrectly in
some cases (thanks Jan for reporting it) some cases (thanks Jan for reporting it)
* NEWS: updated (it is now possible to move an item from one date * TODO: updated (it is now possible to move an item from one date
to another by using the cut/paste feature) to another by using the cut/paste feature)
2008-12-30 Frederic Culot <frederic@culot.org> 2008-12-30 Frederic Culot <frederic@culot.org>

View File

@ -1,4 +1,4 @@
/* $calcurse: apoint.c,v 1.30 2009/01/01 17:50:41 culot Exp $ */ /* $calcurse: apoint.c,v 1.31 2009/01/02 19:52:32 culot Exp $ */
/* /*
* Calcurse - text-based organizer * Calcurse - text-based organizer
@ -92,14 +92,14 @@ apoint_llist_free (void)
apoint_llist_node_t *o, **i; apoint_llist_node_t *o, **i;
i = &alist_p->root; i = &alist_p->root;
for (o = alist_p->root; o; o = o->next) while (*i)
{ {
o = *i;
*i = o->next; *i = o->next;
mem_free (o->mesg); mem_free (o->mesg);
if (o->note) if (o->note)
mem_free (o->note); mem_free (o->note);
mem_free (o); mem_free (o);
i = &(*i)->next;
} }
mem_free (alist_p); mem_free (alist_p);
} }

View File

@ -1,4 +1,4 @@
/* $calcurse: day.c,v 1.45 2009/01/01 17:50:41 culot Exp $ */ /* $calcurse: day.c,v 1.46 2009/01/02 19:52:32 culot Exp $ */
/* /*
* Calcurse - text-based organizer * Calcurse - text-based organizer
@ -62,14 +62,14 @@ day_free_list (void)
struct day_item_s *o, **i; struct day_item_s *o, **i;
i = &day_items_ptr; i = &day_items_ptr;
for (o = day_items_ptr; o; o = o->next) while (*i)
{ {
o = *i;
*i = o->next; *i = o->next;
mem_free (o->mesg); mem_free (o->mesg);
if (o->note) if (o->note)
mem_free (o->note); mem_free (o->note);
mem_free (o); mem_free (o);
i = &(*i)->next;
} }
day_items_ptr = NULL; day_items_ptr = NULL;
} }

View File

@ -1,4 +1,4 @@
/* $calcurse: event.c,v 1.10 2009/01/01 17:50:41 culot Exp $ */ /* $calcurse: event.c,v 1.11 2009/01/02 19:52:32 culot Exp $ */
/* /*
* Calcurse - text-based organizer * Calcurse - text-based organizer
@ -70,14 +70,14 @@ event_llist_free (void)
struct event_s *o, **i; struct event_s *o, **i;
i = &eventlist; i = &eventlist;
for (o = eventlist; o; o = o->next) while (*i)
{ {
o = *i;
*i = o->next; *i = o->next;
mem_free (o->mesg); mem_free (o->mesg);
if (o->note) if (o->note)
mem_free (o->note); mem_free (o->note);
mem_free (o); mem_free (o);
i = &(*i)->next;
} }
} }

View File

@ -1,4 +1,4 @@
/* $calcurse: io.c,v 1.52 2009/01/01 17:50:41 culot Exp $ */ /* $calcurse: io.c,v 1.53 2009/01/02 19:52:32 culot Exp $ */
/* /*
* Calcurse - text-based organizer * Calcurse - text-based organizer
@ -2812,5 +2812,6 @@ io_start_psave_thread (conf_t *conf)
void void
io_stop_psave_thread (void) io_stop_psave_thread (void)
{ {
pthread_cancel (io_t_psave); if (io_t_psave)
pthread_cancel (io_t_psave);
} }

View File

@ -1,4 +1,4 @@
/* $calcurse: keys.c,v 1.12 2009/01/01 17:50:41 culot Exp $ */ /* $calcurse: keys.c,v 1.13 2009/01/02 19:52:32 culot Exp $ */
/* /*
* Calcurse - text-based organizer * Calcurse - text-based organizer
@ -141,12 +141,12 @@ keys_free (void)
continue; continue;
i = &keys[key]; i = &keys[key];
for (o = keys[key]; o; o = o->next) while (*i)
{ {
o = *i;
*i = o->next; *i = o->next;
mem_free (o->str); mem_free (o->str);
mem_free (o); mem_free (o);
i = &o->next;
} }
} }
} }

View File

@ -1,8 +1,8 @@
/* $calcurse: mem.c,v 1.1 2008/12/28 13:15:18 culot Exp $ */ /* $calcurse: mem.c,v 1.2 2009/01/02 19:52:32 culot Exp $ */
/* /*
* Calcurse - text-based organizer * Calcurse - text-based organizer
* Copyright (c) 2008 Frederic Culot * Copyright (c) 2008-2009 Frederic Culot
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -26,6 +26,7 @@
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
#include <stdint.h>
#include "i18n.h" #include "i18n.h"
#include "utils.h" #include "utils.h"

View File

@ -1,4 +1,4 @@
/* $calcurse: recur.c,v 1.47 2009/01/01 17:50:41 culot Exp $ */ /* $calcurse: recur.c,v 1.48 2009/01/02 19:52:32 culot Exp $ */
/* /*
* Calcurse - text-based organizer * Calcurse - text-based organizer
@ -44,18 +44,17 @@ static struct recur_event_s bkp_cut_recur_event;
static recur_apoint_llist_node_t bkp_cut_recur_apoint; static recur_apoint_llist_node_t bkp_cut_recur_apoint;
static void static void
free_exc (struct days_s **exc) free_exc (struct days_s *exc)
{ {
struct days_s *o, **i; struct days_s *o, **i;
i = exc; i = &exc;
for (o = *exc; o; o = o->next) while (*i)
{ {
o = *i;
*i = o->next; *i = o->next;
mem_free (o); mem_free (o);
i = &(*i)->next;
} }
*exc = 0;
} }
static void static void
@ -107,7 +106,7 @@ recur_event_free_bkp (void)
} }
if (bkp_cut_recur_event.exc) if (bkp_cut_recur_event.exc)
{ {
free_exc (&bkp_cut_recur_event.exc); free_exc (bkp_cut_recur_event.exc);
bkp_cut_recur_event.exc = 0; bkp_cut_recur_event.exc = 0;
} }
} }
@ -132,7 +131,7 @@ recur_apoint_free_bkp (void)
} }
if (bkp_cut_recur_apoint.exc) if (bkp_cut_recur_apoint.exc)
{ {
free_exc (&bkp_cut_recur_apoint.exc); free_exc (bkp_cut_recur_apoint.exc);
bkp_cut_recur_apoint.exc = 0; bkp_cut_recur_apoint.exc = 0;
} }
} }
@ -194,8 +193,9 @@ recur_apoint_llist_free (void)
recur_apoint_llist_node_t *o, **i; recur_apoint_llist_node_t *o, **i;
i = &recur_alist_p->root; i = &recur_alist_p->root;
for (o = recur_alist_p->root; o; o = o->next) while (*i)
{ {
o = *i;
*i = o->next; *i = o->next;
mem_free (o->mesg); mem_free (o->mesg);
if (o->note) if (o->note)
@ -204,11 +204,10 @@ recur_apoint_llist_free (void)
mem_free (o->rpt); mem_free (o->rpt);
if (o->exc) if (o->exc)
{ {
free_exc (&o->exc); free_exc (o->exc);
o->exc = 0; o->exc = 0;
} }
mem_free (o); mem_free (o);
i = &(*i)->next;
} }
mem_free (recur_alist_p); mem_free (recur_alist_p);
} }
@ -219,8 +218,9 @@ recur_event_llist_free (void)
struct recur_event_s *o, **i; struct recur_event_s *o, **i;
i = &recur_elist; i = &recur_elist;
for (o = recur_elist; o; o = o->next) while (*i)
{ {
o = *i;
*i = o->next; *i = o->next;
mem_free (o->mesg); mem_free (o->mesg);
if (o->note) if (o->note)
@ -229,11 +229,10 @@ recur_event_llist_free (void)
mem_free (o->rpt); mem_free (o->rpt);
if (o->exc) if (o->exc)
{ {
free_exc (&o->exc); free_exc (o->exc);
o->exc = 0; o->exc = 0;
} }
mem_free (o); mem_free (o);
i = &(*i)->next;
} }
} }
@ -258,7 +257,8 @@ recur_apoint_new (char *mesg, char *note, long start, long dur, char state,
if (except && *except) if (except && *except)
{ {
exc_dup (&o->exc, *except); exc_dup (&o->exc, *except);
free_exc (except); free_exc (*except);
*except = 0;
} }
pthread_mutex_lock (&(recur_alist_p->mutex)); pthread_mutex_lock (&(recur_alist_p->mutex));
@ -298,7 +298,8 @@ recur_event_new (char *mesg, char *note, long day, int id, int type, int freq,
if (except && *except) if (except && *except)
{ {
exc_dup (&o->exc, *except); exc_dup (&o->exc, *except);
free_exc (except); free_exc (*except);
*except = 0;
} }
i = &recur_elist; i = &recur_elist;
@ -704,7 +705,7 @@ recur_event_erase (long start, unsigned num, unsigned delete_whole,
*iptr = i->next; *iptr = i->next;
mem_free (i->mesg); mem_free (i->mesg);
mem_free (i->rpt); mem_free (i->rpt);
free_exc (&i->exc); free_exc (i->exc);
i->exc = 0; i->exc = 0;
if (flag != ERASE_FORCE_KEEP_NOTE && flag != ERASE_CUT) if (flag != ERASE_FORCE_KEEP_NOTE && flag != ERASE_CUT)
erase_note (&i->note, flag); erase_note (&i->note, flag);
@ -767,7 +768,7 @@ recur_apoint_erase (long start, unsigned num, unsigned delete_whole,
*iptr = i->next; *iptr = i->next;
mem_free (i->mesg); mem_free (i->mesg);
mem_free (i->rpt); mem_free (i->rpt);
free_exc (&i->exc); free_exc (i->exc);
i->exc = 0; i->exc = 0;
if (flag != ERASE_FORCE_KEEP_NOTE && flag != ERASE_CUT) if (flag != ERASE_FORCE_KEEP_NOTE && flag != ERASE_CUT)
erase_note (&i->note, flag); erase_note (&i->note, flag);

View File

@ -1,4 +1,4 @@
/* $calcurse: todo.c,v 1.29 2008/12/28 13:13:59 culot Exp $ */ /* $calcurse: todo.c,v 1.30 2009/01/02 19:52:32 culot Exp $ */
/* /*
* Calcurse - text-based organizer * Calcurse - text-based organizer
@ -492,14 +492,14 @@ todo_free_list (void)
struct todo_s *o, **i; struct todo_s *o, **i;
i = &todolist; i = &todolist;
for (o = todolist; o != 0; o = o->next) while (*i)
{ {
o = *i;
*i = o->next; *i = o->next;
mem_free (o->mesg); mem_free (o->mesg);
if (o->note != 0) if (o->note != 0)
erase_note (&o->note, ERASE_FORCE_KEEP_NOTE); erase_note (&o->note, ERASE_FORCE_KEEP_NOTE);
mem_free (o); mem_free (o);
i = &(*i)->next;
} }
if (todolist) if (todolist)
mem_free (todolist); mem_free (todolist);