commit efac15726bcd43ed7cef96676a75672be6fb4a0e
parent 6c2074560efe07b5b8c357e4b2bb306502419197
Author: Greg Reagle <greg.reagle@umbc.edu>
Date: Thu, 8 Jan 2015 14:21:37 -0500
If only the year operand is given, cal shall produce a calendar for all twelve months in the given calendar year.
Diffstat:
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/cal.1 b/cal.1
@@ -28,7 +28,13 @@ of calendars side by side. Each row of calendars contains at most
.IR columns
number of calendars. The defaults are obtained using
.IR localtime (3).
-The Julian calendar is used through Sep 2, 1752, and the Gregorian calendar is used starting the next day with Sep 14, 1752.
+If
+.IR year
+is given without
+.IR month
+print the whole year, unless overridden by options. The Julian calendar is used
+through Sep 2, 1752, and the Gregorian calendar is used starting the next day
+with Sep 14, 1752.
.SH OPTIONS
.TP
.B \-1
diff --git a/cal.c b/cal.c
@@ -146,7 +146,7 @@ main(int argc, char *argv[])
fday = 0;
ncols = 3;
- nmons = 1;
+ nmons = 0;
ARGBEGIN {
case '1':
@@ -183,6 +183,15 @@ main(int argc, char *argv[])
usage();
} ARGEND;
+ if (nmons == 0) {
+ if (argc == 1) {
+ month = 1;
+ nmons = 12;
+ } else {
+ nmons = 1;
+ }
+ }
+
switch (argc) {
case 2:
month = estrtol(argv[0], 0);