summaryrefslogtreecommitdiffstats
path: root/usr.bin
diff options
context:
space:
mode:
authorgrog <grog@FreeBSD.org>2011-11-09 01:40:46 +0000
committergrog <grog@FreeBSD.org>2011-11-09 01:40:46 +0000
commitf6a5c05b52acccfb6c59d43c00c055a2100f5004 (patch)
treeb3b50b309e7dbbf99e1b2d7e0f5961eeab1f1f03 /usr.bin
parent91e70324c8742bc6ba8e92c469508daebe32f7da (diff)
downloadFreeBSD-src-f6a5c05b52acccfb6c59d43c00c055a2100f5004.zip
FreeBSD-src-f6a5c05b52acccfb6c59d43c00c055a2100f5004.tar.gz
Tidy up command line processing:
- Add ? option to optstring. - Sort options alphabetically. - Vertical space. Tidy up usage() function. Bring man page in sync with source. Ensure that debug code is only executed with the -d option. Submitted by: Christiane Yeardley
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/calendar/calendar.131
-rw-r--r--usr.bin/calendar/calendar.c43
-rw-r--r--usr.bin/calendar/io.c3
-rw-r--r--usr.bin/calendar/parsedata.c23
4 files changed, 58 insertions, 42 deletions
diff --git a/usr.bin/calendar/calendar.1 b/usr.bin/calendar/calendar.1
index 42fa68d..60e8955 100644
--- a/usr.bin/calendar/calendar.1
+++ b/usr.bin/calendar/calendar.1
@@ -36,11 +36,14 @@
.Nd reminder service
.Sh SYNOPSIS
.Nm
-.Op Fl a
.Op Fl A Ar num
+.Op Fl a
.Op Fl B Ar num
+.Op Fl D Ar moon|sun
+.Op Fl d
.Op Fl F Ar friday
.Op Fl f Ar calendarfile
+.Op Fl l Ar longitude
.Oo
.Bk -words
.Fl t Ar dd Ns
@@ -49,16 +52,14 @@
.Sm on
.Ek
.Oc
-.Op Fl W Ar num
.Op Fl U Ar UTC-offset
-.Op Fl l Ar longitude
+.Op Fl W Ar num
.Sh DESCRIPTION
The
.Nm
utility checks the current directory for a file named
.Pa calendar
-and displays lines that begin with either today's date
-or tomorrow's.
+and displays lines that fall into the specified date range.
On the day before a weekend (normally Friday), events for the next
three days are displayed.
.Pp
@@ -76,6 +77,10 @@ This requires super-user privileges.
Print lines from today and the previous
.Ar num
days (backward, past).
+.It Fl D Ar moon|sun
+Print UTC offset, longitude and moon or sun information.
+.It Fl d
+Debug option: print current date information.
.It Fl F Ar friday
Specify which day of the week is ``Friday'' (the day before the
weekend begins).
@@ -84,6 +89,11 @@ Default is 5.
Use
.Pa calendarfile
as the default calendar file.
+.It Fl l Ar longitude
+Perform lunar and solar calculations from this longitude.
+If neither longitude nor UTC offset is specified, the calculations will
+be based on the difference between UTC time and localtime.
+If both are specified, UTC offset overrides longitude.
.It Xo Fl t
.Sm off
.Ar dd
@@ -91,12 +101,11 @@ as the default calendar file.
.Sm on
.Xc
For test purposes only: set date directly to argument values.
-.It Fl l Ar longitude , Fl U Ar UTC-offset
-Only one is needed:
-Perform lunar and solar calculations from this longitude or from
-this UTC offset.
-If neither is specified, the calculations will be based on the
-difference between UTC time and localtime.
+.It Fl U Ar UTC-offset
+Perform lunar and solar calculations from this UTC offset.
+If neither UTC offset nor longitude is specified, the calculations
+will be based on the difference between UTC time and localtime.
+If both are specified, UTC offset overrides longitude.
.It Fl W Ar num
Print lines from today and the next
.Ar num
diff --git a/usr.bin/calendar/calendar.c b/usr.bin/calendar/calendar.c
index 29ac174..bd03e02 100644
--- a/usr.bin/calendar/calendar.c
+++ b/usr.bin/calendar/calendar.c
@@ -35,7 +35,7 @@ static const char copyright[] =
#if 0
#ifndef lint
-static char sccsid[] = "@(#)calendar.c 8.3 (Berkeley) 3/25/94";
+static char sccsid[] = "@(#)calendar.c 8.3 (Berkeley) 3/25/94";
#endif
#endif
@@ -79,7 +79,7 @@ main(int argc, char *argv[])
(void)setlocale(LC_ALL, "");
- while ((ch = getopt(argc, argv, "-A:aB:dD:F:f:l:t:U:W:")) != -1)
+ while ((ch = getopt(argc, argv, "-A:aB:D:dF:f:l:t:U:W:?")) != -1)
switch (ch) {
case '-': /* backward contemptible */
case 'a':
@@ -90,10 +90,6 @@ main(int argc, char *argv[])
doall = 1;
break;
- case 'f': /* other calendar file */
- calendarFile = optarg;
- break;
-
case 'W': /* we don't need no steenking Fridays */
Friday = -1;
/* FALLTHROUGH */
@@ -106,26 +102,34 @@ main(int argc, char *argv[])
f_dayBefore = atoi(optarg);
break;
+ case 'D': /* debug output of sun and moon info */
+ DEBUG = optarg;
+ break;
+
+ case 'd': /* debug output of current date */
+ debug = 1;
+ break;
+
case 'F': /* Change the time: When does weekend start? */
Friday = atoi(optarg);
break;
+
+ case 'f': /* other calendar file */
+ calendarFile = optarg;
+ break;
+
case 'l': /* Change longitudal position */
EastLongitude = strtol(optarg, NULL, 10);
break;
- case 'U': /* Change UTC offset */
- UTCOffset = strtod(optarg, NULL);
- break;
- case 'd':
- debug = 1;
- break;
- case 'D':
- DEBUG = optarg;
- break;
- case 't': /* other date, undocumented, for tests */
+ case 't': /* other date, for tests */
f_time = Mktime(optarg);
break;
+ case 'U': /* Change UTC offset */
+ UTCOffset = strtod(optarg, NULL);
+ break;
+
case '?':
default:
usage();
@@ -216,10 +220,9 @@ usage(void)
{
fprintf(stderr, "%s\n%s\n%s\n",
- "usage: calendar [-a] [-A days] [-B days] [-F friday] "
- "[-f calendarfile]",
- " [-d] [-t dd[.mm[.year]]] [-W days]",
- " [-U utcoffset] [-l longitude]"
+ "usage: calendar [-A days] [-a] [-B days] [-D sun|moon] [-d]",
+ " [-F friday] [-f calendarfile] [-l longitude]",
+ " [-t dd[.mm[.year]]] [-U utcoffset] [-W days]"
);
exit(1);
}
diff --git a/usr.bin/calendar/io.c b/usr.bin/calendar/io.c
index eb37eac..e1ed21d 100644
--- a/usr.bin/calendar/io.c
+++ b/usr.bin/calendar/io.c
@@ -176,7 +176,8 @@ cal(void)
*pp = p;
if (count < 0) {
/* Show error status based on return value */
- fprintf(stderr, "Ignored: %s\n", buf);
+ if (debug)
+ fprintf(stderr, "Ignored: %s\n", buf);
if (count == -1)
continue;
count = -count + 1;
diff --git a/usr.bin/calendar/parsedata.c b/usr.bin/calendar/parsedata.c
index c7e183c..63e4395 100644
--- a/usr.bin/calendar/parsedata.c
+++ b/usr.bin/calendar/parsedata.c
@@ -10,7 +10,7 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
@@ -22,7 +22,7 @@
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
- *
+ *
*/
#include <sys/cdefs.h>
@@ -79,7 +79,7 @@ static char *floattotime(double f);
* '300' ... '359' | '360' ... '365'
* ModifierIndex ::= 'Second' | 'Third' | 'Fourth' | 'Fifth' |
* 'First' | 'Last'
- *
+ *
* SpecialDay ::= 'Easter' | 'Paskha' | 'ChineseNewYear'
*
*/
@@ -313,7 +313,7 @@ fail:
allfine:
*p = pold;
return (1);
-
+
}
static void
@@ -407,7 +407,7 @@ parsedaymonth(char *date, int *yearp, int *monthp, int *dayp, int *flags,
*
* Month: 1-12
* Monthname: Jan .. Dec
- * Day: 1-31
+ * Day: 1-31
* Weekday: Mon .. Sun
*
*/
@@ -754,10 +754,13 @@ parsedaymonth(char *date, int *yearp, int *monthp, int *dayp, int *flags,
continue;
}
- printf("Unprocessed:\n");
- debug_determinestyle(2, date, lflags, month, imonth,
- dayofmonth, idayofmonth, dayofweek, idayofweek,
- modifieroffset, modifierindex, specialday, syear, iyear);
+ if (debug) {
+ printf("Unprocessed:\n");
+ debug_determinestyle(2, date, lflags, month, imonth,
+ dayofmonth, idayofmonth, dayofweek, idayofweek,
+ modifieroffset, modifierindex, specialday, syear,
+ iyear);
+ }
retvalsign = -1;
}
@@ -1045,7 +1048,7 @@ dodebug(char *what)
printf("\n");
}
-
+
return;
}
OpenPOWER on IntegriCloud