aboutsummaryrefslogtreecommitdiff
path: root/coreutils/cal.c
diff options
context:
space:
mode:
Diffstat (limited to 'coreutils/cal.c')
-rw-r--r--coreutils/cal.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/coreutils/cal.c b/coreutils/cal.c
index 7973b82a1..1f498fb7f 100644
--- a/coreutils/cal.c
+++ b/coreutils/cal.c
@@ -77,7 +77,7 @@ static char *build_row(char *p, unsigned *dp);
77#define HEAD_SEP 2 /* spaces between day headings */ 77#define HEAD_SEP 2 /* spaces between day headings */
78 78
79int cal_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; 79int cal_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
80int cal_main(int argc, char **argv) 80int cal_main(int argc UNUSED_PARAM, char **argv)
81{ 81{
82 struct tm *local_time; 82 struct tm *local_time;
83 struct tm zero_tm; 83 struct tm zero_tm;
@@ -92,13 +92,8 @@ int cal_main(int argc, char **argv)
92 option_mask32 &= 1; 92 option_mask32 &= 1;
93 month = 0; 93 month = 0;
94 argv += optind; 94 argv += optind;
95 argc -= optind;
96 95
97 if (argc > 2) { 96 if (!argv[0]) {
98 bb_show_usage();
99 }
100
101 if (!argc) {
102 time(&now); 97 time(&now);
103 local_time = localtime(&now); 98 local_time = localtime(&now);
104 year = local_time->tm_year + 1900; 99 year = local_time->tm_year + 1900;
@@ -106,7 +101,10 @@ int cal_main(int argc, char **argv)
106 month = local_time->tm_mon + 1; 101 month = local_time->tm_mon + 1;
107 } 102 }
108 } else { 103 } else {
109 if (argc == 2) { 104 if (argv[1]) {
105 if (argv[2]) {
106 bb_show_usage();
107 }
110 month = xatou_range(*argv++, 1, 12); 108 month = xatou_range(*argv++, 1, 12);
111 } 109 }
112 year = xatou_range(*argv, 1, 9999); 110 year = xatou_range(*argv, 1, 9999);