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>
This commit is contained in:
Lukas Fleischer 2022-12-25 16:30:21 -05:00
parent 7b350ac58f
commit ce6f8bf85b
2 changed files with 24 additions and 17 deletions

View File

@ -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"));

View File

@ -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] = '.';