45 lines
1.4 KiB
Diff
45 lines
1.4 KiB
Diff
--- a/misc-utils/cal.c
|
|
+++ b/misc-utils/cal.c
|
|
@@ -291,41 +291,6 @@ main(int argc, char **argv) {
|
|
}
|
|
#endif
|
|
|
|
-/*
|
|
- * The traditional Unix cal utility starts the week at Sunday,
|
|
- * while ISO 8601 starts at Monday. We read the start day from
|
|
- * the locale database, which can be overridden with the
|
|
- * -s (Sunday) or -m (Monday) options.
|
|
- */
|
|
-#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
|
|
- * the rare case where working days span across 2 weeks.
|
|
- * This shell script shows the combinations and calculations involved:
|
|
- *
|
|
- * for LANG in en_US ru_RU fr_FR csb_PL POSIX; do
|
|
- * printf "%s:\t%s + %s -1 = " $LANG $(locale week-1stday first_weekday)
|
|
- * date -d"$(locale week-1stday) +$(($(locale first_weekday)-1))day" +%w
|
|
- * done
|
|
- *
|
|
- * en_US: 19971130 + 1 -1 = 0 #0 = sunday
|
|
- * ru_RU: 19971130 + 2 -1 = 1
|
|
- * fr_FR: 19971201 + 1 -1 = 1
|
|
- * csb_PL: 19971201 + 2 -1 = 2
|
|
- * POSIX: 19971201 + 7 -1 = 0
|
|
- */
|
|
- {
|
|
- int wfd;
|
|
- union { unsigned int word; char *string; } val;
|
|
- val.string = nl_langinfo(_NL_TIME_WEEK_1STDAY);
|
|
-
|
|
- wfd = val.word;
|
|
- wfd = day_in_week(wfd % 100, (wfd / 100) % 100, wfd / (100 * 100));
|
|
- weekstart = (wfd + *nl_langinfo(_NL_TIME_FIRST_WEEKDAY) - 1) % 7;
|
|
- }
|
|
-#endif
|
|
-
|
|
yflag = 0;
|
|
while ((ch = getopt_long(argc, argv, "13mjsyVh", longopts, NULL)) != -1)
|
|
switch(ch) {
|