summaryrefslogtreecommitdiffstats
path: root/usr.bin/calendar
diff options
context:
space:
mode:
authorn_hibma <n_hibma@FreeBSD.org>1999-07-24 16:23:52 +0000
committern_hibma <n_hibma@FreeBSD.org>1999-07-24 16:23:52 +0000
commit3f78faa42d00715dd2d05b4d9b8c7544014d1ded (patch)
tree5af5751589a1222cfefc7d7d7527f78a39024a4b /usr.bin/calendar
parentb5476660e91e3e554d07a496e5a45b33d40c3577 (diff)
downloadFreeBSD-src-3f78faa42d00715dd2d05b4d9b8c7544014d1ded.zip
FreeBSD-src-3f78faa42d00715dd2d05b4d9b8c7544014d1ded.tar.gz
Correct a typo (22th -> 22nd)
Remove some whitespace Fix a problem where any event on the Last whatever of the month was duplicated after the last day of the month (e.g. 32oct.) PR: 4907 Submitted by: Mikhail Teterin mi@aldan.algebra.com
Diffstat (limited to 'usr.bin/calendar')
-rw-r--r--usr.bin/calendar/day.c67
1 files changed, 34 insertions, 33 deletions
diff --git a/usr.bin/calendar/day.c b/usr.bin/calendar/day.c
index 1f7cac7..d79ff34 100644
--- a/usr.bin/calendar/day.c
+++ b/usr.bin/calendar/day.c
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: day.c,v 1.10 1997/09/18 14:06:43 phk Exp $
+ * $Id: day.c,v 1.11 1997/10/26 12:51:30 wosch Exp $
*/
@@ -55,7 +55,7 @@ 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, 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 },
};
@@ -174,7 +174,7 @@ time_t Mktime (dp)
errx(1, "strdup failed in Mktime");
(void)time(&t);
tp = localtime(&t);
-
+
len = strlen(date);
tm.tm_sec = 0;
tm.tm_min = 0;
@@ -204,8 +204,8 @@ time_t Mktime (dp)
tm.tm_year -= 1900;
}
-#if DEBUG
- printf("Mktime: %d %d %d %s\n", (int)mktime(&tm), (int)t, len,
+#ifdef DEBUG
+ fprintf(stderr, "Mktime: %d %d %d %s\n", (int)mktime(&tm), (int)t, len,
asctime(&tm));
#endif
free(date);
@@ -231,7 +231,7 @@ isnow(endp, monthp, dayp, varp)
{
int day, flags, month = 0, v1, v2;
- /*
+ /*
* CONVENTION
*
* Month: 1-12
@@ -242,32 +242,32 @@ isnow(endp, monthp, dayp, varp)
*/
flags = 0;
-
+
/* read first field */
/* didn't recognize anything, skip it */
if (!(v1 = getfield(endp, &endp, &flags)))
return (0);
/* Easter or Easter depending days */
- if (flags & F_EASTER)
+ if (flags & F_EASTER)
day = v1 - 1; /* days since January 1 [0-365] */
- /*
- * 1. {Weekday,Day} XYZ ...
+ /*
+ * 1. {Weekday,Day} XYZ ...
*
- * where Day is > 12
- */
+ * where Day is > 12
+ */
else if (flags & F_ISDAY || v1 > 12) {
/* found a day; day: 1-31 or weekday: 1-7 */
day = v1;
/* {Day,Weekday} {Month,Monthname} ... */
- /* if no recognizable month, assume just a day alone
+ /* if no recognizable month, assume just a day alone
* in other words, find month or use current month */
if (!(month = getfield(endp, &endp, &flags)))
month = tp->tm_mon + 1;
- }
+ }
/* 2. {Monthname} XYZ ... */
else if (flags & F_ISMONTH) {
@@ -277,7 +277,7 @@ isnow(endp, monthp, dayp, varp)
/* if no recognizable day, assume the first day in month */
if (!(day = getfield(endp, &endp, &flags)))
day = 1;
- }
+ }
/* Hm ... */
else {
@@ -291,7 +291,7 @@ isnow(endp, monthp, dayp, varp)
day = v1;
month = v2;
*varp = 0;
- }
+ }
/* {Month} {Weekday,Day} ... */
else {
@@ -303,12 +303,12 @@ isnow(endp, monthp, dayp, varp)
}
}
- /* convert Weekday into *next* Day,
- * e.g.: 'Sunday' -> 22
+ /* convert Weekday into *next* Day,
+ * e.g.: 'Sunday' -> 22
* 'SundayLast' -> ??
*/
if (flags & F_ISDAY) {
-#if DEBUG
+#ifdef DEBUG
fprintf(stderr, "\nday: %d %s month %d\n", day, endp, month);
#endif
@@ -321,22 +321,23 @@ isnow(endp, monthp, dayp, varp)
v1 = day/10 - 1; /* offset -4 ... -1 */
day = 10 + (day % 10); /* day 1 ... 7 */
- /* day, eg '22th' */
+ /* day, eg '22nd' */
v2 = tp->tm_mday + (((day - 1) - tp->tm_wday + 7) % 7);
/* (month length - day) / 7 + 1 */
- if (((int)((cumdays[month+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 {
@@ -365,7 +366,7 @@ isnow(endp, monthp, dayp, varp)
*varp = 1;
}
}
-
+
if (!(flags & F_EASTER)) {
*monthp = month;
*dayp = day;
@@ -379,18 +380,18 @@ isnow(endp, monthp, dayp, varp)
*varp = 1;
}
-#if DEBUG
- fprintf(stderr, "day2: day %d(%d) yday %d\n", *dayp, day, tp->tm_yday);
+#ifdef DEBUG
+ fprintf(stderr, "day2: day %d(%d-%d) yday %d\n", *dayp, day, cumdays[month], tp->tm_yday);
#endif
/* if today or today + offset days */
- if (day >= tp->tm_yday - f_dayBefore &&
+ if (day >= tp->tm_yday - f_dayBefore &&
day <= tp->tm_yday + offset + f_dayAfter)
return (1);
/* if number of days left in this year + days to event in next year */
if (yrdays - tp->tm_yday + day <= offset + f_dayAfter ||
/* a year backward, eg. 6 Jan and 10 days before -> 27. Dec */
- tp->tm_yday + day - f_dayBefore < 0
+ tp->tm_yday + day - f_dayBefore < 0
)
return (1);
return (0);
@@ -438,7 +439,7 @@ getday(s)
/* return offset for variable weekdays
* -1 -> last weekday in month
- * +1 -> first weekday in month
+ * +1 -> first weekday in month
* ... etc ...
*/
int
@@ -454,7 +455,7 @@ getdayvar(s)
/* Sun+1 or Wednesday-2
* ^ ^ */
- /* printf ("x: %s %s %d\n", s, s + offset - 2, offset); */
+ /* fprintf(stderr, "x: %s %s %d\n", s, s + offset - 2, offset); */
switch(*(s + offset - 2)) {
case '-':
return(-(atoi(s + offset - 1)));
@@ -463,12 +464,12 @@ getdayvar(s)
return(atoi(s + offset - 1));
break;
}
-
- /*
+
+ /*
* some aliases: last, first, second, third, fourth
*/
-
+
/* last */
if (offset > 4 && !strcasecmp(s + offset - 4, "last"))
return(-1);
OpenPOWER on IntegriCloud