diff options
| author | Karel Zak <kzak@redhat.com> | 2025-11-12 12:09:26 +0100 |
|---|---|---|
| committer | Karel Zak <kzak@redhat.com> | 2025-11-12 12:09:26 +0100 |
| commit | 9f85e399871525ca071bfdc0f5a49e6f15e2fa60 (patch) | |
| tree | 0784fac2463ca3662ba7929e4582a55a70395d47 | |
| parent | 1d1d9cd8ae2e86ed3206b12be3c61905f7a140de (diff) | |
| parent | 8653af2499e47c03ec29f622f840b01e823a1ac1 (diff) | |
| download | util-linux-9f85e399871525ca071bfdc0f5a49e6f15e2fa60.tar.gz | |
Merge branch 'PR/cal-header-colors' of https://github.com/karelzak/util-linux-work
* 'PR/cal-header-colors' of https://github.com/karelzak/util-linux-work:
tests: update cal color outputs
cal: improve header color printing
| -rw-r--r-- | misc-utils/cal.c | 21 | ||||
| -rw-r--r-- | tests/expected/cal/color-first-day | 4 | ||||
| -rw-r--r-- | tests/expected/cal/color-last-day | 4 | ||||
| -rw-r--r-- | tests/expected/cal/color-reformation-corner-cases-1 | 4 | ||||
| -rw-r--r-- | tests/expected/cal/color-reformation-corner-cases-2 | 4 | ||||
| -rw-r--r-- | tests/expected/cal/color-reformation-corner-cases-3 | 4 | ||||
| -rw-r--r-- | tests/expected/cal/color-reformation-corner-cases-4 | 4 | ||||
| -rw-r--r-- | tests/expected/cal/color-vertical | 2 | ||||
| -rw-r--r-- | tests/expected/cal/color-vertical-week | 2 | ||||
| -rw-r--r-- | tests/expected/cal/colorw-first-day-week-numbers | 4 | ||||
| -rw-r--r-- | tests/expected/cal/colorw-last-day-week-numbers | 4 | ||||
| -rw-r--r-- | tests/expected/cal/colorw-reformation-corner-cases-1-week-numbers | 4 | ||||
| -rw-r--r-- | tests/expected/cal/colorw-reformation-corner-cases-2-week-numbers | 4 | ||||
| -rw-r--r-- | tests/expected/cal/colorw-reformation-corner-cases-3-week-numbers | 4 | ||||
| -rw-r--r-- | tests/expected/cal/colorw-reformation-corner-cases-4-week-numbers | 4 |
15 files changed, 44 insertions, 29 deletions
diff --git a/misc-utils/cal.c b/misc-utils/cal.c index 09622165a4..c264610671 100644 --- a/misc-utils/cal.c +++ b/misc-utils/cal.c @@ -778,27 +778,35 @@ static void cal_output_header(struct cal_month *month, const struct cal_control char out[FMT_ST_CHARS]; struct cal_month *i; - cal_enable_color(CAL_COLOR_HEADER); if (ctl->header_hint || ctl->header_year) { + cal_enable_color(CAL_COLOR_HEADER); for (i = month; i; i = i->next) { snprintf(out, sizeof(out), "%s", ctl->full_month[i->month - 1]); center(out, ctl->week_width, i->next == NULL ? 0 : ctl->gutter_width); } + cal_disable_color(CAL_COLOR_HEADER); + if (!ctl->header_year) { fputc('\n', stdout); + cal_enable_color(CAL_COLOR_HEADER); for (i = month; i; i = i->next) { snprintf(out, sizeof(out), "%04d", i->year); center(out, ctl->week_width, i->next == NULL ? 0 : ctl->gutter_width); } + cal_disable_color(CAL_COLOR_HEADER); } } else { + cal_enable_color(CAL_COLOR_HEADER); for (i = month; i; i = i->next) { snprintf(out, sizeof(out), "%s %04d", ctl->full_month[i->month - 1], i->year); center(out, ctl->week_width, i->next == NULL ? 0 : ctl->gutter_width); } + cal_disable_color(CAL_COLOR_HEADER); } fputc('\n', stdout); + + cal_enable_color(CAL_COLOR_HEADER); for (i = month; i; i = i->next) { if (ctl->weektype) { if (ctl->julian) @@ -821,20 +829,25 @@ static void cal_vert_output_header(struct cal_month *month, struct cal_month *m; int month_width; - cal_enable_color(CAL_COLOR_HEADER); month_width = ctl->day_width * (MAXDAYS / DAYS_IN_WEEK); /* Padding for the weekdays */ + cal_enable_color(CAL_COLOR_HEADER); printf("%*s", (int)ctl->day_width + 1, ""); + cal_disable_color(CAL_COLOR_HEADER); if (ctl->header_hint || ctl->header_year) { + cal_enable_color(CAL_COLOR_HEADER); for (m = month; m; m = m->next) { snprintf(out, sizeof(out), "%s", ctl->full_month[m->month - 1]); left(out, month_width, ctl->gutter_width); } + cal_disable_color(CAL_COLOR_HEADER); + if (!ctl->header_year) { fputc('\n', stdout); + cal_enable_color(CAL_COLOR_HEADER); /* Padding for the weekdays */ printf("%*s", (int)ctl->day_width + 1, ""); @@ -842,15 +855,17 @@ static void cal_vert_output_header(struct cal_month *month, snprintf(out, sizeof(out), "%04d", m->year); left(out, month_width, ctl->gutter_width); } + cal_disable_color(CAL_COLOR_HEADER); } } else { + cal_enable_color(CAL_COLOR_HEADER); for (m = month; m; m = m->next) { snprintf(out, sizeof(out), "%s %04d", ctl->full_month[m->month - 1], m->year); left(out, month_width, ctl->gutter_width); } + cal_disable_color(CAL_COLOR_HEADER); } - cal_disable_color(CAL_COLOR_HEADER); fputc('\n', stdout); } diff --git a/tests/expected/cal/color-first-day b/tests/expected/cal/color-first-day index 229681d6aa..f0a836dc1b 100644 --- a/tests/expected/cal/color-first-day +++ b/tests/expected/cal/color-first-day @@ -1,5 +1,5 @@ -[35m January 0001 -Su Mo Tu We Th Fr Sa[0m +[35m January 0001 [0m +[35mSu Mo Tu We Th Fr Sa[0m [31m [[48;5;160m[38;5;221m 1[0m[0m [31m 2[0m[1;33m 3[0m[1;33m 4[0m[1;33m 5[0m[1;33m 6[0m[1;33m 7[0m[31m 8[0m [31m 9[0m[1;33m 10[0m[1;33m 11[0m[1;33m 12[0m[1;33m 13[0m[1;33m 14[0m[31m 15[0m diff --git a/tests/expected/cal/color-last-day b/tests/expected/cal/color-last-day index b7020ab3ff..622839167d 100644 --- a/tests/expected/cal/color-last-day +++ b/tests/expected/cal/color-last-day @@ -1,5 +1,5 @@ -[35m November 9999 December 9999 January 10000 -Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa[0m +[35m November 9999 December 9999 January 10000 [0m +[35mSu Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa[0m [1;33m 1[0m[1;33m 2[0m[1;33m 3[0m[1;33m 4[0m[1;33m 5[0m[31m 6[0m [1;33m 1[0m[1;33m 2[0m[1;33m 3[0m[31m 4[0m [31m 1[0m [31m 7[0m[1;33m 8[0m[1;33m 9[0m[1;33m 10[0m[1;33m 11[0m[1;33m 12[0m[31m 13[0m [31m 5[0m[1;33m 6[0m[1;33m 7[0m[1;33m 8[0m[1;33m 9[0m[1;33m 10[0m[31m 11[0m [31m 2[0m[1;33m 3[0m[1;33m 4[0m[1;33m 5[0m[1;33m 6[0m[1;33m 7[0m[31m 8[0m [31m14[0m[1;33m 15[0m[1;33m 16[0m[1;33m 17[0m[1;33m 18[0m[1;33m 19[0m[31m 20[0m [31m12[0m[1;33m 13[0m[1;33m 14[0m[1;33m 15[0m[1;33m 16[0m[1;33m 17[0m[31m 18[0m [31m 9[0m[1;33m 10[0m[1;33m 11[0m[1;33m 12[0m[1;33m 13[0m[1;33m 14[0m[31m 15[0m diff --git a/tests/expected/cal/color-reformation-corner-cases-1 b/tests/expected/cal/color-reformation-corner-cases-1 index af9e2bd81a..56448187e5 100644 --- a/tests/expected/cal/color-reformation-corner-cases-1 +++ b/tests/expected/cal/color-reformation-corner-cases-1 @@ -1,5 +1,5 @@ -[35m September 1752 -Su Mo Tu We Th Fr Sa[0m +[35m September 1752 [0m +[35mSu Mo Tu We Th Fr Sa[0m [1;33m 1[0m[1;33m [[48;5;160m[38;5;221m 2[0m[0m[1;33m 14[0m[1;33m 15[0m[31m 16[0m [31m17[0m[1;33m 18[0m[1;33m 19[0m[1;33m 20[0m[1;33m 21[0m[1;33m 22[0m[31m 23[0m [31m24[0m[1;33m 25[0m[1;33m 26[0m[1;33m 27[0m[1;33m 28[0m[1;33m 29[0m[31m 30[0m diff --git a/tests/expected/cal/color-reformation-corner-cases-2 b/tests/expected/cal/color-reformation-corner-cases-2 index 75402e99a9..afe0f864a5 100644 --- a/tests/expected/cal/color-reformation-corner-cases-2 +++ b/tests/expected/cal/color-reformation-corner-cases-2 @@ -1,5 +1,5 @@ -[35m September 1752 -Su Mo Tu We Th Fr Sa[0m +[35m September 1752 [0m +[35mSu Mo Tu We Th Fr Sa[0m [1;33m 1[0m[1;33m 2[0m[1;33m 14[0m[1;33m 15[0m[31m 16[0m [31m17[0m[1;33m 18[0m[1;33m 19[0m[1;33m 20[0m[1;33m 21[0m[1;33m 22[0m[31m 23[0m [31m24[0m[1;33m 25[0m[1;33m 26[0m[1;33m 27[0m[1;33m 28[0m[1;33m 29[0m[31m 30[0m diff --git a/tests/expected/cal/color-reformation-corner-cases-3 b/tests/expected/cal/color-reformation-corner-cases-3 index 75402e99a9..afe0f864a5 100644 --- a/tests/expected/cal/color-reformation-corner-cases-3 +++ b/tests/expected/cal/color-reformation-corner-cases-3 @@ -1,5 +1,5 @@ -[35m September 1752 -Su Mo Tu We Th Fr Sa[0m +[35m September 1752 [0m +[35mSu Mo Tu We Th Fr Sa[0m [1;33m 1[0m[1;33m 2[0m[1;33m 14[0m[1;33m 15[0m[31m 16[0m [31m17[0m[1;33m 18[0m[1;33m 19[0m[1;33m 20[0m[1;33m 21[0m[1;33m 22[0m[31m 23[0m [31m24[0m[1;33m 25[0m[1;33m 26[0m[1;33m 27[0m[1;33m 28[0m[1;33m 29[0m[31m 30[0m diff --git a/tests/expected/cal/color-reformation-corner-cases-4 b/tests/expected/cal/color-reformation-corner-cases-4 index dbf47a9085..52dd9ce97e 100644 --- a/tests/expected/cal/color-reformation-corner-cases-4 +++ b/tests/expected/cal/color-reformation-corner-cases-4 @@ -1,5 +1,5 @@ -[35m September 1752 -Su Mo Tu We Th Fr Sa[0m +[35m September 1752 [0m +[35mSu Mo Tu We Th Fr Sa[0m [1;33m 1[0m[1;33m 2[0m[1;33m [[48;5;160m[38;5;221m14[0m[0m[1;33m 15[0m[31m 16[0m [31m17[0m[1;33m 18[0m[1;33m 19[0m[1;33m 20[0m[1;33m 21[0m[1;33m 22[0m[31m 23[0m [31m24[0m[1;33m 25[0m[1;33m 26[0m[1;33m 27[0m[1;33m 28[0m[1;33m 29[0m[31m 30[0m diff --git a/tests/expected/cal/color-vertical b/tests/expected/cal/color-vertical index f4ffac6a5d..0d7e2596b2 100644 --- a/tests/expected/cal/color-vertical +++ b/tests/expected/cal/color-vertical @@ -1,4 +1,4 @@ -[35m February 2023 [0m +[35m [0m[35mFebruary 2023 [0m [35mSu[0m [31m 5[0m[31m 12[0m[31m 19[0m[31m 26[0m [35mMo[0m [1;33m 6[0m[1;33m 13[0m[1;33m 20[0m[1;33m 27[0m [35mTu[0m [1;33m 7[0m[1;33m 14[0m[1;33m 21[0m[1;33m 28[0m diff --git a/tests/expected/cal/color-vertical-week b/tests/expected/cal/color-vertical-week index 7060361853..dfaad2b771 100644 --- a/tests/expected/cal/color-vertical-week +++ b/tests/expected/cal/color-vertical-week @@ -1,4 +1,4 @@ -[35m February 2023 [0m +[35m [0m[35mFebruary 2023 [0m [35mSu[0m [31m 5[0m[31m 12[0m[31m 19[0m[31m 26[0m [35mMo[0m [1;33m 6[0m[1;33m 13[0m[1;33m 20[0m[1;33m 27[0m [35mTu[0m [1;33m 7[0m[1;33m 14[0m[1;33m 21[0m[1;33m 28[0m diff --git a/tests/expected/cal/colorw-first-day-week-numbers b/tests/expected/cal/colorw-first-day-week-numbers index f3117d89b2..f1fb66f9a9 100644 --- a/tests/expected/cal/colorw-first-day-week-numbers +++ b/tests/expected/cal/colorw-first-day-week-numbers @@ -1,5 +1,5 @@ -[35m January 0001 - Su Mo Tu We Th Fr Sa[0m +[35m January 0001 [0m +[35m Su Mo Tu We Th Fr Sa[0m [32m 1[0m [31m [[48;5;160m[38;5;221m 1[0m[0m [32m 2[0m[31m 2[0m[1;33m 3[0m[1;33m 4[0m[1;33m 5[0m[1;33m 6[0m[1;33m 7[0m[31m 8[0m [32m 3[0m[31m 9[0m[1;33m 10[0m[1;33m 11[0m[1;33m 12[0m[1;33m 13[0m[1;33m 14[0m[31m 15[0m diff --git a/tests/expected/cal/colorw-last-day-week-numbers b/tests/expected/cal/colorw-last-day-week-numbers index dd081fdfc6..ddf8f54b22 100644 --- a/tests/expected/cal/colorw-last-day-week-numbers +++ b/tests/expected/cal/colorw-last-day-week-numbers @@ -1,5 +1,5 @@ -[35m November 9999 December 9999 January 10000 - Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa[0m +[35m November 9999 December 9999 January 10000 [0m +[35m Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa[0m [32m45[0m [1;33m 1[0m[1;33m 2[0m[1;33m 3[0m[1;33m 4[0m[1;33m 5[0m[31m 6[0m [32m49[0m [1;33m 1[0m[1;33m 2[0m[1;33m 3[0m[31m 4[0m [32m 1[0m [31m 1[0m [32m46[0m[31m 7[0m[1;33m 8[0m[1;33m 9[0m[1;33m 10[0m[1;33m 11[0m[1;33m 12[0m[31m 13[0m [32m50[0m[31m 5[0m[1;33m 6[0m[1;33m 7[0m[1;33m 8[0m[1;33m 9[0m[1;33m 10[0m[31m 11[0m [32m 2[0m[31m 2[0m[1;33m 3[0m[1;33m 4[0m[1;33m 5[0m[1;33m 6[0m[1;33m 7[0m[31m 8[0m [32m47[0m[31m 14[0m[1;33m 15[0m[1;33m 16[0m[1;33m 17[0m[1;33m 18[0m[1;33m 19[0m[31m 20[0m [32m51[0m[31m 12[0m[1;33m 13[0m[1;33m 14[0m[1;33m 15[0m[1;33m 16[0m[1;33m 17[0m[31m 18[0m [32m 3[0m[31m 9[0m[1;33m 10[0m[1;33m 11[0m[1;33m 12[0m[1;33m 13[0m[1;33m 14[0m[31m 15[0m diff --git a/tests/expected/cal/colorw-reformation-corner-cases-1-week-numbers b/tests/expected/cal/colorw-reformation-corner-cases-1-week-numbers index a94a28e549..9144c72db9 100644 --- a/tests/expected/cal/colorw-reformation-corner-cases-1-week-numbers +++ b/tests/expected/cal/colorw-reformation-corner-cases-1-week-numbers @@ -1,5 +1,5 @@ -[35m September 1752 - Su Mo Tu We Th Fr Sa[0m +[35m September 1752 [0m +[35m Su Mo Tu We Th Fr Sa[0m [32m36[0m [1;33m 1[0m[1;33m [[48;5;160m[38;5;221m 2[0m[0m[1;33m 14[0m[1;33m 15[0m[31m 16[0m [32m37[0m[31m 17[0m[1;33m 18[0m[1;33m 19[0m[1;33m 20[0m[1;33m 21[0m[1;33m 22[0m[31m 23[0m [32m38[0m[31m 24[0m[1;33m 25[0m[1;33m 26[0m[1;33m 27[0m[1;33m 28[0m[1;33m 29[0m[31m 30[0m diff --git a/tests/expected/cal/colorw-reformation-corner-cases-2-week-numbers b/tests/expected/cal/colorw-reformation-corner-cases-2-week-numbers index 701eb91fe8..88955a4935 100644 --- a/tests/expected/cal/colorw-reformation-corner-cases-2-week-numbers +++ b/tests/expected/cal/colorw-reformation-corner-cases-2-week-numbers @@ -1,5 +1,5 @@ -[35m September 1752 - Su Mo Tu We Th Fr Sa[0m +[35m September 1752 [0m +[35m Su Mo Tu We Th Fr Sa[0m [32m36[0m [1;33m 1[0m[1;33m 2[0m[1;33m 14[0m[1;33m 15[0m[31m 16[0m [32m37[0m[31m 17[0m[1;33m 18[0m[1;33m 19[0m[1;33m 20[0m[1;33m 21[0m[1;33m 22[0m[31m 23[0m [32m38[0m[31m 24[0m[1;33m 25[0m[1;33m 26[0m[1;33m 27[0m[1;33m 28[0m[1;33m 29[0m[31m 30[0m diff --git a/tests/expected/cal/colorw-reformation-corner-cases-3-week-numbers b/tests/expected/cal/colorw-reformation-corner-cases-3-week-numbers index 701eb91fe8..88955a4935 100644 --- a/tests/expected/cal/colorw-reformation-corner-cases-3-week-numbers +++ b/tests/expected/cal/colorw-reformation-corner-cases-3-week-numbers @@ -1,5 +1,5 @@ -[35m September 1752 - Su Mo Tu We Th Fr Sa[0m +[35m September 1752 [0m +[35m Su Mo Tu We Th Fr Sa[0m [32m36[0m [1;33m 1[0m[1;33m 2[0m[1;33m 14[0m[1;33m 15[0m[31m 16[0m [32m37[0m[31m 17[0m[1;33m 18[0m[1;33m 19[0m[1;33m 20[0m[1;33m 21[0m[1;33m 22[0m[31m 23[0m [32m38[0m[31m 24[0m[1;33m 25[0m[1;33m 26[0m[1;33m 27[0m[1;33m 28[0m[1;33m 29[0m[31m 30[0m diff --git a/tests/expected/cal/colorw-reformation-corner-cases-4-week-numbers b/tests/expected/cal/colorw-reformation-corner-cases-4-week-numbers index e35901a0f3..fc4fb46946 100644 --- a/tests/expected/cal/colorw-reformation-corner-cases-4-week-numbers +++ b/tests/expected/cal/colorw-reformation-corner-cases-4-week-numbers @@ -1,5 +1,5 @@ -[35m September 1752 - Su Mo Tu We Th Fr Sa[0m +[35m September 1752 [0m +[35m Su Mo Tu We Th Fr Sa[0m [32m36[0m [1;33m 1[0m[1;33m 2[0m[1;33m [[48;5;160m[38;5;221m14[0m[0m[1;33m 15[0m[31m 16[0m [32m37[0m[31m 17[0m[1;33m 18[0m[1;33m 19[0m[1;33m 20[0m[1;33m 21[0m[1;33m 22[0m[31m 23[0m [32m38[0m[31m 24[0m[1;33m 25[0m[1;33m 26[0m[1;33m 27[0m[1;33m 28[0m[1;33m 29[0m[31m 30[0m |
