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
This commit is contained in:
parent
91e70324c8
commit
f6a5c05b52
@ -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
|
||||
|
@ -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,24 +102,32 @@ 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);
|
||||
|
||||
case 't': /* other date, for tests */
|
||||
f_time = Mktime(optarg);
|
||||
break;
|
||||
|
||||
case 'd':
|
||||
debug = 1;
|
||||
break;
|
||||
case 'D':
|
||||
DEBUG = optarg;
|
||||
break;
|
||||
case 't': /* other date, undocumented, for tests */
|
||||
f_time = Mktime(optarg);
|
||||
case 'U': /* Change UTC offset */
|
||||
UTCOffset = strtod(optarg, NULL);
|
||||
break;
|
||||
|
||||
case '?':
|
||||
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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 @@ determinestyle(char *date, int *flags,
|
||||
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user