This patch, put together by Manuel Novoa III, is a merge of work
done by Evin Robertson (bug#1105) and work from Manuel to make
usage messages occupy less space and simplify how usage messages
are displayed.
diff --git a/coreutils/date.c b/coreutils/date.c
index 8b6a062..21d31bb 100644
--- a/coreutils/date.c
+++ b/coreutils/date.c
@@ -151,7 +151,7 @@
 			case 's':
 				set_time = 1;
 				if ((date_str != NULL) || ((date_str = optarg) == NULL)) {
-					usage(date_usage);
+					show_usage();
 				}
 				break;
 			case 'u':
@@ -162,10 +162,10 @@
 			case 'd':
 				use_arg = 1;
 				if ((date_str != NULL) || ((date_str = optarg) == NULL))
-					usage(date_usage);
+					show_usage();
 				break;
 			default:
-				usage(date_usage);
+				show_usage();
 		}
 	}
 
@@ -178,7 +178,7 @@
 #if 0
 	else {
 		error_msg("date_str='%s'  date_fmt='%s'\n", date_str, date_fmt);
-		usage(date_usage);
+		show_usage();
 	}
 #endif