From 54c2b6004102de55c8ebed7d9ce5f1ece7eeb449 Mon Sep 17 00:00:00 2001 From: Frederic Culot Date: Thu, 17 Jan 2008 19:35:42 +0000 Subject: minor improvements and bugfixes --- ChangeLog | 6 ++++++ src/day.c | 27 ++++++++++++++++----------- src/io.c | 12 ++++++++++-- src/utils.c | 5 +++-- 4 files changed, 35 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 10af4c4..9e401fc 100755 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +17 Jan 2008: + exit_calcurse() improved: screen is now cleared completely when + calcurse exits + io_export_data() improved: it is now possible to cancel calendar export + bugfix in day_edit_item(): null-terminating character missing + 13 Jan 2008: Ability to attach notes to appointments and events added diff --git a/src/day.c b/src/day.c index 052bda2..13f1bdf 100755 --- a/src/day.c +++ b/src/day.c @@ -1,4 +1,4 @@ -/* $calcurse: day.c,v 1.32 2008/01/13 12:40:45 culot Exp $ */ +/* $calcurse: day.c,v 1.33 2008/01/17 19:35:42 culot Exp $ */ /* * Calcurse - text-based organizer @@ -432,7 +432,8 @@ day_write_pad(long date, int width, int length, int incolor) } /* Display an item inside a popup window. */ -void day_popup_item(void) +void +day_popup_item(void) { char *error = _("FATAL ERROR in day_popup_item: unknown item type\n"); @@ -452,7 +453,9 @@ void day_popup_item(void) * Need to know if there is an item for the current selected day inside * calendar. This is used to put the correct colors inside calendar panel. */ -int day_check_if_item(date_t day) { +int +day_check_if_item(date_t day) +{ struct recur_event_s *re; recur_apoint_llist_node_t *ra; struct event_s *e; @@ -490,8 +493,8 @@ int day_check_if_item(date_t day) { } /* Update an existing item. */ -static void update_item(long date, int item_num, struct day_item_s *p, - struct rpt_s *rpt) +static void +update_item(long date, int item_num, struct day_item_s *p, struct rpt_s *rpt) { recur_apoint_llist_node_t *ra_new; @@ -546,10 +549,11 @@ day_edit_time(long time) void day_edit_item(void) { -#define STRT '1' -#define END '2' -#define DESC '3' -#define REPT '4' +#define SINGLECHAR 2 +#define STRT '1' +#define END '2' +#define DESC '3' +#define REPT '4' struct day_item_s *p; struct recur_event_s *re; @@ -666,8 +670,9 @@ day_edit_item(void) while ( (ch != 'D') && (ch != 'W') && (ch != 'M') && (ch != 'Y') ) { status_mesg(mesg_type_1, mesg_type_2); - typestr = (char *)malloc(sizeof(char) * 2); - *typestr = recur_def2char(rpt->type); + typestr = (char *)malloc(sizeof(char) * SINGLECHAR); + snprintf(typestr, SINGLECHAR, "%c", + recur_def2char(rpt->type)); cancel = updatestring(win[STA].p, &typestr, 0, 1); ch = toupper(*typestr); free(typestr); diff --git a/src/io.c b/src/io.c index 4cce160..ad9f445 100755 --- a/src/io.c +++ b/src/io.c @@ -1,4 +1,4 @@ -/* $calcurse: io.c,v 1.25 2008/01/13 12:40:45 culot Exp $ */ +/* $calcurse: io.c,v 1.26 2008/01/17 19:35:42 culot Exp $ */ /* * Calcurse - text-based organizer @@ -126,6 +126,7 @@ io_get_export_stream(void) _("The file cannot be accessed, please enter another file name."); char *press_enter = _("Press [ENTER] to continue."); + int cancel; stream = NULL; stream_name = (char *)malloc(BUFSIZ); @@ -136,7 +137,11 @@ io_get_export_stream(void) while (stream == NULL) { status_mesg(question, ""); - updatestring(win[STA].p, &stream_name, 0, 1); + cancel = updatestring(win[STA].p, &stream_name, 0, 1); + if (cancel) { + free(stream_name); + return (NULL); + } stream = fopen(stream_name, "w"); if (stream == NULL) { status_mesg(wrong_name, press_enter); @@ -841,6 +846,9 @@ io_export_data(export_mode_t mode, conf_t *conf) /* NOTREACHED */ } + if (stream == NULL) + return; + io_export_header(stream); if (!conf->skip_progress_bar && mode == IO_EXPORT_INTERACTIVE) diff --git a/src/utils.c b/src/utils.c index 22cda23..0e9cc4d 100755 --- a/src/utils.c +++ b/src/utils.c @@ -1,4 +1,4 @@ -/* $calcurse: utils.c,v 1.39 2008/01/13 12:40:45 culot Exp $ */ +/* $calcurse: utils.c,v 1.40 2008/01/17 19:35:42 culot Exp $ */ /* * Calcurse - text-based organizer @@ -45,7 +45,8 @@ void exit_calcurse(int status) { endwin(); - erase(); + clear(); + refresh(); calendar_stop_date_thread(); exit(status); } -- cgit v1.2.3-54-g00ecf