diff --git a/src/dorem.c b/src/dorem.c index e6bb5b26..3941360c 100644 --- a/src/dorem.c +++ b/src/dorem.c @@ -62,6 +62,7 @@ int DoRem(ParsePtr p) if (trig.typ == SAT_TYPE) { r=DoSatRemind(&trig, &tim, p); if (r) return r; + if (!LastTrigValid) return OK; r=ParseToken(p, &buf); if (r) return r; FindToken(DBufValue(&buf), &tok); @@ -821,6 +822,9 @@ int DoSatRemind(Trigger *trig, TimeTrig *tim, ParsePtr p) if (r) { if (r == E_CANT_TRIG) return OK; else return r; } + if (jul == -1) { + return OK; + } s = p->pos; r = EvaluateExpr(p, &v); t = p->pos; diff --git a/tests/test.cmp b/tests/test.cmp index 43e68f59..aa329efe 100644 --- a/tests/test.cmp +++ b/tests/test.cmp @@ -7,8 +7,13 @@ Test 1 # # ./test-rem # From WITHIN Remind source directory! +# Don't evaluate SATISFY expressions if reminder has expired + +REM Wed UNTIL 15 Feb 1991 SATISFY [trigdate() > '1990-01-01'] MSG wookie +../tests/test.rem(10): Expired + REM MSG Today is [hebday(today())] [hebmon(today())] [hebyear(today())] -../tests/test.rem(8): Trig = Saturday, 16 February, 1991 +../tests/test.rem(12): Trig = Saturday, 16 February, 1991 Reminders for Saturday, 16th February, 1991: today() => 1991-02-16 @@ -28,7 +33,7 @@ y => "Tishrey" hebdate(1, "Tishrey") => 1991-09-09 trigger(1991-09-09) => "9 September 1991" Leaving UserFN _h() => "9 September 1991" -../tests/test.rem(11): Trig = Monday, 9 September, 1991 +../tests/test.rem(15): Trig = Monday, 9 September, 1991 [_h(2, "Tishrey")] MSG Rosh Hashana 2 Entering UserFN _h(2, "Tishrey") x => 2 @@ -36,7 +41,7 @@ y => "Tishrey" hebdate(2, "Tishrey") => 1991-09-10 trigger(1991-09-10) => "10 September 1991" Leaving UserFN _h() => "10 September 1991" -../tests/test.rem(12): Trig = Tuesday, 10 September, 1991 +../tests/test.rem(16): Trig = Tuesday, 10 September, 1991 [_h(3, "Tishrey")] MSG Tzom Gedalia Entering UserFN _h(3, "Tishrey") x => 3 @@ -44,7 +49,7 @@ y => "Tishrey" hebdate(3, "Tishrey") => 1991-09-11 trigger(1991-09-11) => "11 September 1991" Leaving UserFN _h() => "11 September 1991" -../tests/test.rem(13): Trig = Wednesday, 11 September, 1991 +../tests/test.rem(17): Trig = Wednesday, 11 September, 1991 [_h(10, "Tishrey")] MSG Yom Kippur Entering UserFN _h(10, "Tishrey") x => 10 @@ -52,7 +57,7 @@ y => "Tishrey" hebdate(10, "Tishrey") => 1991-09-18 trigger(1991-09-18) => "18 September 1991" Leaving UserFN _h() => "18 September 1991" -../tests/test.rem(14): Trig = Wednesday, 18 September, 1991 +../tests/test.rem(18): Trig = Wednesday, 18 September, 1991 [_h(15, "Tishrey")] MSG Sukkot 1 Entering UserFN _h(15, "Tishrey") x => 15 @@ -60,7 +65,7 @@ y => "Tishrey" hebdate(15, "Tishrey") => 1991-09-23 trigger(1991-09-23) => "23 September 1991" Leaving UserFN _h() => "23 September 1991" -../tests/test.rem(15): Trig = Monday, 23 September, 1991 +../tests/test.rem(19): Trig = Monday, 23 September, 1991 [_h(25, "Kislev")] MSG Channuka Entering UserFN _h(25, "Kislev") x => 25 @@ -68,7 +73,7 @@ y => "Kislev" hebdate(25, "Kislev") => 1991-12-02 trigger(1991-12-02) => "2 December 1991" Leaving UserFN _h() => "2 December 1991" -../tests/test.rem(16): Trig = Monday, 2 December, 1991 +../tests/test.rem(20): Trig = Monday, 2 December, 1991 [_h(10, "Tevet")] MSG Asara B'Tevet Entering UserFN _h(10, "Tevet") x => 10 @@ -76,7 +81,7 @@ y => "Tevet" hebdate(10, "Tevet") => 1991-12-17 trigger(1991-12-17) => "17 December 1991" Leaving UserFN _h() => "17 December 1991" -../tests/test.rem(17): Trig = Tuesday, 17 December, 1991 +../tests/test.rem(21): Trig = Tuesday, 17 December, 1991 [_h(15, "Shvat")] MSG Tu B'Shvat Entering UserFN _h(15, "Shvat") x => 15 @@ -84,7 +89,7 @@ y => "Shvat" hebdate(15, "Shvat") => 1992-01-20 trigger(1992-01-20) => "20 January 1992" Leaving UserFN _h() => "20 January 1992" -../tests/test.rem(18): Trig = Monday, 20 January, 1992 +../tests/test.rem(22): Trig = Monday, 20 January, 1992 [_h(15, "Adar A")] MSG Purim Katan Entering UserFN _h(15, "Adar A") x => 15 @@ -92,7 +97,7 @@ y => "Adar A" hebdate(15, "Adar A") => 1992-02-19 trigger(1992-02-19) => "19 February 1992" Leaving UserFN _h() => "19 February 1992" -../tests/test.rem(19): Trig = Wednesday, 19 February, 1992 +../tests/test.rem(23): Trig = Wednesday, 19 February, 1992 [_h(14, "Adar")] MSG Purim Entering UserFN _h(14, "Adar") x => 14 @@ -100,7 +105,7 @@ y => "Adar" hebdate(14, "Adar") => 1991-02-28 trigger(1991-02-28) => "28 February 1991" Leaving UserFN _h() => "28 February 1991" -../tests/test.rem(20): Trig = Thursday, 28 February, 1991 +../tests/test.rem(24): Trig = Thursday, 28 February, 1991 [_h(15, "Nisan")] MSG Pesach Entering UserFN _h(15, "Nisan") x => 15 @@ -108,7 +113,7 @@ y => "Nisan" hebdate(15, "Nisan") => 1991-03-30 trigger(1991-03-30) => "30 March 1991" Leaving UserFN _h() => "30 March 1991" -../tests/test.rem(21): Trig = Saturday, 30 March, 1991 +../tests/test.rem(25): Trig = Saturday, 30 March, 1991 [_h(27, "Nisan")] MSG Yom HaShoah Entering UserFN _h(27, "Nisan") x => 27 @@ -116,7 +121,7 @@ y => "Nisan" hebdate(27, "Nisan") => 1991-04-11 trigger(1991-04-11) => "11 April 1991" Leaving UserFN _h() => "11 April 1991" -../tests/test.rem(22): Trig = Thursday, 11 April, 1991 +../tests/test.rem(26): Trig = Thursday, 11 April, 1991 [_h(4, "Iyar")] MSG Yom HaZikaron Entering UserFN _h(4, "Iyar") x => 4 @@ -124,7 +129,7 @@ y => "Iyar" hebdate(4, "Iyar") => 1991-04-18 trigger(1991-04-18) => "18 April 1991" Leaving UserFN _h() => "18 April 1991" -../tests/test.rem(23): Trig = Thursday, 18 April, 1991 +../tests/test.rem(27): Trig = Thursday, 18 April, 1991 [_h(5, "Iyar")] MSG Yom Ha'atzmaut Entering UserFN _h(5, "Iyar") x => 5 @@ -132,7 +137,7 @@ y => "Iyar" hebdate(5, "Iyar") => 1991-04-19 trigger(1991-04-19) => "19 April 1991" Leaving UserFN _h() => "19 April 1991" -../tests/test.rem(24): Trig = Friday, 19 April, 1991 +../tests/test.rem(28): Trig = Friday, 19 April, 1991 [_h(28, "Iyar")] MSG Yom Yerushalayim Entering UserFN _h(28, "Iyar") x => 28 @@ -140,7 +145,7 @@ y => "Iyar" hebdate(28, "Iyar") => 1991-05-12 trigger(1991-05-12) => "12 May 1991" Leaving UserFN _h() => "12 May 1991" -../tests/test.rem(25): Trig = Sunday, 12 May, 1991 +../tests/test.rem(29): Trig = Sunday, 12 May, 1991 [_h(6, "Sivan")] MSG Shavuot Entering UserFN _h(6, "Sivan") x => 6 @@ -148,7 +153,7 @@ y => "Sivan" hebdate(6, "Sivan") => 1991-05-19 trigger(1991-05-19) => "19 May 1991" Leaving UserFN _h() => "19 May 1991" -../tests/test.rem(26): Trig = Sunday, 19 May, 1991 +../tests/test.rem(30): Trig = Sunday, 19 May, 1991 [_h(9, "Av")] MSG Tish'a B'Av Entering UserFN _h(9, "Av") x => 9 @@ -156,7 +161,7 @@ y => "Av" hebdate(9, "Av") => 1991-07-20 trigger(1991-07-20) => "20 July 1991" Leaving UserFN _h() => "20 July 1991" -../tests/test.rem(27): Trig = Saturday, 20 July, 1991 +../tests/test.rem(31): Trig = Saturday, 20 July, 1991 # Test some jahrzeit cases fset _i(x,y,z,a) trigger(hebdate(x,y,z,a)) @@ -170,7 +175,7 @@ a => 5759 hebdate(30, "Heshvan", 1991-02-16, 5759) => 1991-11-07 trigger(1991-11-07) => "7 November 1991" Leaving UserFN _i() => "7 November 1991" -../tests/test.rem(31): Trig = Thursday, 7 November, 1991 +../tests/test.rem(35): Trig = Thursday, 7 November, 1991 [_i(30, "Heshvan", today(), 5760)] MSG Complete-Defective today() => 1991-02-16 Entering UserFN _i(30, "Heshvan", 1991-02-16, 5760) @@ -181,7 +186,7 @@ a => 5760 hebdate(30, "Heshvan", 1991-02-16, 5760) => 1991-11-07 trigger(1991-11-07) => "7 November 1991" Leaving UserFN _i() => "7 November 1991" -../tests/test.rem(32): Trig = Thursday, 7 November, 1991 +../tests/test.rem(36): Trig = Thursday, 7 November, 1991 [_i(30, "Heshvan", today(), 5761)] MSG Illegal today() => 1991-02-16 Entering UserFN _i(30, "Heshvan", 1991-02-16, 5761) @@ -189,7 +194,7 @@ x => 30 y => "Heshvan" z => 1991-02-16 a => 5761 -hebdate(30, "Heshvan", 1991-02-16, 5761) => ../tests/test.rem(33): 30 Heshvan 5761: Invalid Hebrew date +hebdate(30, "Heshvan", 1991-02-16, 5761) => ../tests/test.rem(37): 30 Heshvan 5761: Invalid Hebrew date Invalid Hebrew date Leaving UserFN _i() => Invalid Hebrew date @@ -203,7 +208,7 @@ a => 5759 hebdate(30, "Kislev", 1991-02-16, 5759) => 1991-12-07 trigger(1991-12-07) => "7 December 1991" Leaving UserFN _i() => "7 December 1991" -../tests/test.rem(35): Trig = Saturday, 7 December, 1991 +../tests/test.rem(39): Trig = Saturday, 7 December, 1991 [_i(30, "Kislev", today(), 5760)] MSG Complete-Defective today() => 1991-02-16 Entering UserFN _i(30, "Kislev", 1991-02-16, 5760) @@ -214,7 +219,7 @@ a => 5760 hebdate(30, "Kislev", 1991-02-16, 5760) => 1991-12-07 trigger(1991-12-07) => "7 December 1991" Leaving UserFN _i() => "7 December 1991" -../tests/test.rem(36): Trig = Saturday, 7 December, 1991 +../tests/test.rem(40): Trig = Saturday, 7 December, 1991 [_i(30, "Kislev", today(), 5761)] MSG Illegal today() => 1991-02-16 Entering UserFN _i(30, "Kislev", 1991-02-16, 5761) @@ -222,7 +227,7 @@ x => 30 y => "Kislev" z => 1991-02-16 a => 5761 -hebdate(30, "Kislev", 1991-02-16, 5761) => ../tests/test.rem(37): 30 Kislev 5761: Invalid Hebrew date +hebdate(30, "Kislev", 1991-02-16, 5761) => ../tests/test.rem(41): 30 Kislev 5761: Invalid Hebrew date Invalid Hebrew date Leaving UserFN _i() => Invalid Hebrew date @@ -236,7 +241,7 @@ a => 5755 hebdate(30, "Adar A", 1991-02-16, 5755) => 1992-03-05 trigger(1992-03-05) => "5 March 1992" Leaving UserFN _i() => "5 March 1992" -../tests/test.rem(39): Trig = Thursday, 5 March, 1992 +../tests/test.rem(43): Trig = Thursday, 5 March, 1992 [_i(30, "Adar A", today(), 5756)] MSG Illegal today() => 1991-02-16 Entering UserFN _i(30, "Adar A", 1991-02-16, 5756) @@ -244,7 +249,7 @@ x => 30 y => "Adar A" z => 1991-02-16 a => 5756 -hebdate(30, "Adar A", 1991-02-16, 5756) => ../tests/test.rem(40): No Adar A in 5756 +hebdate(30, "Adar A", 1991-02-16, 5756) => ../tests/test.rem(44): No Adar A in 5756 Invalid Hebrew date Leaving UserFN _i() => Invalid Hebrew date [_i(29, "Adar A", today(), 5755)] MSG Leap @@ -257,7 +262,7 @@ a => 5755 hebdate(29, "Adar A", 1991-02-16, 5755) => 1991-03-15 trigger(1991-03-15) => "15 March 1991" Leaving UserFN _i() => "15 March 1991" -../tests/test.rem(41): Trig = Friday, 15 March, 1991 +../tests/test.rem(45): Trig = Friday, 15 March, 1991 [_i(29, "Adar A", today(), 5756)] MSG Illegal today() => 1991-02-16 Entering UserFN _i(29, "Adar A", 1991-02-16, 5756) @@ -265,221 +270,221 @@ x => 29 y => "Adar A" z => 1991-02-16 a => 5756 -hebdate(29, "Adar A", 1991-02-16, 5756) => ../tests/test.rem(42): No Adar A in 5756 +hebdate(29, "Adar A", 1991-02-16, 5756) => ../tests/test.rem(46): No Adar A in 5756 Invalid Hebrew date Leaving UserFN _i() => Invalid Hebrew date # Test each possible case of the basic reminders. REM MSG Every Day -../tests/test.rem(46): Trig = Saturday, 16 February, 1991 +../tests/test.rem(50): Trig = Saturday, 16 February, 1991 Every Day REM 18 MSG Every 18th -../tests/test.rem(48): Trig = Monday, 18 February, 1991 +../tests/test.rem(52): Trig = Monday, 18 February, 1991 REM 15 MSG Every 15th -../tests/test.rem(49): Trig = Friday, 15 March, 1991 +../tests/test.rem(53): Trig = Friday, 15 March, 1991 REM Feb MSG February -../tests/test.rem(51): Trig = Saturday, 16 February, 1991 +../tests/test.rem(55): Trig = Saturday, 16 February, 1991 February REM Jan MSG January -../tests/test.rem(52): Trig = Wednesday, 1 January, 1992 +../tests/test.rem(56): Trig = Wednesday, 1 January, 1992 REM March MSG March -../tests/test.rem(53): Trig = Friday, 1 March, 1991 +../tests/test.rem(57): Trig = Friday, 1 March, 1991 REM 13 Jan MSG 13 Jan -../tests/test.rem(55): Trig = Monday, 13 January, 1992 +../tests/test.rem(59): Trig = Monday, 13 January, 1992 REM 15 Feb MSG 15 Feb -../tests/test.rem(56): Trig = Saturday, 15 February, 1992 +../tests/test.rem(60): Trig = Saturday, 15 February, 1992 REM 28 Feb MSG 28 Feb -../tests/test.rem(57): Trig = Thursday, 28 February, 1991 +../tests/test.rem(61): Trig = Thursday, 28 February, 1991 REM 29 Feb MSG 29 Feb -../tests/test.rem(58): Trig = Saturday, 29 February, 1992 +../tests/test.rem(62): Trig = Saturday, 29 February, 1992 REM 5 Mar MSG 5 Mar -../tests/test.rem(59): Trig = Tuesday, 5 March, 1991 +../tests/test.rem(63): Trig = Tuesday, 5 March, 1991 REM 1990 MSG 1990 -../tests/test.rem(61): Expired +../tests/test.rem(65): Expired REM 1991 MSG 1991 -../tests/test.rem(62): Trig = Saturday, 16 February, 1991 +../tests/test.rem(66): Trig = Saturday, 16 February, 1991 1991 REM 1992 MSG 1991 -../tests/test.rem(63): Trig = Wednesday, 1 January, 1992 +../tests/test.rem(67): Trig = Wednesday, 1 January, 1992 REM 1 1990 MSG 1 1990 -../tests/test.rem(65): Expired +../tests/test.rem(69): Expired REM 29 1991 MSG 29 1991 -../tests/test.rem(66): Trig = Friday, 29 March, 1991 +../tests/test.rem(70): Trig = Friday, 29 March, 1991 REM 29 1992 MSG 29 1992 -../tests/test.rem(67): Trig = Wednesday, 29 January, 1992 +../tests/test.rem(71): Trig = Wednesday, 29 January, 1992 REM 16 1991 MSG 16 1991 -../tests/test.rem(68): Trig = Saturday, 16 February, 1991 +../tests/test.rem(72): Trig = Saturday, 16 February, 1991 16 1991 REM Jan 1990 MSG Jan 1990 -../tests/test.rem(70): Expired +../tests/test.rem(74): Expired REM Feb 1991 MSG Feb 1991 -../tests/test.rem(71): Trig = Saturday, 16 February, 1991 +../tests/test.rem(75): Trig = Saturday, 16 February, 1991 Feb 1991 REM Dec 1991 MSG Dec 1991 -../tests/test.rem(72): Trig = Sunday, 1 December, 1991 +../tests/test.rem(76): Trig = Sunday, 1 December, 1991 REM May 1992 MSG May 1992 -../tests/test.rem(73): Trig = Friday, 1 May, 1992 +../tests/test.rem(77): Trig = Friday, 1 May, 1992 REM 1 Jan 1991 MSG 1 Jan 1991 -../tests/test.rem(75): Expired +../tests/test.rem(79): Expired REM 16 Feb 1991 MSG 16 Feb 1991 -../tests/test.rem(76): Trig = Saturday, 16 February, 1991 +../tests/test.rem(80): Trig = Saturday, 16 February, 1991 16 Feb 1991 REM 29 Dec 1992 MSG 29 Dec 1992 -../tests/test.rem(77): Trig = Tuesday, 29 December, 1992 +../tests/test.rem(81): Trig = Tuesday, 29 December, 1992 REM Sun MSG Sun -../tests/test.rem(79): Trig = Sunday, 17 February, 1991 +../tests/test.rem(83): Trig = Sunday, 17 February, 1991 REM Fri Sat Tue MSG Fri Sat Tue -../tests/test.rem(80): Trig = Saturday, 16 February, 1991 +../tests/test.rem(84): Trig = Saturday, 16 February, 1991 Fri Sat Tue REM Sun 16 MSG Sun 16 -../tests/test.rem(82): Trig = Sunday, 17 February, 1991 +../tests/test.rem(86): Trig = Sunday, 17 February, 1991 REM Mon Tue Wed Thu Fri 1 MSG Mon Tue Wed Thu Fri 1 -../tests/test.rem(83): Trig = Friday, 1 March, 1991 +../tests/test.rem(87): Trig = Friday, 1 March, 1991 REM Sun Feb MSG Sun Feb -../tests/test.rem(85): Trig = Sunday, 17 February, 1991 +../tests/test.rem(89): Trig = Sunday, 17 February, 1991 REM Mon Tue March MSG Mon Tue March -../tests/test.rem(86): Trig = Monday, 4 March, 1991 +../tests/test.rem(90): Trig = Monday, 4 March, 1991 REM Sun 16 Feb MSG Sun 16 Feb -../tests/test.rem(88): Trig = Sunday, 17 February, 1991 +../tests/test.rem(92): Trig = Sunday, 17 February, 1991 REM Mon Tue 10 March MSG Mon Tue 10 March -../tests/test.rem(89): Trig = Monday, 11 March, 1991 +../tests/test.rem(93): Trig = Monday, 11 March, 1991 REM Sat Sun 1991 MSG Sat Sun 1991 -../tests/test.rem(91): Trig = Saturday, 16 February, 1991 +../tests/test.rem(95): Trig = Saturday, 16 February, 1991 Sat Sun 1991 REM Mon Tue 1992 MSG Mon Tue 1992 -../tests/test.rem(92): Trig = Monday, 6 January, 1992 +../tests/test.rem(96): Trig = Monday, 6 January, 1992 REM Sun 16 1991 MSG Sun 16 1991 -../tests/test.rem(94): Trig = Sunday, 17 February, 1991 +../tests/test.rem(98): Trig = Sunday, 17 February, 1991 REM Mon Tue Wed Thu Fri 1 1992 MSG Mon Tue Wed Thu Fri 1 1992 -../tests/test.rem(95): Trig = Wednesday, 1 January, 1992 +../tests/test.rem(99): Trig = Wednesday, 1 January, 1992 REM Mon Feb 1991 MSG Mon Feb 1991 -../tests/test.rem(97): Trig = Monday, 18 February, 1991 +../tests/test.rem(101): Trig = Monday, 18 February, 1991 REM Tue Jan 1992 MSG Tue Jan 1992 -../tests/test.rem(98): Trig = Tuesday, 7 January, 1992 +../tests/test.rem(102): Trig = Tuesday, 7 January, 1992 REM Sun Mon 16 Feb 1991 MSG Sun Mon 16 Feb 1991 -../tests/test.rem(100): Trig = Sunday, 17 February, 1991 +../tests/test.rem(104): Trig = Sunday, 17 February, 1991 REM Tue 28 Jan 1992 MSG Tue 28 Jan 1992 -../tests/test.rem(101): Trig = Tuesday, 28 January, 1992 +../tests/test.rem(105): Trig = Tuesday, 28 January, 1992 # Try some Backs CLEAR-OMIT-CONTEXT REM 1 -1 OMIT sat sun MSG 1 -1 OMIT Sat Sun -../tests/test.rem(105): Trig = Thursday, 28 February, 1991 +../tests/test.rem(109): Trig = Thursday, 28 February, 1991 REM 1 --1 OMIT sat sun MSG 1 --1 OMIT Sat Sun -../tests/test.rem(106): Trig = Thursday, 28 February, 1991 +../tests/test.rem(110): Trig = Thursday, 28 February, 1991 OMIT 28 Feb REM 1 -1 OMIT sat sun MSG 1 -1 OMIT Sat Sun (28 Feb omitted) -../tests/test.rem(109): Trig = Wednesday, 27 February, 1991 +../tests/test.rem(113): Trig = Wednesday, 27 February, 1991 REM 1 --1 OMIT sat sun MSG 1 --1 OMIT Sat Sun (28 Feb omitted) -../tests/test.rem(110): Trig = Thursday, 28 February, 1991 +../tests/test.rem(114): Trig = Thursday, 28 February, 1991 CLEAR-OMIT-CONTEXT # Try out UNTIL REM Wed UNTIL 21 Feb 1991 MSG Wed UNTIL 21 Feb 1991 -../tests/test.rem(115): Trig = Wednesday, 20 February, 1991 +../tests/test.rem(119): Trig = Wednesday, 20 February, 1991 # Try playing with the OMIT context OMIT 28 Feb 1991 REM 1 Mar -1 MSG 1 mar -1 (28feb91 omitted) -../tests/test.rem(120): Trig = Wednesday, 27 February, 1991 +../tests/test.rem(124): Trig = Wednesday, 27 February, 1991 REM 1 Mar --1 MSG 1 mar --1 (28Feb91 omitted) -../tests/test.rem(121): Trig = Thursday, 28 February, 1991 +../tests/test.rem(125): Trig = Thursday, 28 February, 1991 REM 28 Feb BEFORE MSG 28 Feb BEFORE (28Feb91 omitted) -../tests/test.rem(122): Trig = Wednesday, 27 February, 1991 +../tests/test.rem(126): Trig = Wednesday, 27 February, 1991 REM 28 Feb SKIP MSG 28 Feb SKIP (28Feb91 omitted) -../tests/test.rem(123): Trig = Friday, 28 February, 1992 +../tests/test.rem(127): Trig = Friday, 28 February, 1992 REM 28 Feb AFTER MSG 28 Feb AFTER (28Feb91 omitted) -../tests/test.rem(124): Trig = Friday, 1 March, 1991 +../tests/test.rem(128): Trig = Friday, 1 March, 1991 PUSH-OMIT-CONTEXT CLEAR-OMIT-CONTEXT REM 1 Mar -1 MSG 1 mar -1 -../tests/test.rem(128): Trig = Thursday, 28 February, 1991 -REM 1 Mar --1 MSG 1 mar --1 -../tests/test.rem(129): Trig = Thursday, 28 February, 1991 -REM 28 Feb BEFORE MSG 28 Feb BEFORE -../tests/test.rem(130): Trig = Thursday, 28 February, 1991 -REM 28 Feb SKIP MSG 28 Feb SKIP -../tests/test.rem(131): Trig = Thursday, 28 February, 1991 -REM 28 Feb AFTER MSG 28 Feb AFTER ../tests/test.rem(132): Trig = Thursday, 28 February, 1991 +REM 1 Mar --1 MSG 1 mar --1 +../tests/test.rem(133): Trig = Thursday, 28 February, 1991 +REM 28 Feb BEFORE MSG 28 Feb BEFORE +../tests/test.rem(134): Trig = Thursday, 28 February, 1991 +REM 28 Feb SKIP MSG 28 Feb SKIP +../tests/test.rem(135): Trig = Thursday, 28 February, 1991 +REM 28 Feb AFTER MSG 28 Feb AFTER +../tests/test.rem(136): Trig = Thursday, 28 February, 1991 POP-OMIT-CONTEXT REM 1 Mar -1 MSG 1 mar -1 (28feb91 omitted) -../tests/test.rem(135): Trig = Wednesday, 27 February, 1991 +../tests/test.rem(139): Trig = Wednesday, 27 February, 1991 REM 1 Mar --1 MSG 1 mar --1 (28Feb91 omitted) -../tests/test.rem(136): Trig = Thursday, 28 February, 1991 +../tests/test.rem(140): Trig = Thursday, 28 February, 1991 REM 28 Feb BEFORE MSG 28 Feb BEFORE (28Feb91 omitted) -../tests/test.rem(137): Trig = Wednesday, 27 February, 1991 +../tests/test.rem(141): Trig = Wednesday, 27 February, 1991 REM 28 Feb SKIP MSG 28 Feb SKIP (28Feb91 omitted) -../tests/test.rem(138): Trig = Friday, 28 February, 1992 +../tests/test.rem(142): Trig = Friday, 28 February, 1992 REM 28 Feb AFTER MSG 28 Feb AFTER (28Feb91 omitted) -../tests/test.rem(139): Trig = Friday, 1 March, 1991 +../tests/test.rem(143): Trig = Friday, 1 March, 1991 REM 13 March 1991 *1 UNTIL 19 March 1991 MSG 13-19 Mar 91 -../tests/test.rem(142): Trig = Wednesday, 13 March, 1991 +../tests/test.rem(146): Trig = Wednesday, 13 March, 1991 # Test BACK CLEAR-OMIT-CONTEXT REM 18 Feb 1991 +1 MSG 18 Feb 1991 +1 -../tests/test.rem(146): Trig = Monday, 18 February, 1991 +../tests/test.rem(150): Trig = Monday, 18 February, 1991 OMIT 17 Feb 1991 REM 18 Feb 1991 +1 MSG 18 Feb 1991 +1 (17Feb91 omitted) -../tests/test.rem(149): Trig = Monday, 18 February, 1991 +../tests/test.rem(153): Trig = Monday, 18 February, 1991 18 Feb 1991 +1 (17Feb91 omitted) REM 18 Feb 1991 ++1 MSG 18 Feb 1991 ++1 (17Feb91 omitted) -../tests/test.rem(150): Trig = Monday, 18 February, 1991 +../tests/test.rem(154): Trig = Monday, 18 February, 1991 CLEAR-OMIT-CONTEXT # Test the scanfrom clause REM Fri SATISFY 1 -../tests/test.rem(154): Trig = Friday, 22 February, 1991 +../tests/test.rem(158): Trig = Friday, 22 February, 1991 OMIT [trigger(trigdate())] trigdate() => 1991-02-22 trigger(1991-02-22) => "22 February 1991" REM Fri after MSG 23 Feb 1991 -../tests/test.rem(156): Trig = Saturday, 23 February, 1991 +../tests/test.rem(160): Trig = Saturday, 23 February, 1991 CLEAR-OMIT-CONTEXT REM Fri SCANFROM [trigger(today()-7)] SATISFY 1 today() => 1991-02-16 1991-02-16 - 7 => 1991-02-09 trigger(1991-02-09) => "9 February 1991" -../tests/test.rem(158): Trig = Friday, 15 February, 1991 +../tests/test.rem(162): Trig = Friday, 15 February, 1991 OMIT [trigger(trigdate())] trigdate() => 1991-02-15 trigger(1991-02-15) => "15 February 1991" REM Fri after MSG 16 Feb 1991 -../tests/test.rem(160): Trig = Saturday, 16 February, 1991 +../tests/test.rem(164): Trig = Saturday, 16 February, 1991 16 Feb 1991 CLEAR-OMIT-CONTEXT @@ -505,7 +510,7 @@ set a008 coerce("string", 11:44) coerce("string", 11:44) => "11:44" set a009 coerce("int", "badnews") coerce("int", "badnews") => Can't coerce -../tests/test.rem(171): Can't coerce +../tests/test.rem(175): Can't coerce set a010 coerce("int", "12") coerce("int", "12") => 12 set a011 coerce("int", 11:44) @@ -517,7 +522,7 @@ set a013 date(1992, 2, 2) date(1992, 2, 2) => 1992-02-02 set a014 date(1993, 2, 29) date(1993, 2, 29) => Bad date specification -../tests/test.rem(176): Bad date specification +../tests/test.rem(180): Bad date specification set a015 day(today()) today() => 1991-02-16 day(1991-02-16) => 16 @@ -612,15 +617,15 @@ strlen("sadjflkhsldkfhsdlfjhk") => 21 set a050 substr(a049, 2) a049 => 21 substr(21, 2) => Type mismatch -../tests/test.rem(214): Type mismatch +../tests/test.rem(218): Type mismatch set a051 substr(a050, 2, 6) -a050 => ../tests/test.rem(215): Undefined variable: a050 +a050 => ../tests/test.rem(219): Undefined variable: a050 set a052 time(1+2, 3+4) 1 + 2 => 3 3 + 4 => 7 time(3, 7) => 03:07 rem 10 jan 1992 AT 11:22 CAL -../tests/test.rem(217): Trig = Friday, 10 January, 1992 +../tests/test.rem(221): Trig = Friday, 10 January, 1992 set a053 trigdate() trigdate() => 1992-01-10 set a054 trigtime() @@ -712,31 +717,31 @@ y => 11:33 x => "foo" y => 11:33 "foo" * 11:33 => Type mismatch -../tests/test.rem(240): `*': Type mismatch +../tests/test.rem(244): `*': Type mismatch Leaving UserFN h() => Type mismatch set a074 dosubst("%a %b %c %d %e %f %g %h", '1992/5/5') dosubst("%a %b %c %d %e %f %g %h", 1992-05-05) => "on Tuesday, 5 May, 1992 in 444 days' tim"... msg [a074]% -../tests/test.rem(242): Trig = Saturday, 16 February, 1991 +../tests/test.rem(246): Trig = Saturday, 16 February, 1991 a074 => "on Tuesday, 5 May, 1992 in 444 days' tim"... on Tuesday, 5 May, 1992 in 444 days' time on Tuesday 5 on 05-05-1992 on 05-05-1992 on Tuesday, 5 May on 05-05 set a075 dosubst("%i %j %k %l %m %n %o %p", '1992/5/5') dosubst("%i %j %k %l %m %n %o %p", 1992-05-05) => "on 05-05 on Tuesday, May 5th, 1992 on Tu"... msg [a075]% -../tests/test.rem(244): Trig = Saturday, 16 February, 1991 +../tests/test.rem(248): Trig = Saturday, 16 February, 1991 a075 => "on 05-05 on Tuesday, May 5th, 1992 on Tu"... on 05-05 on Tuesday, May 5th, 1992 on Tuesday, May 5th on 1992-05-05 May 5 s set a076 dosubst("%q %r %s %t %u %v %w %x", '1992/5/5') dosubst("%q %r %s %t %u %v %w %x", 1992-05-05) => "s' 05 th 05 on Tuesday, 5th May, 1992 on"... msg [a076]% -../tests/test.rem(246): Trig = Saturday, 16 February, 1991 +../tests/test.rem(250): Trig = Saturday, 16 February, 1991 a076 => "s' 05 th 05 on Tuesday, 5th May, 1992 on"... s' 05 th 05 on Tuesday, 5th May, 1992 on Tuesday, 5th May Tuesday 444 set a077 dosubst("%y %z", '1992/5/5') dosubst("%y %z", 1992-05-05) => "1992 92 " msg [a077]% -../tests/test.rem(248): Trig = Saturday, 16 February, 1991 +../tests/test.rem(252): Trig = Saturday, 16 February, 1991 a077 => "1992 92 " 1992 92 diff --git a/tests/test.rem b/tests/test.rem index ad04ecb1..357a9c81 100644 --- a/tests/test.rem +++ b/tests/test.rem @@ -5,6 +5,10 @@ # # ./test-rem # From WITHIN Remind source directory! +# Don't evaluate SATISFY expressions if reminder has expired + +REM Wed UNTIL 15 Feb 1991 SATISFY [trigdate() > '1990-01-01'] MSG wookie + REM MSG Today is [hebday(today())] [hebmon(today())] [hebyear(today())] fset _h(x, y) trigger(hebdate(x,y))