svn commit: r227370 - head/usr.bin/calendar
Greg Lehey
grog at FreeBSD.org
Wed Nov 9 01:40:47 UTC 2011
Author: grog
Date: Wed Nov 9 01:40:46 2011
New Revision: 227370
URL: http://svn.freebsd.org/changeset/base/227370
Log:
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
Modified:
head/usr.bin/calendar/calendar.1
head/usr.bin/calendar/calendar.c
head/usr.bin/calendar/io.c
head/usr.bin/calendar/parsedata.c
Modified: head/usr.bin/calendar/calendar.1
==============================================================================
--- head/usr.bin/calendar/calendar.1 Tue Nov 8 23:54:39 2011 (r227369)
+++ head/usr.bin/calendar/calendar.1 Wed Nov 9 01:40:46 2011 (r227370)
@@ -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
Modified: head/usr.bin/calendar/calendar.c
==============================================================================
--- head/usr.bin/calendar/calendar.c Tue Nov 8 23:54:39 2011 (r227369)
+++ head/usr.bin/calendar/calendar.c Wed Nov 9 01:40:46 2011 (r227370)
@@ -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);
}
Modified: head/usr.bin/calendar/io.c
==============================================================================
--- head/usr.bin/calendar/io.c Tue Nov 8 23:54:39 2011 (r227369)
+++ head/usr.bin/calendar/io.c Wed Nov 9 01:40:46 2011 (r227370)
@@ -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;
Modified: head/usr.bin/calendar/parsedata.c
==============================================================================
--- head/usr.bin/calendar/parsedata.c Tue Nov 8 23:54:39 2011 (r227369)
+++ head/usr.bin/calendar/parsedata.c Wed Nov 9 01:40:46 2011 (r227370)
@@ -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, in
*
* Month: 1-12
* Monthname: Jan .. Dec
- * Day: 1-31
+ * Day: 1-31
* Weekday: Mon .. Sun
*
*/
@@ -754,10 +754,13 @@ parsedaymonth(char *date, int *yearp, in
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;
}
More information about the svn-src-head
mailing list