From cf5468b417e8663031ecbc9c6c09147b6ae3086f Mon Sep 17 00:00:00 2001 From: Frederic Culot Date: Fri, 25 Aug 2006 19:50:08 +0000 Subject: bugfix: events and appointments are now sorted properly --- src/day.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/day.c b/src/day.c index 33d6b82..282d5c4 100755 --- a/src/day.c +++ b/src/day.c @@ -1,4 +1,4 @@ -/* $calcurse: day.c,v 1.5 2006/08/23 19:41:34 culot Exp $ */ +/* $calcurse: day.c,v 1.6 2006/08/25 19:50:08 culot Exp $ */ /* * Calcurse - text-based organizer @@ -195,7 +195,7 @@ struct day_item_s *day_add_event(int type, char *mesg, long day, int id) o->evnt_id = id; i = &day_items_ptr; for (;;) { - if (*i == 0 || (*i)->start > day) { + if (*i == 0) { o->next = *i; *i = o; break; @@ -209,6 +209,8 @@ struct day_item_s *day_add_event(int type, char *mesg, long day, int id) struct day_item_s *day_add_apoint(int type, char *mesg, long start, long dur) { struct day_item_s *o, **i; + int insert_item = 0; + o = (struct day_item_s *) malloc(sizeof(struct day_item_s)); o->mesg = (char *) malloc(strlen(mesg) + 1); strcpy(o->mesg, mesg); @@ -218,7 +220,13 @@ struct day_item_s *day_add_apoint(int type, char *mesg, long start, long dur) o->evnt_id = 0; i = &day_items_ptr; for (;;) { - if (*i == 0 || (*i)->start > start) { + if (*i == 0) { + insert_item = 1; + } else if ( ((*i)->start > start) && + ((*i)->type >= type) ) { + insert_item = 1; + } + if (insert_item) { o->next = *i; *i = o; break; @@ -253,7 +261,6 @@ void day_write_pad(long date, int width, int length, int incolor, int colr) } for (p = day_items_ptr; p != 0; p = p->next) { - /* First print the events for current day. */ if (p->type < RECUR_APPT) { item_number++; -- cgit v1.2.3-70-g09d2