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) {
 |