summaryrefslogtreecommitdiffstats
path: root/usr.bin/calendar
diff options
context:
space:
mode:
authoredwin <edwin@FreeBSD.org>2008-08-05 08:11:54 +0000
committeredwin <edwin@FreeBSD.org>2008-08-05 08:11:54 +0000
commit8a75d14908eac0b506537bc0476a339cb9b13f7d (patch)
tree207ef0ba038d902b3008c892f508249448bae268 /usr.bin/calendar
parent484fc19a89996c8f1e57aa48768f139ab220c5b6 (diff)
downloadFreeBSD-src-8a75d14908eac0b506537bc0476a339cb9b13f7d.zip
FreeBSD-src-8a75d14908eac0b506537bc0476a339cb9b13f7d.tar.gz
style(9)ify usr.bin/calendar
PR: bin/118644 Approved by: bde@ (mentor) MFC after: 1 week
Diffstat (limited to 'usr.bin/calendar')
-rw-r--r--usr.bin/calendar/calendar.c37
-rw-r--r--usr.bin/calendar/calendar.h76
-rw-r--r--usr.bin/calendar/day.c251
-rw-r--r--usr.bin/calendar/io.c147
-rw-r--r--usr.bin/calendar/ostern.c67
-rw-r--r--usr.bin/calendar/paskha.c36
6 files changed, 324 insertions, 290 deletions
diff --git a/usr.bin/calendar/calendar.c b/usr.bin/calendar/calendar.c
index 5a0eefc..afd543c 100644
--- a/usr.bin/calendar/calendar.c
+++ b/usr.bin/calendar/calendar.c
@@ -58,22 +58,22 @@ __FBSDID("$FreeBSD$");
#include "pathnames.h"
#include "calendar.h"
-struct passwd *pw;
-int doall = 0;
-time_t f_time = 0;
+struct passwd *pw;
+int doall = 0;
+time_t f_time = 0;
-int f_dayAfter = 0; /* days after current date */
-int f_dayBefore = 0; /* days before current date */
-int Friday = 5; /* day before weekend */
+int f_dayAfter = 0; /* days after current date */
+int f_dayBefore = 0; /* days before current date */
+int Friday = 5; /* day before weekend */
int
main(int argc, char *argv[])
{
int ch;
- (void) setlocale(LC_ALL, "");
+ (void)setlocale(LC_ALL, "");
- while ((ch = getopt(argc, argv, "-af:t:A:B:F:W:")) != -1)
+ while ((ch = getopt(argc, argv, "-A:aB:F:f:t:W:")) != -1)
switch (ch) {
case '-': /* backward contemptible */
case 'a':
@@ -84,25 +84,24 @@ main(int argc, char *argv[])
doall = 1;
break;
-
case 'f': /* other calendar file */
- calendarFile = optarg;
+ calendarFile = optarg;
break;
case 't': /* other date, undocumented, for tests */
- f_time = Mktime (optarg);
+ f_time = Mktime(optarg);
break;
case 'W': /* we don't need no steenking Fridays */
Friday = -1;
- /* FALLTHROUGH */
+ /* FALLTHROUGH */
case 'A': /* days after current date */
f_dayAfter = atoi(optarg);
break;
case 'B': /* days before current date */
- f_dayBefore = atoi(optarg);
+ f_dayBefore = atoi(optarg);
break;
case 'F':
@@ -113,6 +112,7 @@ main(int argc, char *argv[])
default:
usage();
}
+
argc -= optind;
argv += optind;
@@ -120,11 +120,11 @@ main(int argc, char *argv[])
usage();
/* use current time */
- if (f_time <= 0)
- (void)time(&f_time);
+ if (f_time <= 0)
+ (void)time(&f_time);
settime(f_time);
-
+
if (doall)
while ((pw = getpwent()) != NULL) {
(void)setegid(pw->pw_gid);
@@ -143,11 +143,10 @@ main(int argc, char *argv[])
void
usage(void)
{
- (void)fprintf(stderr, "%s\n%s\n",
+
+ fprintf(stderr, "%s\n%s\n",
"usage: calendar [-a] [-A days] [-B days] [-F friday] "
"[-f calendarfile]",
" [-t dd[.mm[.year]]] [-W days]");
exit(1);
}
-
-
diff --git a/usr.bin/calendar/calendar.h b/usr.bin/calendar/calendar.h
index 4f4297b..c9c37ce 100644
--- a/usr.bin/calendar/calendar.h
+++ b/usr.bin/calendar/calendar.h
@@ -45,49 +45,53 @@ extern int *cumdays;
extern int yrdays;
extern struct fixs neaster, npaskha;
-void cal(void);
-void closecal(FILE *);
-int getday(char *);
-int getdayvar(char *);
-int getfield(char *, char **, int *);
-int getmonth(char *);
-int geteaster(char *, int);
-int getpaskha(char *, int);
-int easter(int);
-int isnow(char *, int *, int *, int *);
+void cal(void);
+void closecal(FILE *);
+int getday(char *);
+int getdayvar(char *);
+int getfield(char *, char **, int *);
+int getmonth(char *);
+int geteaster(char *, int);
+int getpaskha(char *, int);
+int easter(int);
+int isnow(char *, int *, int *, int *);
FILE *opencal(void);
-void settime(time_t);
-time_t Mktime(char *);
-void usage(void);
-void setnnames(void);
+void settime(time_t);
+time_t Mktime(char *);
+void usage(void);
+void setnnames(void);
#define isleap(y) ((((y) % 4) == 0 && ((y) % 100) != 0) || ((y) % 400) == 0)
/* some flags */
-#define F_ISMONTH 0x01 /* month (Januar ...) */
-#define F_ISDAY 0x02 /* day of week (Sun, Mon, ...) */
-#define F_ISDAYVAR 0x04 /* variables day of week, like SundayLast */
-#define F_EASTER 0x08 /* Easter or easter depending days */
+#define F_ISMONTH 0x01 /* month (January ...) */
+#define F_ISDAY 0x02 /* day of week (Sun, Mon, ...) */
+#define F_ISDAYVAR 0x04 /* variables day of week, like SundayLast */
+#define F_EASTER 0x08 /* Easter or easter depending days */
-extern int f_dayAfter; /* days after current date */
-extern int f_dayBefore; /* days bevore current date */
-extern int Friday; /* day before weekend */
+extern int f_dayAfter; /* days after current date */
+extern int f_dayBefore; /* days before current date */
+extern int Friday; /* day before weekend */
-struct fixs {
- char *name;
- int len;
-};
-
-struct event *event_add(struct event *events, int month, int day, char *date,
- int var, char *txt);
-void event_continue(struct event *events, char *txt);
-void event_print_all(FILE *fp, struct event *events);
-/* Stored calendar event */
+/*
+ * Event sorting related functions:
+ * - Use event_add() to create a new event
+ * - Use event_continue() to add more text to the last added event
+ * - Use event_print_all() to display them in time chronological order
+ */
+struct event *event_add(struct event *, int, int, char *, int, char *);
+void event_continue(struct event *events, char *txt);
+void event_print_all(FILE *fp, struct event *events);
struct event {
- int month;
- int day;
- int var;
- char *date;
- char *text;
+ int month;
+ int day;
+ int var;
+ char *date;
+ char *text;
struct event *next;
};
+
+struct fixs {
+ char *name;
+ int len;
+};
diff --git a/usr.bin/calendar/day.c b/usr.bin/calendar/day.c
index 8e3317b..d3f3c1e 100644
--- a/usr.bin/calendar/day.c
+++ b/usr.bin/calendar/day.c
@@ -47,16 +47,16 @@ __FBSDID("$FreeBSD$");
#include "pathnames.h"
#include "calendar.h"
-struct tm *tp;
-static const struct tm tm0;
-int *cumdays, yrdays;
-char dayname[10];
+struct tm *tp;
+static const struct tm tm0;
+int *cumdays, yrdays;
+char dayname[10];
/* 1-based month, 0-based days, cumulative */
-int daytab[][14] = {
- { 0, -1, 30, 58, 89, 119, 150, 180, 211, 242, 272, 303, 333, 364 },
- { 0, -1, 30, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 },
+int daytab[][14] = {
+ {0, -1, 30, 58, 89, 119, 150, 180, 211, 242, 272, 303, 333, 364},
+ {0, -1, 30, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365},
};
static char const *days[] = {
@@ -68,11 +68,11 @@ static const char *months[] = {
"jul", "aug", "sep", "oct", "nov", "dec", NULL,
};
-static struct fixs fndays[8]; /* full national days names */
-static struct fixs ndays[8]; /* short national days names */
+static struct fixs fndays[8]; /* full national days names */
+static struct fixs ndays[8]; /* short national days names */
-static struct fixs fnmonths[13]; /* full national months names */
-static struct fixs nmonths[13]; /* short national month names */
+static struct fixs fnmonths[13]; /* full national months names */
+static struct fixs nmonths[13]; /* short national month names */
void
@@ -143,7 +143,7 @@ settime(time_t now)
char *oldl, *lbufp;
tp = localtime(&now);
- if ( isleap(tp->tm_year + 1900) ) {
+ if (isleap(tp->tm_year + 1900)) {
yrdays = 366;
cumdays = daytab[1];
} else {
@@ -159,9 +159,9 @@ settime(time_t now)
lbufp = setlocale(LC_TIME, NULL);
if (lbufp != NULL && (oldl = strdup(lbufp)) == NULL)
errx(1, "cannot allocate memory");
- (void) setlocale(LC_TIME, "C");
+ (void)setlocale(LC_TIME, "C");
header[5].iov_len = strftime(dayname, sizeof(dayname), "%A", tp);
- (void) setlocale(LC_TIME, (oldl != NULL ? oldl : ""));
+ (void)setlocale(LC_TIME, (oldl != NULL ? oldl : ""));
if (oldl != NULL)
free(oldl);
@@ -172,38 +172,38 @@ settime(time_t now)
* Day: two digits, Month: two digits, Year: digits
*/
time_t
-Mktime (char *dp)
+Mktime(char *dp)
{
- time_t t;
- int d, m, y;
- struct tm tm;
-
- (void)time(&t);
- tp = localtime(&t);
-
- tm = tm0;
- tm.tm_mday = tp->tm_mday;
- tm.tm_mon = tp->tm_mon;
- tm.tm_year = tp->tm_year;
-
- switch (sscanf(dp, "%d.%d.%d", &d, &m, &y)) {
- case 3:
- if (y > 1900)
- y -= 1900;
- tm.tm_year = y;
- /* FALLTHROUGH */
- case 2:
- tm.tm_mon = m - 1;
- /* FALLTHROUGH */
- case 1:
- tm.tm_mday = d;
- }
+ time_t t;
+ int d, m, y;
+ struct tm tm;
+
+ (void)time(&t);
+ tp = localtime(&t);
+
+ tm = tm0;
+ tm.tm_mday = tp->tm_mday;
+ tm.tm_mon = tp->tm_mon;
+ tm.tm_year = tp->tm_year;
+
+ switch (sscanf(dp, "%d.%d.%d", &d, &m, &y)) {
+ case 3:
+ if (y > 1900)
+ y -= 1900;
+ tm.tm_year = y;
+ /* FALLTHROUGH */
+ case 2:
+ tm.tm_mon = m - 1;
+ /* FALLTHROUGH */
+ case 1:
+ tm.tm_mday = d;
+ }
#ifdef DEBUG
- fprintf(stderr, "Mktime: %d %d %s\n", (int)mktime(&tm), (int)t,
- asctime(&tm));
+ fprintf(stderr, "Mktime: %d %d %s\n",
+ (int)mktime(&tm), (int)t, asctime(&tm));
#endif
- return(mktime(&tm));
+ return (mktime(&tm));
}
/*
@@ -240,7 +240,7 @@ isnow(char *endp, int *monthp, int *dayp, int *varp)
/* Easter or Easter depending days */
if (flags & F_EASTER)
- day = v1 - 1; /* days since January 1 [0-365] */
+ day = v1 - 1; /* days since January 1 [0-365] */
/*
* 1. {Weekday,Day} XYZ ...
@@ -299,85 +299,86 @@ isnow(char *endp, int *monthp, int *dayp, int *varp)
*/
if (flags & F_ISDAY) {
#ifdef DEBUG
- fprintf(stderr, "\nday: %d %s month %d\n", day, endp, month);
+ fprintf(stderr, "\nday: %d %s month %d\n", day, endp, month);
#endif
- *varp = 1;
- /* variable weekday, SundayLast, MondayFirst ... */
- if (day < 0 || day >= 10) {
-
- /* negative offset; last, -4 .. -1 */
- if (day < 0) {
- v1 = day/10 - 1; /* offset -4 ... -1 */
- day = 10 + (day % 10); /* day 1 ... 7 */
-
- /* day, eg '22nd' */
- v2 = tp->tm_mday + (((day - 1) - tp->tm_wday + 7) % 7);
-
- /* (month length - day) / 7 + 1 */
- if (cumdays[month+1] - cumdays[month] >= v2
- && ((int)((cumdays[month+1] -
- cumdays[month] - v2) / 7) + 1) == -v1)
- /* bingo ! */
- day = v2;
-
- /* set to yesterday */
- else {
- day = tp->tm_mday - 1;
- if (day == 0)
- return (0);
- }
- }
-
- /* first, second ... +1 ... +5 */
- else {
- v1 = day/10; /* offset: +1 (first Sunday) ... */
- day = day % 10;
-
- /* day, eg '22th' */
- v2 = tp->tm_mday + (((day - 1) - tp->tm_wday + 7) % 7);
-
- /* Hurrah! matched */
- if ( ((v2 - 1 + 7) / 7) == v1 )
- day = v2;
-
- /* set to yesterday */
- else {
- day = tp->tm_mday - 1;
- if (day == 0)
- return (0);
- }
- }
- }
-
- /* wired */
- else {
- day = tp->tm_mday + (((day - 1) - tp->tm_wday + 7) % 7);
*varp = 1;
- }
+ /* variable weekday, SundayLast, MondayFirst ... */
+ if (day < 0 || day >= 10) {
+
+ /* negative offset; last, -4 .. -1 */
+ if (day < 0) {
+ v1 = day / 10 - 1; /* offset -4 ... -1 */
+ day = 10 + (day % 10); /* day 1 ... 7 */
+
+ /* day, eg '22nd' */
+ v2 = tp->tm_mday +
+ (((day - 1) - tp->tm_wday + 7) % 7);
+
+ /* (month length - day) / 7 + 1 */
+ if (cumdays[month + 1] - cumdays[month] >= v2
+ && ((int)((cumdays[month + 1] -
+ cumdays[month] - v2) / 7) + 1) == -v1)
+ day = v2; /* bingo ! */
+
+ /* set to yesterday */
+ else {
+ day = tp->tm_mday - 1;
+ if (day == 0)
+ return (0);
+ }
+ }
+
+ /* first, second ... +1 ... +5 */
+ else {
+ /* offset: +1 (first Sunday) ... */
+ v1 = day / 10;
+ day = day % 10;
+
+ /* day, eg '22th' */
+ v2 = tp->tm_mday +
+ (((day - 1) - tp->tm_wday + 7) % 7);
+
+ /* Hurrah! matched */
+ if (((v2 - 1 + 7) / 7) == v1 )
+ day = v2;
+
+ else {
+ /* set to yesterday */
+ day = tp->tm_mday - 1;
+ if (day == 0)
+ return (0);
+ }
+ }
+ } else {
+ /* wired */
+ day = tp->tm_mday + (((day - 1) - tp->tm_wday + 7) % 7);
+ *varp = 1;
+ }
}
if (!(flags & F_EASTER)) {
- if (day + cumdays[month] > cumdays[month + 1]) { /* off end of month */
- day -= (cumdays[month + 1] - cumdays[month]); /* adjust */
- if (++month > 12) /* next year */
- month = 1;
- }
- *monthp = month;
- *dayp = day;
- day = cumdays[month] + day;
- }
- else {
- for (v1 = 0; day > cumdays[v1]; v1++)
- ;
- *monthp = v1 - 1;
- *dayp = day - cumdays[v1 - 1];
- *varp = 1;
+ if (day + cumdays[month] > cumdays[month + 1]) {
+ /* off end of month, adjust */
+ day -= (cumdays[month + 1] - cumdays[month]);
+ /* next year */
+ if (++month > 12)
+ month = 1;
+ }
+ *monthp = month;
+ *dayp = day;
+ day = cumdays[month] + day;
+ } else {
+ for (v1 = 0; day > cumdays[v1]; v1++)
+ ;
+ *monthp = v1 - 1;
+ *dayp = day - cumdays[v1 - 1];
+ *varp = 1;
}
#ifdef DEBUG
- fprintf(stderr, "day2: day %d(%d-%d) yday %d\n", *dayp, day,
- cumdays[month], tp->tm_yday);
+ fprintf(stderr, "day2: day %d(%d-%d) yday %d\n",
+ *dayp, day, cumdays[month], tp->tm_yday);
#endif
/* When days before or days after is specified */
@@ -395,7 +396,7 @@ isnow(char *endp, int *monthp, int *dayp, int *varp)
/* previous year */
if (tp->tm_yday - f_dayBefore < 0) {
- int before = yrdays + (tp->tm_yday - f_dayBefore );
+ int before = yrdays + (tp->tm_yday - f_dayBefore);
if (day >= before)
return (1);
}
@@ -451,39 +452,35 @@ getdayvar(char *s)
{
int offs;
-
offs = strlen(s);
-
/* Sun+1 or Wednesday-2
* ^ ^ */
/* fprintf(stderr, "x: %s %s %d\n", s, s + offs - 2, offs); */
- switch(*(s + offs - 2)) {
+ switch (*(s + offs - 2)) {
case '-':
- return(-(atoi(s + offs - 1)));
+ return (-(atoi(s + offs - 1)));
case '+':
- return(atoi(s + offs - 1));
+ return (atoi(s + offs - 1));
}
-
/*
* some aliases: last, first, second, third, fourth
*/
/* last */
if (offs > 4 && !strcasecmp(s + offs - 4, "last"))
- return(-1);
+ return (-1);
else if (offs > 5 && !strcasecmp(s + offs - 5, "first"))
- return(+1);
+ return (+1);
else if (offs > 6 && !strcasecmp(s + offs - 6, "second"))
- return(+2);
+ return (+2);
else if (offs > 5 && !strcasecmp(s + offs - 5, "third"))
- return(+3);
+ return (+3);
else if (offs > 6 && !strcasecmp(s + offs - 6, "fourth"))
- return(+4);
-
+ return (+4);
/* no offset detected */
- return(0);
+ return (0);
}
diff --git a/usr.bin/calendar/io.c b/usr.bin/calendar/io.c
index 5668705..d83be77 100644
--- a/usr.bin/calendar/io.c
+++ b/usr.bin/calendar/io.c
@@ -67,9 +67,11 @@ __FBSDID("$FreeBSD$");
#include "calendar.h"
-const char *calendarFile = "calendar"; /* default calendar file */
-const char *calendarHomes[] = { ".calendar", _PATH_INCLUDE }; /* HOME */
-const char *calendarNoMail = "nomail"; /* don't sent mail if this file exist */
+const char *calendarFile = "calendar"; /* default calendar file */
+const char *calendarHomes[] = {".calendar", _PATH_INCLUDE}; /* HOME */
+const char *calendarNoMail = "nomail"; /* don't sent mail if this file exist */
+
+char path[MAXPATHLEN];
struct fixs neaster, npaskha;
@@ -80,10 +82,9 @@ struct iovec header[] = {
{NULL, 0},
{"\nSubject: ", 10},
{NULL, 0},
- {"'s Calendar\nPrecedence: bulk\n\n", 30},
+ {"'s Calendar\nPrecedence: bulk\n\n", 30},
};
-
void
cal(void)
{
@@ -113,7 +114,7 @@ cal(void)
if (buf[0] == '\0')
continue;
if (strncmp(buf, "LANG=", 5) == 0) {
- (void) setlocale(LC_ALL, buf + 5);
+ (void)setlocale(LC_ALL, buf + 5);
d_first = (*nl_langinfo(D_MD_ORDER) == 'd');
setnnames();
continue;
@@ -145,36 +146,43 @@ cal(void)
char dbuf[80];
if (d_first < 0)
- d_first = (*nl_langinfo(D_MD_ORDER) == 'd');
- tm.tm_sec = 0; /* unused */
- tm.tm_min = 0; /* unused */
- tm.tm_hour = 0; /* unused */
- tm.tm_wday = 0; /* unused */
+ d_first =
+ (*nl_langinfo(D_MD_ORDER) == 'd');
+ tm.tm_sec = 0; /* unused */
+ tm.tm_min = 0; /* unused */
+ tm.tm_hour = 0; /* unused */
+ tm.tm_wday = 0; /* unused */
tm.tm_mon = month - 1;
tm.tm_mday = day;
tm.tm_year = tp->tm_year; /* unused */
(void)strftime(dbuf, sizeof(dbuf),
- d_first ? "%e %b" : "%b %e",
- &tm);
- events = event_add(events, month, day, dbuf, var, p);
+ d_first ? "%e %b" : "%b %e", &tm);
+ events = event_add(events, month, day, dbuf,
+ var, p);
}
+ } else {
+ if (printing)
+ event_continue(events, buf);
}
- else if (printing)
- event_continue(events, buf);
}
event_print_all(fp, events);
closecal(fp);
}
-/*
- * Functions to handle buffered calendar events.
- */
struct event *
-event_add(struct event *events, int month, int day, char *date, int var, char *txt)
+event_add(struct event *events, int month, int day,
+ char *date, int var, char *txt)
{
struct event *e;
+ /*
+ * Creating a new event:
+ * - Create a new event
+ * - Copy the machine readable day and month
+ * - Copy the human readable and language specific date
+ * - Copy the text of the event
+ */
e = (struct event *)calloc(1, sizeof(struct event));
if (e == NULL)
errx(1, "event_add: cannot allocate memory");
@@ -197,6 +205,13 @@ event_continue(struct event *e, char *txt)
{
char *text;
+ /*
+ * Adding text to the event:
+ * - Save a copy of the old text (unknown length, so strdup())
+ * - Allocate enough space for old text + \n + new text + 0
+ * - Store the old text + \n + new text
+ * - Destroy the saved copy.
+ */
text = strdup(e->text);
if (text == NULL)
errx(1, "event_continue: cannot allocate memory");
@@ -217,15 +232,30 @@ void
event_print_all(FILE *fp, struct event *events)
{
struct event *e, *e_next;
- int daycount = f_dayAfter + f_dayBefore;
int daycounter;
int day, month;
- for (daycounter = 0; daycounter <= daycount; daycounter++) {
+ /*
+ * Print all events:
+ * - We know the number of days to be counted (f_dayAfter + f_dayBefore)
+ * - We know the current day of the year ("now" - f_dayBefore + counter)
+ * - We know the number of days in the year (yrdays, set in settime())
+ * - So we know the date on which the current daycounter is on the
+ * calendar in days and months.
+ * - Go through the list of events, and print all matching dates
+ */
+ for (daycounter = 0; daycounter <= f_dayAfter + f_dayBefore;
+ daycounter++) {
day = tp->tm_yday - f_dayBefore + daycounter;
- if (day < 0) day += yrdays;
- if (day >= yrdays) day -= yrdays;
-
+ if (day < 0)
+ day += yrdays;
+ if (day >= yrdays)
+ day -= yrdays;
+
+ /*
+ * When we know the day of the year, we can determine the day
+ * of the month and the month.
+ */
month = 1;
while (month <= 12) {
if (day <= cumdays[month])
@@ -236,10 +266,15 @@ event_print_all(FILE *fp, struct event *events)
day -= cumdays[month];
#ifdef DEBUG
- fprintf(stderr,"event_print_allmonth: %d, day: %d\n",month,day);
+ fprintf(stderr, "event_print_allmonth: %d, day: %d\n",
+ month, day);
#endif
- for (e = events; e != NULL; e = e_next ) {
+ /*
+ * Go through all events and print the text of the matching
+ * dates
+ */
+ for (e = events; e != NULL; e = e_next) {
e_next = e->next;
if (month != e->month || day != e->day)
@@ -258,10 +293,11 @@ getfield(char *p, char **endp, int *flags)
char *start, savech;
for (; !isdigit((unsigned char)*p) && !isalpha((unsigned char)*p)
- && *p != '*'; ++p);
+ && *p != '*'; ++p)
+ ;
if (*p == '*') { /* `*' is current month */
*flags |= F_ISMONTH;
- *endp = p+1;
+ *endp = p + 1;
return (tp->tm_mon + 1);
}
if (isdigit((unsigned char)*p)) {
@@ -275,7 +311,8 @@ getfield(char *p, char **endp, int *flags)
/* Sunday-1 */
if (*p == '+' || *p == '-')
- for(; isdigit((unsigned char)*++p););
+ for(; isdigit((unsigned char)*++p);)
+ ;
savech = *p;
*p = '\0';
@@ -286,25 +323,25 @@ getfield(char *p, char **endp, int *flags)
/* Day */
else if ((val = getday(start)) != 0) {
- *flags |= F_ISDAY;
+ *flags |= F_ISDAY;
- /* variable weekday */
- if ((var = getdayvar(start)) != 0) {
- if (var <=5 && var >= -4)
- val += var * 10;
+ /* variable weekday */
+ if ((var = getdayvar(start)) != 0) {
+ if (var <= 5 && var >= -4)
+ val += var * 10;
#ifdef DEBUG
- printf("var: %d\n", var);
+ printf("var: %d\n", var);
#endif
- }
+ }
}
/* Easter */
else if ((val = geteaster(start, tp->tm_year + 1900)) != 0)
- *flags |= F_EASTER;
+ *flags |= F_EASTER;
/* Paskha */
else if ((val = getpaskha(start, tp->tm_year + 1900)) != 0)
- *flags |= F_EASTER;
+ *flags |= F_EASTER;
/* undefined rest */
else {
@@ -312,13 +349,12 @@ getfield(char *p, char **endp, int *flags)
return (0);
}
for (*p = savech; !isdigit((unsigned char)*p)
- && !isalpha((unsigned char)*p) && *p != '*'; ++p);
+ && !isalpha((unsigned char)*p) && *p != '*'; ++p)
+ ;
*endp = p;
return (val);
}
-char path[MAXPATHLEN];
-
FILE *
opencal(void)
{
@@ -330,12 +366,12 @@ opencal(void)
/* open up calendar file as stdin */
if (!freopen(calendarFile, "r", stdin)) {
if (doall) {
- if (chdir(calendarHomes[0]) != 0)
- return (NULL);
- if (stat(calendarNoMail, &sbuf) == 0)
- return (NULL);
- if (!freopen(calendarFile, "r", stdin))
- return (NULL);
+ if (chdir(calendarHomes[0]) != 0)
+ return (NULL);
+ if (stat(calendarNoMail, &sbuf) == 0)
+ return (NULL);
+ if (!freopen(calendarFile, "r", stdin))
+ return (NULL);
} else {
char *home = getenv("HOME");
if (home == NULL || *home == '\0')
@@ -343,14 +379,15 @@ opencal(void)
chdir(home);
for (found = i = 0; i < sizeof(calendarHomes) /
sizeof(calendarHomes[0]); i++)
- if (chdir(calendarHomes[i]) == 0 &&
- freopen(calendarFile, "r", stdin)) {
- found = 1;
- break;
- }
+ if (chdir(calendarHomes[i]) == 0 &&
+ freopen(calendarFile, "r", stdin)) {
+ found = 1;
+ break;
+ }
if (!found)
- errx(1, "can't open calendar file \"%s\": %s (%d)",
- calendarFile, strerror(errno), errno);
+ errx(1,
+ "can't open calendar file \"%s\": %s (%d)",
+ calendarFile, strerror(errno), errno);
}
}
if (pipe(pdes) < 0)
diff --git a/usr.bin/calendar/ostern.c b/usr.bin/calendar/ostern.c
index 833d623..76e5933 100644
--- a/usr.bin/calendar/ostern.c
+++ b/usr.bin/calendar/ostern.c
@@ -1,6 +1,6 @@
/*
* Copyright (c) 1996 Wolfram Schneider <wosch@FreeBSD.org>. Berlin.
- * All rights reserved.
+ * All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -46,28 +46,28 @@ __FBSDID("$FreeBSD$");
int
easter(int year) /* 0 ... abcd, NOT since 1900 */
{
- int G, /* Golden number - 1 */
- C, /* Century */
- H, /* 23 - epact % 30 */
- I, /* days from 21 March to Paschal full moon */
- J, /* weekday of full moon */
- L; /* days from 21 March to Sunday on of before full moon */
-
- G = year % 19;
- C = year / 100;
- H = (C - C/4 - (8*C+13)/25 + 19*G + 15) % 30;
- I = H - (H/28)*(1 - (H/28)*(29/(H + 1))*((21 - G)/11));
- J = (year + year/4 + I + 2 - C + C/4) % 7;
-
- L = I - J;
-
- if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
- return 31 + 29 + 21 + L + 7;
- else
- return 31 + 28 + 21 + L + 7;
+ int G, /* Golden number - 1 */
+ C, /* Century */
+ H, /* 23 - epact % 30 */
+ I, /* days from 21 March to Paschal full moon */
+ J, /* weekday of full moon */
+ L; /* days from 21 March to Sunday on of before full moon */
+
+ G = year % 19;
+ C = year / 100;
+ H = (C - C / 4 - (8 * C + 13) / 25 + 19 * G + 15) % 30;
+ I = H - (H / 28) * (1 - (H / 28) * (29 / (H + 1)) * ((21 - G) / 11));
+ J = (year + year / 4 + I + 2 - C + C / 4) % 7;
+
+ L = I - J;
+
+ if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
+ return 31 + 29 + 21 + L + 7;
+ else
+ return 31 + 28 + 21 + L + 7;
}
-/* return year day for Easter or easter depending days
+/* return year day for Easter or easter depending days
* Match: Easter([+-][0-9]+)?
* e.g: Easter-2 is Good Friday (2 days before Easter)
*/
@@ -77,17 +77,16 @@ geteaster(char *s, int year)
{
int offset = 0;
-#define EASTER "easter"
-#define EASTERNAMELEN (sizeof(EASTER) - 1)
+#define EASTER "easter"
+#define EASTERNAMELEN (sizeof(EASTER) - 1)
if (strncasecmp(s, EASTER, EASTERNAMELEN) == 0)
- s += EASTERNAMELEN;
- else if ( neaster.name != NULL
- && strncasecmp(s, neaster.name, neaster.len) == 0
- )
- s += neaster.len;
+ s += EASTERNAMELEN;
+ else if (neaster.name != NULL
+ && strncasecmp(s, neaster.name, neaster.len) == 0)
+ s += neaster.len;
else
- return(0);
+ return (0);
#if DEBUG
printf("%s %d %d\n", s, year, EASTERNAMELEN);
@@ -96,16 +95,16 @@ geteaster(char *s, int year)
/* Easter+1 or Easter-2
* ^ ^ */
- switch(*s) {
+ switch (*s) {
case '-':
case '+':
- offset = atoi(s);
- break;
+ offset = atoi(s);
+ break;
default:
- offset = 0;
+ offset = 0;
}
-
+
return (easter(year) + offset);
}
diff --git a/usr.bin/calendar/paskha.c b/usr.bin/calendar/paskha.c
index 769d091..d96ffc2 100644
--- a/usr.bin/calendar/paskha.c
+++ b/usr.bin/calendar/paskha.c
@@ -34,10 +34,10 @@ __FBSDID("$FreeBSD$");
#include "calendar.h"
-#define PASKHA "paskha"
-#define PASKHALEN (sizeof(PASKHA) - 1)
+#define PASKHA "paskha"
+#define PASKHALEN (sizeof(PASKHA) - 1)
-static int paskha (int);
+static int paskha(int);
/* return year day for Orthodox Easter using Gauss formula */
/* (old style result) */
@@ -52,8 +52,8 @@ paskha(int R) /*year*/
a = R % 19;
b = R % 4;
c = R % 7;
- d = (19*a + x) % 30;
- e = (2*b + 4*c + 6*d + y) % 7;
+ d = (19 * a + x) % 30;
+ e = (2 * b + 4 * c + 6 * d + y) % 7;
return (((cumdays[3] + 1) + 22) + (d + e));
}
@@ -65,29 +65,27 @@ getpaskha(char *s, int year)
int offset;
if (strncasecmp(s, PASKHA, PASKHALEN) == 0)
- s += PASKHALEN;
- else if ( npaskha.name != NULL
- && strncasecmp(s, npaskha.name, npaskha.len) == 0
- )
- s += npaskha.len;
+ s += PASKHALEN;
+ else if (npaskha.name != NULL
+ && strncasecmp(s, npaskha.name, npaskha.len) == 0)
+ s += npaskha.len;
else
- return 0;
-
+ return 0;
/* Paskha+1 or Paskha-2
* ^ ^ */
- switch(*s) {
+ switch (*s) {
case '-':
case '+':
- offset = atoi(s);
- break;
+ offset = atoi(s);
+ break;
default:
- offset = 0;
- break;
+ offset = 0;
+ break;
}
-
- return (paskha(year) + offset + 13/* new style */);
+
+ return (paskha(year) + offset + 13 /* new style */);
}
OpenPOWER on IntegriCloud