diff options
author | Frederic Culot <calcurse@culot.org> | 2006-08-25 19:50:08 +0000 |
---|---|---|
committer | Frederic Culot <calcurse@culot.org> | 2006-08-25 19:50:08 +0000 |
commit | cf5468b417e8663031ecbc9c6c09147b6ae3086f (patch) | |
tree | aabb357d48e9d6bb80e6c4fdc54a6698a6d05b26 /src/day.c | |
parent | 1817863aae86359adef28b543da94322b79c6e56 (diff) | |
download | calcurse-cf5468b417e8663031ecbc9c6c09147b6ae3086f.tar.gz calcurse-cf5468b417e8663031ecbc9c6c09147b6ae3086f.zip |
bugfix: events and appointments are now sorted properly
Diffstat (limited to 'src/day.c')
-rwxr-xr-x | src/day.c | 15 |
1 files changed, 11 insertions, 4 deletions
@@ -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++; |