diff options
author | Lukas Fleischer <lfleischer@calcurse.org> | 2022-12-25 16:30:21 -0500 |
---|---|---|
committer | Lukas Fleischer <lfleischer@calcurse.org> | 2022-12-25 16:36:27 -0500 |
commit | ce6f8bf85b54640b467c59318b7506e4db18bd83 (patch) | |
tree | 5372002ac1e91f2b511e1c8be3a08dcbb1e9c4ac | |
parent | 7b350ac58f34c81d01f5cd6b0b36f6ec5c93c68e (diff) | |
download | calcurse-ce6f8bf85b54640b467c59318b7506e4db18bd83.tar.gz calcurse-ce6f8bf85b54640b467c59318b7506e4db18bd83.zip |
Extend default description to all item types
Show default description "(empty description)" for all types of items
(appointments, events, recurring appointments/events, TODOs).
Follow-up to 7b350ac (Add text for displaying empty event description,
2022-06-21).
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
-rw-r--r-- | src/day.c | 25 | ||||
-rw-r--r-- | src/ui-todo.c | 16 |
2 files changed, 24 insertions, 17 deletions
@@ -198,16 +198,12 @@ static void day_add_item(int type, time_t start, time_t order, union aptev_ptr i /* Get the message of an item. */ char *day_item_get_mesg(struct day_item *day) { - char *message; switch (day->type) { case APPT: return day->item.apt->mesg; case EVNT: - message = day->item.ev->mesg; - if (*message == '\0') - return EMPTY_EVENT_DESC_DEFAULT; - return message; + return day->item.ev->mesg; case RECUR_APPT: return day->item.rapt->mesg; case RECUR_EVNT: @@ -217,6 +213,15 @@ char *day_item_get_mesg(struct day_item *day) } } +/* Get the display message of an item. */ +char *day_item_get_display_mesg(struct day_item *day) +{ + char *msg = day_item_get_mesg(day); + if (msg[0] == '\0') + return EMPTY_EVENT_DESC_DEFAULT; + return msg; +} + /* Get the note attached to an item. */ char *day_item_get_note(struct day_item *day) { @@ -534,7 +539,7 @@ day_display_item(struct day_item *day, WINDOW *win, int incolor, int width, if (width <= 0) return; - char *mesg = day_item_get_mesg(day); + char *mesg = day_item_get_display_mesg(day); ch_recur = (day->type == RECUR_EVNT) ? '*' : ' '; ch_note = day_item_get_note(day) ? '>' : ' '; @@ -633,11 +638,11 @@ void day_popup_item(struct day_item *day) fclose(fp); mem_free(notepath); - asprintf(&msg, "%s\n\n%s\n%s", day_item_get_mesg(day), note_heading, note); + asprintf(&msg, "%s\n\n%s\n%s", day_item_get_display_mesg(day), note_heading, note); item_in_popup(NULL, NULL, msg, _("Event:")); mem_free(msg); } else { - item_in_popup(NULL, NULL, day_item_get_mesg(day), _("Event:")); + item_in_popup(NULL, NULL, day_item_get_display_mesg(day), _("Event:")); } } else if (day->type == APPT || day->type == RECUR_APPT) { char a_st[100], a_end[100]; @@ -660,11 +665,11 @@ void day_popup_item(struct day_item *day) fclose(fp); mem_free(notepath); - asprintf(&msg, "%s\n\n%s\n%s", day_item_get_mesg(day), note_heading, note); + asprintf(&msg, "%s\n\n%s\n%s", day_item_get_display_mesg(day), note_heading, note); item_in_popup(a_st, a_end, msg, _("Appointment:")); mem_free(msg); } else { - item_in_popup(a_st, a_end, day_item_get_mesg(day), _("Appointment:")); + item_in_popup(a_st, a_end, day_item_get_display_mesg(day), _("Appointment:")); } } else { EXIT(_("unknown item type")); diff --git a/src/ui-todo.c b/src/ui-todo.c index c715250..b65b8d3 100644 --- a/src/ui-todo.c +++ b/src/ui-todo.c @@ -207,14 +207,16 @@ void ui_todo_draw(int n, WINDOW *win, int y, int hilt, void *cb_data) if (hilt) custom_apply_attr(win, ATTR_HIGHEST); - if (utf8_strwidth(todo->mesg) < width) { - mesg = todo->mesg; - } else { + mesg = todo->mesg; + if (mesg[0] == '\0') + mesg = EMPTY_EVENT_DESC_DEFAULT; + + if (utf8_strwidth(mesg) >= width) { width -= 3; - for (j = 0; todo->mesg[j] && width > 0; j++) { - if (!UTF8_ISCONT(todo->mesg[j])) - width -= utf8_width(&todo->mesg[j]); - buf[j] = todo->mesg[j]; + for (j = 0; mesg[j] && width > 0; j++) { + if (!UTF8_ISCONT(mesg[j])) + width -= utf8_width(&mesg[j]); + buf[j] = mesg[j]; } if (j) { buf[j - 1] = '.'; |