]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
cal: use %04d for year
authorKarel Zak <kzak@redhat.com>
Wed, 18 May 2016 12:43:20 +0000 (14:43 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 18 May 2016 12:43:20 +0000 (14:43 +0200)
It seems that people are crazy enough to assume that "cal 16" is the
year 2016, rather than 16 (2000 years ago).

This patch makes it more clear as the output is 0016.

Addresses: https://github.com/karelzak/util-linux/issues/320
Signed-off-by: Karel Zak <kzak@redhat.com>
misc-utils/cal.c

index 2a53b89aa6dd6fe10feb9191244aa2de652f87ba..3e20530253141e78cee054e55ac4036578df9e51 100644 (file)
@@ -516,7 +516,7 @@ static void headers_init(struct cal_control *ctl)
        char tmp[FMT_ST_CHARS];
        int year_len;
 
-       year_len = snprintf(tmp, sizeof(tmp), "%d", ctl->req.year);
+       year_len = snprintf(tmp, sizeof(tmp), "%04d", ctl->req.year);
 
        if (year_len < 0 || (size_t)year_len >= sizeof(tmp)) {
                /* XXX impossible error */
@@ -612,13 +612,13 @@ static void cal_output_header(struct cal_month *month, const struct cal_control
                if (!ctl->header_year) {
                        my_putstring("\n");
                        for (i = month; i; i = i->next) {
-                               sprintf(out, _("%d"), i->year);
+                               sprintf(out, _("%04d"), i->year);
                                center(out, ctl->week_width - 1, i->next == NULL ? 0 : ctl->gutter_width);
                        }
                }
        } else {
                for (i = month; i; i = i->next) {
-                       sprintf(out, _("%s %d"), ctl->full_month[i->month - 1], i->year);
+                       sprintf(out, _("%s %04d"), ctl->full_month[i->month - 1], i->year);
                        center(out, ctl->week_width - 1, i->next == NULL ? 0 : ctl->gutter_width);
                }
        }
@@ -762,7 +762,7 @@ static void yearly(const struct cal_control *ctl)
                year_width--;
 
        if (ctl->header_year) {
-               sprintf(out, "%d", ctl->req.year);
+               sprintf(out, "%04d", ctl->req.year);
                center(out, year_width, 0);
                my_putstring("\n\n");
        }