cal(1) year formatting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 See the patch below. I have no strong opinion about it, any
 objection?

    Karel


>From e671a62ef8574b16cd6acbfd04dc35c514b184e5 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@xxxxxxxxxx>
Date: Wed, 18 May 2016 14:43:20 +0200
Subject: [PATCH] cal: use %04d for year

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@xxxxxxxxxx>
---
 misc-utils/cal.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/misc-utils/cal.c b/misc-utils/cal.c
index 2a53b89..3e20530 100644
--- a/misc-utils/cal.c
+++ b/misc-utils/cal.c
@@ -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");
 	}
-- 
2.4.11

--
To unsubscribe from this list: send the line "unsubscribe util-linux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux