sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

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:
Mcal.1 | 8+++++++-
Mcal.c | 11++++++++++-
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);