From a88057d9a329c11a5d4eaf7e15ce25b09be800e5 Mon Sep 17 00:00:00 2001 From: Tom Prince Date: Thu, 14 May 2009 22:43:02 -0400 Subject: cal: uClibc has langinfo.h but not _NL_TIME_WEEK_1STDAY. Signed-off-by: Tom Prince --- misc-utils/cal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'misc-utils/cal.c') diff --git a/misc-utils/cal.c b/misc-utils/cal.c index f2d52e8c..a8534b8c 100644 --- a/misc-utils/cal.c +++ b/misc-utils/cal.c @@ -291,7 +291,7 @@ main(int argc, char **argv) { * the locale database, which can be overridden with the * -s (Sunday) or -m (Monday) options. */ -#ifdef HAVE_LANGINFO_H +#if HAVE_DECL__NL_TIME_WEEK_1STDAY /* * You need to use 2 locale variables to get the first day of the week. * This is needed to support first_weekday=2 and first_workday=1 for -- cgit v1.2.3 From 32dec5ac256b982af21cd00c83881b47fe543364 Mon Sep 17 00:00:00 2001 From: Peter Breitenlohner Date: Fri, 17 Jul 2009 13:12:48 +0200 Subject: cal: fix (harmless) typo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Peter Breitenlohner Signed-off-by: Pádraig Brady --- misc-utils/cal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'misc-utils/cal.c') diff --git a/misc-utils/cal.c b/misc-utils/cal.c index a8534b8c..3e38f8ed 100644 --- a/misc-utils/cal.c +++ b/misc-utils/cal.c @@ -354,7 +354,7 @@ main(int argc, char **argv) { day = month = year = 0; switch(argc) { case 3: - if ((day = atoi(*argv++)) < 1 || month > 31) + if ((day = atoi(*argv++)) < 1 || day > 31) errx(1, _("illegal day value: use 1-%d"), 31); /* FALLTHROUGH */ case 2: -- cgit v1.2.3 From f06602a42a0ea3551a15f6d8d0caa40e993c4cb4 Mon Sep 17 00:00:00 2001 From: Peter Breitenlohner Date: Fri, 17 Jul 2009 13:39:07 +0200 Subject: cal: fix broken computation for Sep 1752 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Peter Breitenlohner Signed-off-by: Pádraig Brady --- misc-utils/cal.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'misc-utils/cal.c') diff --git a/misc-utils/cal.c b/misc-utils/cal.c index 3e38f8ed..bda3a963 100644 --- a/misc-utils/cal.c +++ b/misc-utils/cal.c @@ -162,7 +162,7 @@ char *Hrow; /* pointer to highlighted row in month */ #define FIRST_MISSING_DAY 639799 /* 3 Sep 1752 */ #define NUMBER_MISSING_DAYS 11 /* 11 day correction */ -#define MAXDAYS 43 /* max slots in a month array */ +#define MAXDAYS 42 /* slots in a month array */ #define SPACE -1 /* used in day array */ static int days_in_month[2][13] = { @@ -170,30 +170,34 @@ static int days_in_month[2][13] = { {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, }; -int sep1752[MAXDAYS] = { +#define SEP1752_OFS 4 /* sep1752[4] is a Sunday */ + +/* 1 Sep 1752 is represented by sep1752[6] and j_sep1752[6] */ +int sep1752[MAXDAYS+6] = { + SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, 1, 2, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, - SPACE -}, j_sep1752[MAXDAYS] = { + SPACE, SPACE +}, j_sep1752[MAXDAYS+6] = { + SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, 245, 246, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, - SPACE + SPACE, SPACE }, empty[MAXDAYS] = { SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, - SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, - SPACE + SPACE, SPACE, SPACE, SPACE, SPACE, SPACE, SPACE }; #define DAY_LEN 3 /* 3 spaces per day */ @@ -629,10 +633,11 @@ day_array(int day, int month, int year, int *days) { int *d_sep1752; if (month == 9 && year == 1752) { + int sep1752_ofs = (weekstart + SEP1752_OFS) % 7; d_sep1752 = julian ? j_sep1752 : sep1752; - memcpy(days, d_sep1752 + weekstart, MAXDAYS * sizeof(int)); + memcpy(days, d_sep1752 + sep1752_ofs, MAXDAYS * sizeof(int)); for (dm=0; dm