From 7325375ccdc791f41483844f74bee80c2ab76d22 Mon Sep 17 00:00:00 2001 From: Dianne Skoll Date: Tue, 22 Jul 2025 17:20:58 -0400 Subject: [PATCH] Add PUSH-SYSVARS and POP-SYSVARS commands. --- contrib/remind-conf-mode/remind-conf-mode.el | 20 +- man/remind.1.in | 28 +- src/calendar.c | 12 + src/err.h | 8 +- src/main.c | 21 +- src/omit.c | 7 +- src/protos.h | 3 + src/token.c | 2 + src/types.h | 21 +- src/var.c | 85 + tests/test.cmp | 1679 ++++++++++-------- tests/test.rem | 8 +- 12 files changed, 1089 insertions(+), 805 deletions(-) diff --git a/contrib/remind-conf-mode/remind-conf-mode.el b/contrib/remind-conf-mode/remind-conf-mode.el index bd9148b0..89c493f4 100644 --- a/contrib/remind-conf-mode/remind-conf-mode.el +++ b/contrib/remind-conf-mode/remind-conf-mode.el @@ -110,15 +110,17 @@ (defconst remind-keywords (sort (list "ADDOMIT" "AFTER" "AT" "BAN" "BANNER" "BEFORE" "CAL" "CLEAR" - "CLEAR-OMIT-CONTEXT" "DEBUG" "DO" "DUMP" "DUMPVARS" "DURATION" "ELSE" - "ENDIF" "ERRMSG" "EXIT" "EXPR" "FIRST" "FLUSH" "FOURTH" "FRENAME" "FROM" "FSET" - "FUNSET" "IF" "IFTRIG" "IN" "INC" "INCLUDE" "INCLUDECMD" "INFO" "LAST" - "LASTDAY" "LASTWORKDAY" "MAYBE" "MAYBE-UNCOMPUTABLE" "MSF" "MSG" - "NOQUEUE" "OMIT" "OMITFUNC" "ONCE" "POP" "POP-OMIT-CONTEXT" "PRESERVE" - "PRIORITY" "PS" "PSFILE" "PUSH" "PUSH-OMIT-CONTEXT" "REM" "RUN" - "SATISFY" "SCAN" "SCANFROM" "SCHED" "SECOND" "SET" "SKIP" "SPECIAL" - "SYSINCLUDE" "TAG" "THIRD" "THROUGH" "TRANSLATE" "TRANS" "UNSET" - "UNTIL" "WARN") + "CLEAR-OMIT-CONTEXT" "DEBUG" "DO" "DUMP" "DUMPVARS" + "DURATION" "ELSE" "ENDIF" "ERRMSG" "EXIT" "EXPR" "FIRST" + "FLUSH" "FOURTH" "FRENAME" "FROM" "FSET" "FUNSET" "IF" + "IFTRIG" "IN" "INC" "INCLUDE" "INCLUDECMD" "INFO" "LAST" + "LASTDAY" "LASTWORKDAY" "MAYBE" "MAYBE-UNCOMPUTABLE" "MSF" + "MSG" "NOQUEUE" "OMIT" "OMITFUNC" "ONCE" "POP" + "POP-OMIT-CONTEXT" "POP-SYSVARS" "PRESERVE" "PRIORITY" "PS" + "PSFILE" "PUSH" "PUSH-SYSVARS" "PUSH-OMIT-CONTEXT" "REM" + "RUN" "SATISFY" "SCAN" "SCANFROM" "SCHED" "SECOND" "SET" + "SKIP" "SPECIAL" "SYSINCLUDE" "TAG" "THIRD" "THROUGH" + "TRANSLATE" "TRANS" "UNSET" "UNTIL" "WARN") #'(lambda (a b) (> (length a) (length b))))) diff --git a/man/remind.1.in b/man/remind.1.in index f7a31a12..f29a3d40 100644 --- a/man/remind.1.in +++ b/man/remind.1.in @@ -2579,7 +2579,7 @@ For example, to delete all the variables declared above, use: UNSET a b mydir time date .fi .PP -.B SYSTEM VARIABLES +.SH SYSTEM VARIABLES .PP In addition to the regular user variables, \fBRemind\fR has several "system variables" that are used to query or control the operating @@ -3125,7 +3125,31 @@ Note: If any of the calendar modes are in effect, then the values of $Daemon, $DontFork, $DontTrigAts, $DontQueue, $HushMode, $IgnoreOnce, $InfDelta, and $NextMode are not meaningful. .PP -.B BUILT-IN FUNCTIONS +.SH SAVING AND RESTORING SYSTEM VARIABLES +.PP +Just as with the OMIT context, you can save and restore the values of +all (modifiable) system variables. For example: +.PP +.nf + # Save all system variables + PUSH-SYSVARS + + SET $DefaultColor "255 0 0" + SET $AddBlankLines 0 + REM MSG Hello + + # Restore all system variables + POP-SYSVARS + + # Now the changes to $DefaultColor and $AddBlankLines + # have been undone +.fi +.PP +As you see from the example, PUSH-SYSVARS saves the values of all system +variables, and POP-SYSVARS restores them to the values they had at the +time of the matching PUSH-SYSVARS call. +.PP +.SH BUILT-IN FUNCTIONS .PP \fBRemind\fR has a plethora of built-in functions. The syntax for a function call is the same as in C - the function name, followed a comma-separated list diff --git a/src/calendar.c b/src/calendar.c index c28341bb..d0b69bbc 100644 --- a/src/calendar.c +++ b/src/calendar.c @@ -1806,6 +1806,18 @@ static void GenerateCalEntries(int col) break; case T_Pop: r=PopOmitContext(&p); break; case T_Push: r=PushOmitContext(&p); break; + case T_PushSysvars: + r=PushSysvars(); + if (r == OK) { + r = VerifyEoln(&p); + } + break; + case T_PopSysvars: + r=PopSysvars(); + if (r == OK) { + r = VerifyEoln(&p); + } + break; case T_Preserve: r=DoPreserve(&p); break; case T_Expr: r = DoExpr(&p); break; case T_Translate: r = DoTranslate(&p); break; diff --git a/src/err.h b/src/err.h index 5140523d..b9df98f7 100644 --- a/src/err.h +++ b/src/err.h @@ -30,8 +30,8 @@ #define E_CANT_PARSE_WKDAY 8 #define E_NO_MEM 9 #define E_BAD_NUMBER 10 -/* #define E_OP_STK_UNDER 11 */ -/* #define E_VA_STK_UNDER 12 */ +#define E_PUSHSV_NO_POP 11 +#define E_POPSV_NO_PUSH 12 #define E_CANT_COERCE 13 #define E_BAD_TYPE 14 #define E_DATE_OVER 15 @@ -158,8 +158,8 @@ EXTERN char *ErrMsg[] /* E_CANT_PARSE_WKDAY*/ "Invalid weekday name", /* E_NO_MEM */ "Out of memory", /* E_BAD_NUMBER */ "Ill-formed number", -/* E_OP_STK_UNDER */ "", -/* E_VA_STK_UNDER */ "", +/* E_PUSHSV_NO_POP */ "Warning: PUSH-SYSVARS without matching POP-SYSVARS", +/* E_POPSV_NO_PUSH */ "POP-SYSVARS without matching PUSH-SYSVARS", /* E_CANT_COERCE */ "Can't coerce", /* E_BAD_TYPE */ "Type mismatch", /* E_DATE_OVER */ "Date overflow", diff --git a/src/main.c b/src/main.c index 4e88b2a3..6d0a6d49 100644 --- a/src/main.c +++ b/src/main.c @@ -181,8 +181,14 @@ int main(int argc, char *argv[]) } if (!Hush) { - if (DestroyOmitContexts(1)) + if (DestroyOmitContexts(1)) { + FreshLine = 1; Eprint("%s", GetErr(E_PUSH_NOPOP)); + } + if (EmptySysvarStack()) { + FreshLine = 1; + Eprint("%s", GetErr(E_PUSHSV_NO_POP)); + } if (!Daemon && !NextMode && !NumTriggered && !NumQueued) { printf("%s\n", GetErr(E_NOREMINDERS)); } else if (!Daemon && !NextMode && !NumTriggered) { @@ -235,6 +241,7 @@ PerIterationInit(void) { ClearGlobalOmits(); DestroyOmitContexts(1); + EmptySysvarStack(); DestroyVars(0); DefaultColorR = -1; DefaultColorG = -1; @@ -366,6 +373,18 @@ static void DoReminders(void) case T_Pop: r=PopOmitContext(&p); break; case T_Preserve: r=DoPreserve(&p); break; case T_Push: r=PushOmitContext(&p); break; + case T_PushSysvars: + r=PushSysvars(); + if (r == OK) { + r = VerifyEoln(&p); + } + break; + case T_PopSysvars: + r=PopSysvars(); + if (r == OK) { + r = VerifyEoln(&p); + } + break; case T_Expr: r = DoExpr(&p); break; case T_Translate: r = DoTranslate(&p); break; case T_RemType: if (tok.val == RUN_TYPE) { diff --git a/src/omit.c b/src/omit.c index c7b14469..ad7444b7 100644 --- a/src/omit.c +++ b/src/omit.c @@ -121,12 +121,9 @@ int PushOmitContext(ParsePtr p) context = NEW(OmitContext); if (!context) return E_NO_MEM; - if (GetCurrentFilename()) { - context->filename = GetCurrentFilename(); - } else { - context->filename = ""; - } + context->filename = GetCurrentFilename(); context->lineno = LineNo; + context->numfull = NumFullOmits; context->numpart = NumPartialOmits; context->weekdaysave = WeekdayOmits; diff --git a/src/protos.h b/src/protos.h index 7967c2d9..ee6ec27e 100644 --- a/src/protos.h +++ b/src/protos.h @@ -147,6 +147,9 @@ int SetVar (char const *str, Value const *val, int nonconst_expr); int DoSet (Parser *p); int DoUnset (Parser *p); int DoDump (ParsePtr p); +int PushSysvars(void); +int EmptySysvarStack(void); +int PopSysvars(void); void DumpVarTable (int dump_constness); void DumpUnusedVars(void); void DestroyVars (int all); diff --git a/src/token.c b/src/token.c index ea2a5d4f..9c6f6125 100644 --- a/src/token.c +++ b/src/token.c @@ -91,11 +91,13 @@ Token TokArray[] = { { "omitfunc", 8, T_OmitFunc, 0 }, { "once", 4, T_Once, 0 }, { "pop-omit-context", 3, T_Pop, 0 }, + { "pop-sysvars", 11, T_PopSysvars, 0 }, { "preserve", 8, T_Preserve, 0 }, { "priority", 8, T_Priority, 0 }, { "ps", 2, T_RemType, PS_TYPE }, { "psfile", 6, T_RemType, PSF_TYPE }, { "push-omit-context", 4, T_Push, 0 }, + { "push-sysvars", 12, T_PushSysvars, 0 }, { "rem", 3, T_Rem, 0 }, { "run", 3, T_RemType, RUN_TYPE }, { "satisfy", 7, T_RemType, SAT_TYPE }, diff --git a/src/types.h b/src/types.h index 093ce7f5..3a90a6a9 100644 --- a/src/types.h +++ b/src/types.h @@ -228,13 +228,14 @@ enum TokTypes { T_Illegal, T_AddOmit, T_At, T_Back, T_BackAdj, T_Banner, T_Clr, T_Comment, T_Date, T_DateTime, T_Day, T_Debug, T_Delta, T_Dumpvars, T_Duration, - T_Else, T_Empty, T_EndIf, T_ErrMsg, T_Exit, T_Expr, - T_Flush, T_Frename, T_Fset, T_Funset, T_If, T_IfTrig, T_In, - T_Include, T_IncludeCmd, T_IncludeR, T_IncludeSys, T_Info, T_LastBack, - T_LongTime, T_MaybeUncomputable, T_Month, T_NoQueue, T_Number, T_Omit, - T_OmitFunc, T_Once, T_Ordinal, T_Pop, T_Preserve, T_Priority, T_Push,T_Rem, - T_RemType, T_Rep, T_Scanfrom, T_Sched, T_Set, T_Skip, T_Tag, T_Through, - T_Time, T_Translate, T_UnSet, T_Until, T_Warn, T_WkDay, T_Year + T_Else, T_Empty, T_EndIf, T_ErrMsg, T_Exit, T_Expr, T_Flush, + T_Frename, T_Fset, T_Funset, T_If, T_IfTrig, T_In, T_Include, + T_IncludeCmd, T_IncludeR, T_IncludeSys, T_Info, T_LastBack, + T_LongTime, T_MaybeUncomputable, T_Month, T_NoQueue, T_Number, + T_Omit, T_OmitFunc, T_Once, T_Ordinal, T_Pop, T_PopSysvars, + T_Preserve, T_Priority, T_Push, T_PushSysvars, T_Rem, T_RemType, + T_Rep, T_Scanfrom, T_Sched, T_Set, T_Skip, T_Tag, T_Through, T_Time, + T_Translate, T_UnSet, T_Until, T_Warn, T_WkDay, T_Year }; /* The structure of a token */ @@ -311,3 +312,9 @@ typedef struct udf_struct { int lineno_start; int recurse_flag; } UserFunc; + +/* A pushed systtem variable */ +typedef struct { + char const *name; + Value v; +} PushedSysvar; diff --git a/src/var.c b/src/var.c index 0cce10bc..a749a50e 100644 --- a/src/var.c +++ b/src/var.c @@ -1079,6 +1079,91 @@ static SysVar SysVarArr[] = { }; #define NUMSYSVARS ( sizeof(SysVarArr) / sizeof(SysVar) ) +static size_t NumPushableSysvars = 0; + +struct pushed_sysvars { + struct pushed_sysvars *next; + char const *filename; + int lineno; + PushedSysvar *vars; +}; + +static struct pushed_sysvars *SysvarStack = NULL; + +static size_t CountPushableSysvars(void) +{ + if (NumPushableSysvars != 0) return NumPushableSysvars; + size_t i; + for (i=0; ifilename = GetCurrentFilename(); + ps->lineno = LineNo; + + ps->next = SysvarStack; + ps->vars = calloc(CountPushableSysvars(), sizeof(PushedSysvar)); + if (!ps->vars) { + free(ps); + return E_NO_MEM; + } + + j = 0; + for (i=0; ivars[j].name = SysVarArr[i].name; + (void) GetSysVar(ps->vars[j].name, &(ps->vars[j].v)); + /* fprintf(ErrFp, "push($%s) => %s\n", ps->vars[j].name, PrintValue(&(ps->vars[j].v), NULL)); */ + j++; + } + } + SysvarStack = ps; + return OK; +} + +int PopSysvars(void) +{ + if (!SysvarStack) { + return E_POPSV_NO_PUSH; + } + size_t n = CountPushableSysvars(); + size_t i; + struct pushed_sysvars *ps = SysvarStack; + + if (strcmp(ps->filename, GetCurrentFilename())) { + Wprint(tr("POP-SYSVARS at %s:%d matches PUSH-SYSVARS in different file: %s:%d"), GetCurrentFilename(), LineNo, ps->filename, ps->lineno); + } + SysvarStack = ps->next; + for (i=0; i %s\n", ps->vars[i].name, PrintValue(&(ps->vars[i].v), NULL)); */ + (void) SetSysVar(ps->vars[i].name, &(ps->vars[i].v)); + DestroyValue(ps->vars[i].v); + } + free(ps->vars); + free(ps); + return OK; +} + +int EmptySysvarStack(void) +{ + int j=0; + while(SysvarStack) { + j++; + PopSysvars(); + } + return j; +} + static void DumpSysVar (char const *name, const SysVar *v); static int SetTranslatableVariable(SysVar const *v, Value const *value) diff --git a/tests/test.cmp b/tests/test.cmp index d1aef4a5..a3b6a6d9 100644 --- a/tests/test.cmp +++ b/tests/test.cmp @@ -888,7 +888,7 @@ set $LatDeg 30 set $LatMin 30 set $LatSec 0 set $LongDeg -25 -set $LongMin 15 +set $LongMin -15 set $LongSec 0 set a000 abs(1) @@ -2725,6 +2725,128 @@ a136 "PIPE" a098 0 a049 21 a099 -1 +PUSH-SYSVARS +set $Tomorrow "HAHA, tomorrow" +set $Latitude "0" +set $DefaultColor "42 42 42" +dump $ +Variable Value + + $AddBlankLines 1 [0, 1] + $Ago "ago" + $Am "am" + $And "and" + $April "April" + $At "at" + $August "August" + $CalcUTC 0 [0, 1] + $CalMode 0 + $CalType "none" + $Daemon 0 + $DateSep "-" + $DateTimeSep "@" + $December "December" + $DedupeReminders 0 [0, 1] + $DefaultColor "42 42 42" + $DefaultDelta 0 [0, 10000] + $DefaultPrio 5000 [0, 9999] + $DefaultTDelta 0 [0, 1440] + $DeltaOverride 0 + $DontFork 0 + $DontQueue 1 + $DontTrigAts 0 + $EndSent ".?!" + $EndSentIg "\"')]}>" + $ExpressionTimeLimit 0 + $February "February" + $FirstIndent 0 [0, 132] + $FoldYear 0 [0, 1] + $FormWidth 72 [20, 500] + $Friday "Friday" + $Fromnow "from now" + $Hour "hour" + $Hplu "s" + $HushMode 0 + $IgnoreOnce 1 + $InfDelta 0 + $IntMax 2147483647 + $IntMin -2147483648 + $Is "is" + $January "January" + $July "July" + $June "June" + $LatDeg 0 + $Latitude "0.000000" + $LatMin 0 + $LatSec 0 + $Location "Ottawa" + $LongDeg -25 + $Longitude "25.250000" + $LongMin -15 + $LongSec 0 + $March "March" + $MaxFullOmits 1000 + $MaxLateMinutes 0 [0, 1440] + $MaxPartialOmits 366 + $MaxSatIter 150 [10, Inf) + $MaxStringLen 65535 [-1, Inf) + $May "May" + $MinsFromUTC -300 [-780, 780] + $Minute "minute" + $Monday "Monday" + $Mplu "s" + $NextMode 0 + $November "November" + $Now "now" + $NumFullOmits 1 + $NumPartialOmits 0 + $NumQueued 0 + $NumTrig 42 + $October "October" + $On "on" + $OnceFile "" + $ParseUntriggered 1 [0, 1] + $Pm "pm" + $PrefixLineNo 0 + $PSCal 0 + $RunOff 0 + $Saturday "Saturday" + $September "September" + $SimpleCal 0 + $SortByDate 0 + $SortByPrio 0 + $SortByTime 0 + $SubsIndent 0 [0, 132] + $Sunday "Sunday" +$SuppressImplicitWarnings 0 [0, 1] + $SuppressLRM 0 [0, 1] + $T 0 + $Tb 0 + $Td -1 + $TerminalBackground -1 + $Thursday "Thursday" + $TimeSep ":" + $Tm -1 + $Today "today" + $Tomorrow "HAHA, tomorrow" + $Tt 00:00 + $Tu -1 + $Tuesday "Tuesday" + $Tw -1 + $Ty -1 + $U 1991-02-16 + $Ud 16 + $Um 2 + $UntimedFirst 0 + $Use256Colors 0 + $UseBGVTColors 0 + $UseTrueColors 0 + $UseVTColors 0 + $Uw 6 + $Uy 1991 + $Was "was" + $Wednesday "Wednesday" +POP-SYSVARS dump $ Variable Value @@ -2777,8 +2899,8 @@ Variable Value $LatSec 0 $Location "Ottawa" $LongDeg -25 - $Longitude "24.750000" - $LongMin 15 + $Longitude "25.250000" + $LongMin -15 $LongSec 0 $March "March" $MaxFullOmits 1000 @@ -2843,362 +2965,362 @@ $SuppressImplicitWarnings 0 [0, 1] $Was "was" $Wednesday "Wednesday" msg [$April]% -../tests/test.rem(482): Trig = Saturday, 16 February, 1991 +../tests/test.rem(488): Trig = Saturday, 16 February, 1991 $April => "April" April msg [$August]% -../tests/test.rem(483): Trig = Saturday, 16 February, 1991 +../tests/test.rem(489): Trig = Saturday, 16 February, 1991 $August => "August" August msg [$CalcUTC]% -../tests/test.rem(484): Trig = Saturday, 16 February, 1991 +../tests/test.rem(490): Trig = Saturday, 16 February, 1991 $CalcUTC => 0 0 msg [$CalMode]% -../tests/test.rem(485): Trig = Saturday, 16 February, 1991 +../tests/test.rem(491): Trig = Saturday, 16 February, 1991 $CalMode => 0 0 msg [$Daemon]% -../tests/test.rem(486): Trig = Saturday, 16 February, 1991 +../tests/test.rem(492): Trig = Saturday, 16 February, 1991 $Daemon => 0 0 msg [$DateSep]% -../tests/test.rem(487): Trig = Saturday, 16 February, 1991 +../tests/test.rem(493): Trig = Saturday, 16 February, 1991 $DateSep => "-" - msg [$DateTimeSep]% -../tests/test.rem(488): Trig = Saturday, 16 February, 1991 +../tests/test.rem(494): Trig = Saturday, 16 February, 1991 $DateTimeSep => "@" @ msg [$December]% -../tests/test.rem(489): Trig = Saturday, 16 February, 1991 +../tests/test.rem(495): Trig = Saturday, 16 February, 1991 $December => "December" December msg [$DefaultColor]% -../tests/test.rem(490): Trig = Saturday, 16 February, 1991 +../tests/test.rem(496): Trig = Saturday, 16 February, 1991 $DefaultColor => "-1 -1 -1" -1 -1 -1 msg [$DefaultPrio]% -../tests/test.rem(491): Trig = Saturday, 16 February, 1991 +../tests/test.rem(497): Trig = Saturday, 16 February, 1991 $DefaultPrio => 5000 5000 msg [$DefaultTDelta]% -../tests/test.rem(492): Trig = Saturday, 16 February, 1991 +../tests/test.rem(498): Trig = Saturday, 16 February, 1991 $DefaultTDelta => 0 0 msg [$DeltaOverride]% -../tests/test.rem(493): Trig = Saturday, 16 February, 1991 +../tests/test.rem(499): Trig = Saturday, 16 February, 1991 $DeltaOverride => 0 0 msg [$DontFork]% -../tests/test.rem(494): Trig = Saturday, 16 February, 1991 +../tests/test.rem(500): Trig = Saturday, 16 February, 1991 $DontFork => 0 0 msg [$DontQueue]% -../tests/test.rem(495): Trig = Saturday, 16 February, 1991 +../tests/test.rem(501): Trig = Saturday, 16 February, 1991 $DontQueue => 1 1 msg [$DontTrigAts]% -../tests/test.rem(496): Trig = Saturday, 16 February, 1991 +../tests/test.rem(502): Trig = Saturday, 16 February, 1991 $DontTrigAts => 0 0 msg [$EndSent]% -../tests/test.rem(497): Trig = Saturday, 16 February, 1991 +../tests/test.rem(503): Trig = Saturday, 16 February, 1991 $EndSent => ".?!" .?! msg [$EndSentIg]% -../tests/test.rem(498): Trig = Saturday, 16 February, 1991 +../tests/test.rem(504): Trig = Saturday, 16 February, 1991 $EndSentIg => "\"')]}>" "')]}> msg [$February]% -../tests/test.rem(499): Trig = Saturday, 16 February, 1991 +../tests/test.rem(505): Trig = Saturday, 16 February, 1991 $February => "February" February msg [$FirstIndent]% -../tests/test.rem(500): Trig = Saturday, 16 February, 1991 +../tests/test.rem(506): Trig = Saturday, 16 February, 1991 $FirstIndent => 0 0 msg [$FoldYear]% -../tests/test.rem(501): Trig = Saturday, 16 February, 1991 +../tests/test.rem(507): Trig = Saturday, 16 February, 1991 $FoldYear => 0 0 msg [$FormWidth]% -../tests/test.rem(502): Trig = Saturday, 16 February, 1991 +../tests/test.rem(508): Trig = Saturday, 16 February, 1991 $FormWidth => 72 72 msg [$Friday]% -../tests/test.rem(503): Trig = Saturday, 16 February, 1991 +../tests/test.rem(509): Trig = Saturday, 16 February, 1991 $Friday => "Friday" Friday msg [$HushMode]% -../tests/test.rem(504): Trig = Saturday, 16 February, 1991 +../tests/test.rem(510): Trig = Saturday, 16 February, 1991 $HushMode => 0 0 msg [$IgnoreOnce]% -../tests/test.rem(505): Trig = Saturday, 16 February, 1991 +../tests/test.rem(511): Trig = Saturday, 16 February, 1991 $IgnoreOnce => 1 1 msg [$InfDelta]% -../tests/test.rem(506): Trig = Saturday, 16 February, 1991 +../tests/test.rem(512): Trig = Saturday, 16 February, 1991 $InfDelta => 0 0 msg [$IntMax]% -../tests/test.rem(507): Trig = Saturday, 16 February, 1991 +../tests/test.rem(513): Trig = Saturday, 16 February, 1991 $IntMax => 2147483647 2147483647 msg [$IntMin]% -../tests/test.rem(508): Trig = Saturday, 16 February, 1991 +../tests/test.rem(514): Trig = Saturday, 16 February, 1991 $IntMin => -2147483648 -2147483648 msg [$January]% -../tests/test.rem(509): Trig = Saturday, 16 February, 1991 +../tests/test.rem(515): Trig = Saturday, 16 February, 1991 $January => "January" January msg [$July]% -../tests/test.rem(510): Trig = Saturday, 16 February, 1991 +../tests/test.rem(516): Trig = Saturday, 16 February, 1991 $July => "July" July msg [$June]% -../tests/test.rem(511): Trig = Saturday, 16 February, 1991 +../tests/test.rem(517): Trig = Saturday, 16 February, 1991 $June => "June" June msg [$LatDeg]% -../tests/test.rem(512): Trig = Saturday, 16 February, 1991 +../tests/test.rem(518): Trig = Saturday, 16 February, 1991 $LatDeg => 30 30 msg [$Latitude]% -../tests/test.rem(513): Trig = Saturday, 16 February, 1991 +../tests/test.rem(519): Trig = Saturday, 16 February, 1991 $Latitude => "30.500000" 30.500000 msg [$LatMin]% -../tests/test.rem(514): Trig = Saturday, 16 February, 1991 +../tests/test.rem(520): Trig = Saturday, 16 February, 1991 $LatMin => 30 30 msg [$LatSec]% -../tests/test.rem(515): Trig = Saturday, 16 February, 1991 +../tests/test.rem(521): Trig = Saturday, 16 February, 1991 $LatSec => 0 0 msg [$Location]% -../tests/test.rem(516): Trig = Saturday, 16 February, 1991 +../tests/test.rem(522): Trig = Saturday, 16 February, 1991 $Location => "Ottawa" Ottawa msg [$LongDeg]% -../tests/test.rem(517): Trig = Saturday, 16 February, 1991 +../tests/test.rem(523): Trig = Saturday, 16 February, 1991 $LongDeg => -25 -25 msg [$Longitude]% -../tests/test.rem(518): Trig = Saturday, 16 February, 1991 -$Longitude => "24.750000" -24.750000 +../tests/test.rem(524): Trig = Saturday, 16 February, 1991 +$Longitude => "25.250000" +25.250000 msg [$LongMin]% -../tests/test.rem(519): Trig = Saturday, 16 February, 1991 -$LongMin => 15 -15 +../tests/test.rem(525): Trig = Saturday, 16 February, 1991 +$LongMin => -15 +-15 msg [$LongSec]% -../tests/test.rem(520): Trig = Saturday, 16 February, 1991 +../tests/test.rem(526): Trig = Saturday, 16 February, 1991 $LongSec => 0 0 msg [$March]% -../tests/test.rem(521): Trig = Saturday, 16 February, 1991 +../tests/test.rem(527): Trig = Saturday, 16 February, 1991 $March => "March" March msg [$MaxSatIter]% -../tests/test.rem(522): Trig = Saturday, 16 February, 1991 +../tests/test.rem(528): Trig = Saturday, 16 February, 1991 $MaxSatIter => 150 150 msg [$MaxStringLen]% -../tests/test.rem(523): Trig = Saturday, 16 February, 1991 +../tests/test.rem(529): Trig = Saturday, 16 February, 1991 $MaxStringLen => 65535 65535 msg [$May]% -../tests/test.rem(524): Trig = Saturday, 16 February, 1991 +../tests/test.rem(530): Trig = Saturday, 16 February, 1991 $May => "May" May msg [$MinsFromUTC]% -../tests/test.rem(525): Trig = Saturday, 16 February, 1991 +../tests/test.rem(531): Trig = Saturday, 16 February, 1991 $MinsFromUTC => -300 -300 msg [$Monday]% -../tests/test.rem(526): Trig = Saturday, 16 February, 1991 +../tests/test.rem(532): Trig = Saturday, 16 February, 1991 $Monday => "Monday" Monday msg [$NextMode]% -../tests/test.rem(527): Trig = Saturday, 16 February, 1991 +../tests/test.rem(533): Trig = Saturday, 16 February, 1991 $NextMode => 0 0 msg [$November]% -../tests/test.rem(528): Trig = Saturday, 16 February, 1991 +../tests/test.rem(534): Trig = Saturday, 16 February, 1991 $November => "November" November msg [$NumQueued]% -../tests/test.rem(529): Trig = Saturday, 16 February, 1991 +../tests/test.rem(535): Trig = Saturday, 16 February, 1991 $NumQueued => 0 0 msg [$NumTrig]% -../tests/test.rem(530): Trig = Saturday, 16 February, 1991 +../tests/test.rem(536): Trig = Saturday, 16 February, 1991 $NumTrig => 90 90 msg [$October]% -../tests/test.rem(531): Trig = Saturday, 16 February, 1991 +../tests/test.rem(537): Trig = Saturday, 16 February, 1991 $October => "October" October msg [$PrefixLineNo]% -../tests/test.rem(532): Trig = Saturday, 16 February, 1991 +../tests/test.rem(538): Trig = Saturday, 16 February, 1991 $PrefixLineNo => 0 0 msg [$PSCal]% -../tests/test.rem(533): Trig = Saturday, 16 February, 1991 +../tests/test.rem(539): Trig = Saturday, 16 February, 1991 $PSCal => 0 0 msg [$RunOff]% -../tests/test.rem(534): Trig = Saturday, 16 February, 1991 +../tests/test.rem(540): Trig = Saturday, 16 February, 1991 $RunOff => 0 0 msg [$Saturday]% -../tests/test.rem(535): Trig = Saturday, 16 February, 1991 +../tests/test.rem(541): Trig = Saturday, 16 February, 1991 $Saturday => "Saturday" Saturday msg [$September]% -../tests/test.rem(536): Trig = Saturday, 16 February, 1991 +../tests/test.rem(542): Trig = Saturday, 16 February, 1991 $September => "September" September msg [$SimpleCal]% -../tests/test.rem(537): Trig = Saturday, 16 February, 1991 +../tests/test.rem(543): Trig = Saturday, 16 February, 1991 $SimpleCal => 0 0 msg [$SortByDate]% -../tests/test.rem(538): Trig = Saturday, 16 February, 1991 +../tests/test.rem(544): Trig = Saturday, 16 February, 1991 $SortByDate => 0 0 msg [$SortByPrio]% -../tests/test.rem(539): Trig = Saturday, 16 February, 1991 +../tests/test.rem(545): Trig = Saturday, 16 February, 1991 $SortByPrio => 0 0 msg [$SortByTime]% -../tests/test.rem(540): Trig = Saturday, 16 February, 1991 +../tests/test.rem(546): Trig = Saturday, 16 February, 1991 $SortByTime => 0 0 msg [$SubsIndent]% -../tests/test.rem(541): Trig = Saturday, 16 February, 1991 +../tests/test.rem(547): Trig = Saturday, 16 February, 1991 $SubsIndent => 0 0 msg [$Sunday]% -../tests/test.rem(542): Trig = Saturday, 16 February, 1991 +../tests/test.rem(548): Trig = Saturday, 16 February, 1991 $Sunday => "Sunday" Sunday msg [$T]% -../tests/test.rem(543): Trig = Saturday, 16 February, 1991 +../tests/test.rem(549): Trig = Saturday, 16 February, 1991 $T => 1991-02-16 1991-02-16 msg [$Td]% -../tests/test.rem(544): Trig = Saturday, 16 February, 1991 +../tests/test.rem(550): Trig = Saturday, 16 February, 1991 $Td => 16 16 msg [$Thursday]% -../tests/test.rem(545): Trig = Saturday, 16 February, 1991 +../tests/test.rem(551): Trig = Saturday, 16 February, 1991 $Thursday => "Thursday" Thursday msg [$TimeSep]% -../tests/test.rem(546): Trig = Saturday, 16 February, 1991 +../tests/test.rem(552): Trig = Saturday, 16 February, 1991 $TimeSep => ":" : msg [$Tm]% -../tests/test.rem(547): Trig = Saturday, 16 February, 1991 +../tests/test.rem(553): Trig = Saturday, 16 February, 1991 $Tm => 2 2 msg [$Tuesday]% -../tests/test.rem(548): Trig = Saturday, 16 February, 1991 +../tests/test.rem(554): Trig = Saturday, 16 February, 1991 $Tuesday => "Tuesday" Tuesday msg [$Tw]% -../tests/test.rem(549): Trig = Saturday, 16 February, 1991 +../tests/test.rem(555): Trig = Saturday, 16 February, 1991 $Tw => 6 6 msg [$Ty]% -../tests/test.rem(550): Trig = Saturday, 16 February, 1991 +../tests/test.rem(556): Trig = Saturday, 16 February, 1991 $Ty => 1991 1991 msg [$U]% -../tests/test.rem(551): Trig = Saturday, 16 February, 1991 +../tests/test.rem(557): Trig = Saturday, 16 February, 1991 $U => 1991-02-16 1991-02-16 msg [$Ud]% -../tests/test.rem(552): Trig = Saturday, 16 February, 1991 +../tests/test.rem(558): Trig = Saturday, 16 February, 1991 $Ud => 16 16 msg [$Um]% -../tests/test.rem(553): Trig = Saturday, 16 February, 1991 +../tests/test.rem(559): Trig = Saturday, 16 February, 1991 $Um => 2 2 msg [$UntimedFirst]% -../tests/test.rem(554): Trig = Saturday, 16 February, 1991 +../tests/test.rem(560): Trig = Saturday, 16 February, 1991 $UntimedFirst => 0 0 msg [$Uw]% -../tests/test.rem(555): Trig = Saturday, 16 February, 1991 +../tests/test.rem(561): Trig = Saturday, 16 February, 1991 $Uw => 6 6 msg [$Uy]% -../tests/test.rem(556): Trig = Saturday, 16 February, 1991 +../tests/test.rem(562): Trig = Saturday, 16 February, 1991 $Uy => 1991 1991 msg [$Wednesday]% -../tests/test.rem(557): Trig = Saturday, 16 February, 1991 +../tests/test.rem(563): Trig = Saturday, 16 February, 1991 $Wednesday => "Wednesday" Wednesday # Diagnose until before start date, only for non-constant expressions and # fully-specified start date REM Mon 1992 UNTIL 1991-01-01 MSG Not diagnosed - not fully-specified start -../tests/test.rem(561): Expired +../tests/test.rem(567): Expired REM 1992-01-01 *1 UNTIL 1991-12-31 MSG Diagnosed -../tests/test.rem(562): Warning: UNTIL/THROUGH date earlier than start date -../tests/test.rem(562): Expired +../tests/test.rem(568): Warning: UNTIL/THROUGH date earlier than start date +../tests/test.rem(568): Expired set x '1992-01-01' MSG [isconst(x)] -../tests/test.rem(564): Trig = Saturday, 16 February, 1991 +../tests/test.rem(570): Trig = Saturday, 16 February, 1991 x => 1992-01-01 isconst(1992-01-01) => 1 1 REM [x] *1 UNTIL 1991-12-31 MSG Diagnosed x => 1992-01-01 -../tests/test.rem(565): Warning: UNTIL/THROUGH date earlier than start date -../tests/test.rem(565): Expired +../tests/test.rem(571): Warning: UNTIL/THROUGH date earlier than start date +../tests/test.rem(571): Expired set x nonconst('1992-01-01') nonconst(1992-01-01) => 1992-01-01 MSG [isconst(x)] -../tests/test.rem(568): Trig = Saturday, 16 February, 1991 +../tests/test.rem(574): Trig = Saturday, 16 February, 1991 x => 1992-01-01 isconst(1992-01-01) => 0 0 REM [x] *1 UNTIL 1991-12-31 MSG Not diagnosed - nonconst expression x => 1992-01-01 -../tests/test.rem(569): Expired +../tests/test.rem(575): Expired REM MON FROM 1992-01-01 UNTIL 1991-12-31 MSG Diagnosed -../tests/test.rem(571): Warning: UNTIL/THROUGH date earlier than FROM date -../tests/test.rem(571): Expired +../tests/test.rem(577): Warning: UNTIL/THROUGH date earlier than FROM date +../tests/test.rem(577): Expired REM MON SCANFROM 1992-01-01 UNTIL 1991-12-31 MSG Diagnosed -../tests/test.rem(572): Warning: UNTIL/THROUGH date earlier than SCANFROM date -../tests/test.rem(572): Expired +../tests/test.rem(578): Warning: UNTIL/THROUGH date earlier than SCANFROM date +../tests/test.rem(578): Expired REM MON FROM [x] UNTIL 1991-12-31 MSG Not diagnosed x => 1992-01-01 -../tests/test.rem(574): Expired +../tests/test.rem(580): Expired REM MON SCANFROM [x] UNTIL 1991-12-31 MSG Not diagnosed x => 1992-01-01 -../tests/test.rem(575): Expired +../tests/test.rem(581): Expired REM 1992-01-01 UNTIL 1992-02-02 MSG Diagnosed -../tests/test.rem(577): Warning: Useless use of UNTIL with fully-specified date and no *rep -../tests/test.rem(577): Trig = Wednesday, 1 January, 1992 +../tests/test.rem(583): Warning: Useless use of UNTIL with fully-specified date and no *rep +../tests/test.rem(583): Trig = Wednesday, 1 January, 1992 REM [x] UNTIL 1992-02-02 MSG Diagnosed x => 1992-01-01 -../tests/test.rem(578): Warning: Useless use of UNTIL with fully-specified date and no *rep -../tests/test.rem(578): Trig = Wednesday, 1 January, 1992 +../tests/test.rem(584): Warning: Useless use of UNTIL with fully-specified date and no *rep +../tests/test.rem(584): Trig = Wednesday, 1 January, 1992 dump $aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Variable Value @@ -3206,10 +3328,10 @@ Variable Value $aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: Name too long OMIT 2010-09-03 THROUGH 2010-09-15 OMIT December 25 MSG X -../tests/test.rem(582): Trig = Wednesday, 25 December, 1991 +../tests/test.rem(588): Trig = Wednesday, 25 December, 1991 # Next should give a parse error OMIT 26 Dec 2010 THROUGH 27 Dec 2010 MSG This is not legal -../tests/test.rem(584): Trig = Sunday, 26 December, 2010 +../tests/test.rem(590): Trig = Sunday, 26 December, 2010 OMIT DUMP Global Full OMITs (16 of maximum allowed 1000): 1991-03-11 @@ -3243,287 +3365,287 @@ a => 5761 hebdate(14, "Adar", 1991-02-16, 5761) => 1991-02-28 trigger(1991-02-28) => "28 February 1991" Leaving UserFN _i(14, "Adar", 1991-02-16, 5761) => "28 February 1991" -../tests/test.rem(587): Trig = Thursday, 28 February, 1991 +../tests/test.rem(593): Trig = Thursday, 28 February, 1991 # Regression test for bug found by Larry Hynes REM SATISFY [day(trigdate()-25) == 14] MSG Foo -../tests/test.rem(590): Trig = Saturday, 16 February, 1991 +../tests/test.rem(596): Trig = Saturday, 16 February, 1991 trigdate() => 1991-02-16 1991-02-16 - 25 => 1991-01-22 day(1991-01-22) => 22 22 == 14 => 0 -../tests/test.rem(590): Trig = Sunday, 17 February, 1991 +../tests/test.rem(596): Trig = Sunday, 17 February, 1991 trigdate() => 1991-02-17 1991-02-17 - 25 => 1991-01-23 day(1991-01-23) => 23 23 == 14 => 0 -../tests/test.rem(590): Trig = Monday, 18 February, 1991 +../tests/test.rem(596): Trig = Monday, 18 February, 1991 trigdate() => 1991-02-18 1991-02-18 - 25 => 1991-01-24 day(1991-01-24) => 24 24 == 14 => 0 -../tests/test.rem(590): Trig = Tuesday, 19 February, 1991 +../tests/test.rem(596): Trig = Tuesday, 19 February, 1991 trigdate() => 1991-02-19 1991-02-19 - 25 => 1991-01-25 day(1991-01-25) => 25 25 == 14 => 0 -../tests/test.rem(590): Trig = Wednesday, 20 February, 1991 +../tests/test.rem(596): Trig = Wednesday, 20 February, 1991 trigdate() => 1991-02-20 1991-02-20 - 25 => 1991-01-26 day(1991-01-26) => 26 26 == 14 => 0 -../tests/test.rem(590): Trig = Thursday, 21 February, 1991 +../tests/test.rem(596): Trig = Thursday, 21 February, 1991 trigdate() => 1991-02-21 1991-02-21 - 25 => 1991-01-27 day(1991-01-27) => 27 27 == 14 => 0 -../tests/test.rem(590): Trig = Friday, 22 February, 1991 +../tests/test.rem(596): Trig = Friday, 22 February, 1991 trigdate() => 1991-02-22 1991-02-22 - 25 => 1991-01-28 day(1991-01-28) => 28 28 == 14 => 0 -../tests/test.rem(590): Trig = Saturday, 23 February, 1991 +../tests/test.rem(596): Trig = Saturday, 23 February, 1991 trigdate() => 1991-02-23 1991-02-23 - 25 => 1991-01-29 day(1991-01-29) => 29 29 == 14 => 0 -../tests/test.rem(590): Trig = Sunday, 24 February, 1991 +../tests/test.rem(596): Trig = Sunday, 24 February, 1991 trigdate() => 1991-02-24 1991-02-24 - 25 => 1991-01-30 day(1991-01-30) => 30 30 == 14 => 0 -../tests/test.rem(590): Trig = Monday, 25 February, 1991 +../tests/test.rem(596): Trig = Monday, 25 February, 1991 trigdate() => 1991-02-25 1991-02-25 - 25 => 1991-01-31 day(1991-01-31) => 31 31 == 14 => 0 -../tests/test.rem(590): Trig = Tuesday, 26 February, 1991 +../tests/test.rem(596): Trig = Tuesday, 26 February, 1991 trigdate() => 1991-02-26 1991-02-26 - 25 => 1991-02-01 day(1991-02-01) => 1 1 == 14 => 0 -../tests/test.rem(590): Trig = Wednesday, 27 February, 1991 +../tests/test.rem(596): Trig = Wednesday, 27 February, 1991 trigdate() => 1991-02-27 1991-02-27 - 25 => 1991-02-02 day(1991-02-02) => 2 2 == 14 => 0 -../tests/test.rem(590): Trig = Thursday, 28 February, 1991 +../tests/test.rem(596): Trig = Thursday, 28 February, 1991 trigdate() => 1991-02-28 1991-02-28 - 25 => 1991-02-03 day(1991-02-03) => 3 3 == 14 => 0 -../tests/test.rem(590): Trig = Friday, 1 March, 1991 +../tests/test.rem(596): Trig = Friday, 1 March, 1991 trigdate() => 1991-03-01 1991-03-01 - 25 => 1991-02-04 day(1991-02-04) => 4 4 == 14 => 0 -../tests/test.rem(590): Trig = Saturday, 2 March, 1991 +../tests/test.rem(596): Trig = Saturday, 2 March, 1991 trigdate() => 1991-03-02 1991-03-02 - 25 => 1991-02-05 day(1991-02-05) => 5 5 == 14 => 0 -../tests/test.rem(590): Trig = Sunday, 3 March, 1991 +../tests/test.rem(596): Trig = Sunday, 3 March, 1991 trigdate() => 1991-03-03 1991-03-03 - 25 => 1991-02-06 day(1991-02-06) => 6 6 == 14 => 0 -../tests/test.rem(590): Trig = Monday, 4 March, 1991 +../tests/test.rem(596): Trig = Monday, 4 March, 1991 trigdate() => 1991-03-04 1991-03-04 - 25 => 1991-02-07 day(1991-02-07) => 7 7 == 14 => 0 -../tests/test.rem(590): Trig = Tuesday, 5 March, 1991 +../tests/test.rem(596): Trig = Tuesday, 5 March, 1991 trigdate() => 1991-03-05 1991-03-05 - 25 => 1991-02-08 day(1991-02-08) => 8 8 == 14 => 0 -../tests/test.rem(590): Trig = Wednesday, 6 March, 1991 +../tests/test.rem(596): Trig = Wednesday, 6 March, 1991 trigdate() => 1991-03-06 1991-03-06 - 25 => 1991-02-09 day(1991-02-09) => 9 9 == 14 => 0 -../tests/test.rem(590): Trig = Thursday, 7 March, 1991 +../tests/test.rem(596): Trig = Thursday, 7 March, 1991 trigdate() => 1991-03-07 1991-03-07 - 25 => 1991-02-10 day(1991-02-10) => 10 10 == 14 => 0 -../tests/test.rem(590): Trig = Friday, 8 March, 1991 +../tests/test.rem(596): Trig = Friday, 8 March, 1991 trigdate() => 1991-03-08 1991-03-08 - 25 => 1991-02-11 day(1991-02-11) => 11 11 == 14 => 0 -../tests/test.rem(590): Trig = Saturday, 9 March, 1991 +../tests/test.rem(596): Trig = Saturday, 9 March, 1991 trigdate() => 1991-03-09 1991-03-09 - 25 => 1991-02-12 day(1991-02-12) => 12 12 == 14 => 0 -../tests/test.rem(590): Trig = Sunday, 10 March, 1991 +../tests/test.rem(596): Trig = Sunday, 10 March, 1991 trigdate() => 1991-03-10 1991-03-10 - 25 => 1991-02-13 day(1991-02-13) => 13 13 == 14 => 0 -../tests/test.rem(590): Trig = Monday, 11 March, 1991 +../tests/test.rem(596): Trig = Monday, 11 March, 1991 trigdate() => 1991-03-11 1991-03-11 - 25 => 1991-02-14 day(1991-02-14) => 14 14 == 14 => 1 -../tests/test.rem(590): Trig(satisfied) = Monday, 11 March, 1991 +../tests/test.rem(596): Trig(satisfied) = Monday, 11 March, 1991 # Check combo of SATISFY and long-duration events REM 14 SATISFY [$Tw == 4] MSG Thursday, the 14th -../tests/test.rem(593): Trig = Thursday, 14 March, 1991 +../tests/test.rem(599): Trig = Thursday, 14 March, 1991 $Tw => 4 4 == 4 => 1 -../tests/test.rem(593): Trig(satisfied) = Thursday, 14 March, 1991 +../tests/test.rem(599): Trig(satisfied) = Thursday, 14 March, 1991 REM 14 AT 16:00 DURATION 8:00 SATISFY [$Tw == 4] MSG Thursday, the 14th -../tests/test.rem(594): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 08:00 +../tests/test.rem(600): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 08:00 $Tw => 4 4 == 4 => 1 -../tests/test.rem(594): Trig(satisfied) = Thursday, 14 March, 1991 AT 16:00 DURATION 08:00 +../tests/test.rem(600): Trig(satisfied) = Thursday, 14 March, 1991 AT 16:00 DURATION 08:00 REM 14 AT 16:00 DURATION 8:01 SATISFY [$Tw == 4] MSG Thursday, the 14th -../tests/test.rem(595): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 08:01 -../tests/test.rem(595): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 08:01 +../tests/test.rem(601): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 08:01 +../tests/test.rem(601): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 08:01 $Tw => 4 4 == 4 => 1 -../tests/test.rem(595): Trig(satisfied) = Thursday, 14 March, 1991 AT 16:00 DURATION 08:01 +../tests/test.rem(601): Trig(satisfied) = Thursday, 14 March, 1991 AT 16:00 DURATION 08:01 REM 14 AT 16:00 DURATION 32:00 SATISFY [$Tw == 4] MSG Thursday, the 14th -../tests/test.rem(596): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 32:00 -../tests/test.rem(596): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 32:00 +../tests/test.rem(602): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 32:00 +../tests/test.rem(602): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 32:00 $Tw => 4 4 == 4 => 1 -../tests/test.rem(596): Trig(satisfied) = Thursday, 14 March, 1991 AT 16:00 DURATION 32:00 +../tests/test.rem(602): Trig(satisfied) = Thursday, 14 March, 1991 AT 16:00 DURATION 32:00 REM 14 AT 16:00 DURATION 32:01 SATISFY [$Tw == 4] MSG Thursday, the 14th -../tests/test.rem(597): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 32:01 -../tests/test.rem(597): Trig = Thursday, 14 February, 1991 AT 16:00 DURATION 32:01 +../tests/test.rem(603): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 32:01 +../tests/test.rem(603): Trig = Thursday, 14 February, 1991 AT 16:00 DURATION 32:01 $Tw => 4 4 == 4 => 1 -../tests/test.rem(597): Trig(adj) = Saturday, 16 February, 1991 AT 00:00 DURATION 00:01 -../tests/test.rem(597): Trig(satisfied) = Saturday, 16 February, 1991 AT 00:00 DURATION 00:01 +../tests/test.rem(603): Trig(adj) = Saturday, 16 February, 1991 AT 00:00 DURATION 00:01 +../tests/test.rem(603): Trig(satisfied) = Saturday, 16 February, 1991 AT 00:00 DURATION 00:01 Thursday, the 14th REM 14 AT 16:00 DURATION 40:00 SATISFY [$Tw == 4] MSG Thursday, the 14th -../tests/test.rem(598): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 40:00 -../tests/test.rem(598): Trig = Thursday, 14 February, 1991 AT 16:00 DURATION 40:00 +../tests/test.rem(604): Trig = Thursday, 14 March, 1991 AT 16:00 DURATION 40:00 +../tests/test.rem(604): Trig = Thursday, 14 February, 1991 AT 16:00 DURATION 40:00 $Tw => 4 4 == 4 => 1 -../tests/test.rem(598): Trig(adj) = Saturday, 16 February, 1991 AT 00:00 DURATION 08:00 -../tests/test.rem(598): Trig(satisfied) = Saturday, 16 February, 1991 AT 00:00 DURATION 08:00 +../tests/test.rem(604): Trig(adj) = Saturday, 16 February, 1991 AT 00:00 DURATION 08:00 +../tests/test.rem(604): Trig(satisfied) = Saturday, 16 February, 1991 AT 00:00 DURATION 08:00 Thursday, the 14th # This is now an error REM DURATION 15:00 MSG Should fail... need AT if you have DURATION. -../tests/test.rem(601): Cannot specify DURATION without specifying AT +../tests/test.rem(607): Cannot specify DURATION without specifying AT # Parsing of AM/PM times REM AT 0:00am MSG foo 0a -../tests/test.rem(604): Ill-formed time: `0:00am' +../tests/test.rem(610): Ill-formed time: `0:00am' REM AT 1:00AM MSG foo 1a -../tests/test.rem(605): Trig = Saturday, 16 February, 1991 AT 01:00 +../tests/test.rem(611): Trig = Saturday, 16 February, 1991 AT 01:00 foo 1a REM AT 2:00am MSG foo 2a -../tests/test.rem(606): Trig = Saturday, 16 February, 1991 AT 02:00 +../tests/test.rem(612): Trig = Saturday, 16 February, 1991 AT 02:00 foo 2a REM AT 3:00AM MSG foo 3a -../tests/test.rem(607): Trig = Saturday, 16 February, 1991 AT 03:00 +../tests/test.rem(613): Trig = Saturday, 16 February, 1991 AT 03:00 foo 3a REM AT 4:00am MSG foo 4a -../tests/test.rem(608): Trig = Saturday, 16 February, 1991 AT 04:00 +../tests/test.rem(614): Trig = Saturday, 16 February, 1991 AT 04:00 foo 4a REM AT 5:00AM MSG foo 5a -../tests/test.rem(609): Trig = Saturday, 16 February, 1991 AT 05:00 +../tests/test.rem(615): Trig = Saturday, 16 February, 1991 AT 05:00 foo 5a REM AT 6:00am MSG foo 6a -../tests/test.rem(610): Trig = Saturday, 16 February, 1991 AT 06:00 +../tests/test.rem(616): Trig = Saturday, 16 February, 1991 AT 06:00 foo 6a REM AT 7:00AM MSG foo 7a -../tests/test.rem(611): Trig = Saturday, 16 February, 1991 AT 07:00 +../tests/test.rem(617): Trig = Saturday, 16 February, 1991 AT 07:00 foo 7a REM AT 8:00am MSG foo 8a -../tests/test.rem(612): Trig = Saturday, 16 February, 1991 AT 08:00 +../tests/test.rem(618): Trig = Saturday, 16 February, 1991 AT 08:00 foo 8a REM AT 9:00AM MSG foo 9a -../tests/test.rem(613): Trig = Saturday, 16 February, 1991 AT 09:00 +../tests/test.rem(619): Trig = Saturday, 16 February, 1991 AT 09:00 foo 9a REM AT 10:00am MSG foo 10a -../tests/test.rem(614): Trig = Saturday, 16 February, 1991 AT 10:00 +../tests/test.rem(620): Trig = Saturday, 16 February, 1991 AT 10:00 foo 10a REM AT 11:00AM MSG foo 11a -../tests/test.rem(615): Trig = Saturday, 16 February, 1991 AT 11:00 +../tests/test.rem(621): Trig = Saturday, 16 February, 1991 AT 11:00 foo 11a REM AT 12:00am MSG foo 12a -../tests/test.rem(616): Trig = Saturday, 16 February, 1991 AT 00:00 +../tests/test.rem(622): Trig = Saturday, 16 February, 1991 AT 00:00 foo 12a REM AT 13:00AM MSG foo 13a -../tests/test.rem(617): Ill-formed time: `13:00AM' +../tests/test.rem(623): Ill-formed time: `13:00AM' REM AT 0:00pm MSG foo 0p -../tests/test.rem(618): Ill-formed time: `0:00pm' +../tests/test.rem(624): Ill-formed time: `0:00pm' REM AT 1:00PM MSG foo 1p -../tests/test.rem(619): Trig = Saturday, 16 February, 1991 AT 13:00 +../tests/test.rem(625): Trig = Saturday, 16 February, 1991 AT 13:00 foo 1p REM AT 2:00pm MSG foo 2p -../tests/test.rem(620): Trig = Saturday, 16 February, 1991 AT 14:00 +../tests/test.rem(626): Trig = Saturday, 16 February, 1991 AT 14:00 foo 2p REM AT 3:00PM MSG foo 3p -../tests/test.rem(621): Trig = Saturday, 16 February, 1991 AT 15:00 +../tests/test.rem(627): Trig = Saturday, 16 February, 1991 AT 15:00 foo 3p REM AT 4:00pm MSG foo 4p -../tests/test.rem(622): Trig = Saturday, 16 February, 1991 AT 16:00 +../tests/test.rem(628): Trig = Saturday, 16 February, 1991 AT 16:00 foo 4p REM AT 5:00PM MSG foo 5p -../tests/test.rem(623): Trig = Saturday, 16 February, 1991 AT 17:00 +../tests/test.rem(629): Trig = Saturday, 16 February, 1991 AT 17:00 foo 5p REM AT 6:00pm MSG foo 6p -../tests/test.rem(624): Trig = Saturday, 16 February, 1991 AT 18:00 +../tests/test.rem(630): Trig = Saturday, 16 February, 1991 AT 18:00 foo 6p REM AT 7:00PM MSG foo 7p -../tests/test.rem(625): Trig = Saturday, 16 February, 1991 AT 19:00 +../tests/test.rem(631): Trig = Saturday, 16 February, 1991 AT 19:00 foo 7p REM AT 8:00pm MSG foo 8p -../tests/test.rem(626): Trig = Saturday, 16 February, 1991 AT 20:00 +../tests/test.rem(632): Trig = Saturday, 16 February, 1991 AT 20:00 foo 8p REM AT 9:00PM MSG foo 9p -../tests/test.rem(627): Trig = Saturday, 16 February, 1991 AT 21:00 +../tests/test.rem(633): Trig = Saturday, 16 February, 1991 AT 21:00 foo 9p REM AT 10:00pm MSG foo 10p -../tests/test.rem(628): Trig = Saturday, 16 February, 1991 AT 22:00 +../tests/test.rem(634): Trig = Saturday, 16 February, 1991 AT 22:00 foo 10p REM AT 11:00PM MSG foo 11p -../tests/test.rem(629): Trig = Saturday, 16 February, 1991 AT 23:00 +../tests/test.rem(635): Trig = Saturday, 16 February, 1991 AT 23:00 foo 11p REM AT 12:00pm MSG foo 12p -../tests/test.rem(630): Trig = Saturday, 16 February, 1991 AT 12:00 +../tests/test.rem(636): Trig = Saturday, 16 February, 1991 AT 12:00 foo 12p REM AT 13:00PM MSG foo 13p -../tests/test.rem(631): Ill-formed time: `13:00PM' +../tests/test.rem(637): Ill-formed time: `13:00PM' DEBUG +x SET x 0:00am + 0 -../tests/test.rem(634): Ill-formed time: `0:00am' +../tests/test.rem(640): Ill-formed time: `0:00am' 0:00am + 0 ^-- here SET x 1:00AM + 0 @@ -3551,12 +3673,12 @@ SET x 11:00AM + 0 SET x 12:00am + 0 00:00 + 0 => 00:00 SET x 13:00AM + 0 -../tests/test.rem(647): Ill-formed time: `13:00AM' +../tests/test.rem(653): Ill-formed time: `13:00AM' 13:00AM + 0 ^-- here SET x 0:00pm + 0 -../tests/test.rem(649): Ill-formed time: `0:00pm' +../tests/test.rem(655): Ill-formed time: `0:00pm' 0:00pm + 0 ^-- here SET x 1:00PM + 0 @@ -3584,12 +3706,12 @@ SET x 11:00PM + 0 SET x 12:00pm + 0 12:00 + 0 => 12:00 SET x 13:00PM + 0 -../tests/test.rem(662): Ill-formed time: `13:00PM' +../tests/test.rem(668): Ill-formed time: `13:00PM' 13:00PM + 0 ^-- here SET x '2015-02-03@0:00am' + 0 -../tests/test.rem(664): Ill-formed time: '2015-02-03@0:00am' +../tests/test.rem(670): Ill-formed time: '2015-02-03@0:00am' '2015-02-03@0:00am' + 0 ^-- here SET x '2015-02-03@1:00AM' + 0 @@ -3617,12 +3739,12 @@ SET x '2015-02-03@11:00AM' + 0 SET x '2015-02-03@12:00am' + 0 2015-02-03@00:00 + 0 => 2015-02-03@00:00 SET x '2015-02-03@13:00AM' + 0 -../tests/test.rem(677): Ill-formed time: '2015-02-03@13:00AM' +../tests/test.rem(683): Ill-formed time: '2015-02-03@13:00AM' '2015-02-03@13:00AM' + 0 ^-- here SET x '2015-02-03@0:00pm' + 0 -../tests/test.rem(679): Ill-formed time: '2015-02-03@0:00pm' +../tests/test.rem(685): Ill-formed time: '2015-02-03@0:00pm' '2015-02-03@0:00pm' + 0 ^-- here SET x '2015-02-03@1:00PM' + 0 @@ -3650,7 +3772,7 @@ SET x '2015-02-03@11:00PM' + 0 SET x '2015-02-03@12:00pm' + 0 2015-02-03@12:00 + 0 => 2015-02-03@12:00 SET x '2015-02-03@13:00PM' + 0 -../tests/test.rem(692): Ill-formed time: '2015-02-03@13:00PM' +../tests/test.rem(698): Ill-formed time: '2015-02-03@13:00PM' '2015-02-03@13:00PM' + 0 ^-- here @@ -3894,83 +4016,83 @@ coerce("DATETIME", "2020-05-05@1:45pm") => 2020-05-05@13:45 set a $IntMin - 1 $IntMin => -2147483648 -2147483648 - 1 => Number too high -../tests/test.rem(781): `-': Number too high +../tests/test.rem(787): `-': Number too high set a $IntMin - $IntMax $IntMin => -2147483648 $IntMax => 2147483647 -2147483648 - 2147483647 => Number too high -../tests/test.rem(782): `-': Number too high +../tests/test.rem(788): `-': Number too high set a $IntMax - $IntMin $IntMax => 2147483647 $IntMin => -2147483648 2147483647 - -2147483648 => Number too high -../tests/test.rem(783): `-': Number too high +../tests/test.rem(789): `-': Number too high set a $IntMax - (-1) $IntMax => 2147483647 2147483647 - -1 => Number too high -../tests/test.rem(784): `-': Number too high +../tests/test.rem(790): `-': Number too high set a $IntMax + 1 $IntMax => 2147483647 2147483647 + 1 => Number too high -../tests/test.rem(785): `+': Number too high +../tests/test.rem(791): `+': Number too high set a $IntMax + $IntMax $IntMax => 2147483647 $IntMax => 2147483647 2147483647 + 2147483647 => Number too high -../tests/test.rem(786): `+': Number too high +../tests/test.rem(792): `+': Number too high set a $IntMin + (-1) $IntMin => -2147483648 -2147483648 + -1 => Number too high -../tests/test.rem(787): `+': Number too high +../tests/test.rem(793): `+': Number too high set a $IntMin + $IntMin $IntMin => -2147483648 $IntMin => -2147483648 -2147483648 + -2147483648 => Number too high -../tests/test.rem(788): `+': Number too high +../tests/test.rem(794): `+': Number too high set a $IntMax * 2 $IntMax => 2147483647 2147483647 * 2 => Number too high -../tests/test.rem(789): `*': Number too high +../tests/test.rem(795): `*': Number too high set a $IntMax * $IntMax $IntMax => 2147483647 $IntMax => 2147483647 2147483647 * 2147483647 => Number too high -../tests/test.rem(790): `*': Number too high +../tests/test.rem(796): `*': Number too high set a $IntMax * $IntMin $IntMax => 2147483647 $IntMin => -2147483648 2147483647 * -2147483648 => Number too high -../tests/test.rem(791): `*': Number too high +../tests/test.rem(797): `*': Number too high set a $IntMin * 2 $IntMin => -2147483648 -2147483648 * 2 => Number too high -../tests/test.rem(792): `*': Number too high +../tests/test.rem(798): `*': Number too high set a $IntMin * $IntMin $IntMin => -2147483648 $IntMin => -2147483648 -2147483648 * -2147483648 => Number too high -../tests/test.rem(793): `*': Number too high +../tests/test.rem(799): `*': Number too high set a $IntMin * $IntMax $IntMin => -2147483648 $IntMax => 2147483647 -2147483648 * 2147483647 => Number too high -../tests/test.rem(794): `*': Number too high +../tests/test.rem(800): `*': Number too high set a $IntMin / (-1) $IntMin => -2147483648 -2147483648 / -1 => Number too high -../tests/test.rem(795): `/': Number too high +../tests/test.rem(801): `/': Number too high set a $IntMin * (-1) $IntMin => -2147483648 -2147483648 * -1 => Number too high -../tests/test.rem(796): `*': Number too high +../tests/test.rem(802): `*': Number too high set a (-1) * $IntMin $IntMin => -2147483648 -1 * -2147483648 => Number too high -../tests/test.rem(797): `*': Number too high +../tests/test.rem(803): `*': Number too high set a abs($IntMin) $IntMin => -2147483648 abs(-2147483648) => Number too high -../tests/test.rem(798): abs(): Number too high +../tests/test.rem(804): abs(): Number too high # The "isany" function set a isany(1) @@ -3997,42 +4119,42 @@ set a shellescape(" !\"#$%%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ shellescape(" !\"#$%%&'()*+,-./0123456789:;<=>?@ABCDEF"...) => "\\ \\!\\\"\\#\\$\\%\\%\\&\\'\\(\\)\\*+,-./0123456789\\"... msg [a] -../tests/test.rem(814): Trig = Saturday, 16 February, 1991 +../tests/test.rem(820): Trig = Saturday, 16 February, 1991 a => "\\ \\!\\\"\\#\\$\\%\\%\\&\\'\\(\\)\\*+,-./0123456789\\"... \ \!\"\#\$\\\&\'\(\)\*+,-./0123456789\:\;\<=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~ # Deprecated functions set x psshade(50) -psshade(50) => ../tests/test.rem(817): psshade() is deprecated; use SPECIAL SHADE instead. +psshade(50) => ../tests/test.rem(823): psshade() is deprecated; use SPECIAL SHADE instead. "/_A LineWidth 2 div def _A _A moveto Box"... set x psmoon(0) -psmoon(0) => ../tests/test.rem(818): psmoon() is deprecated; use SPECIAL MOON instead. +psmoon(0) => ../tests/test.rem(824): psmoon() is deprecated; use SPECIAL MOON instead. "gsave 0 setgray newpath Border DaySize 2"... # Recursive expression evaluation FSET _f(x) 0 SET tmp evaltrig("Wed SKIP OMITFUNC _f",date(1992,1,8)) date(1992, 1, 8) => 1992-01-08 -evaltrig("Wed SKIP OMITFUNC _f", 1992-01-08) => ../tests/test.rem(822): OMITFUNC function `_f' defined at ../tests/test.rem(821) does not use its argument +evaltrig("Wed SKIP OMITFUNC _f", 1992-01-08) => ../tests/test.rem(828): OMITFUNC function `_f' defined at ../tests/test.rem(827) does not use its argument Entering UserFN _f(1992-01-08) Leaving UserFN _f(1992-01-08) => 0 -../tests/test.rem(822): Trig = Wednesday, 8 January, 1992 +../tests/test.rem(828): Trig = Wednesday, 8 January, 1992 1992-01-08 REM MSG [tmp] -../tests/test.rem(823): Trig = Saturday, 16 February, 1991 +../tests/test.rem(829): Trig = Saturday, 16 February, 1991 tmp => 1992-01-08 1992-01-08 # Trig IF trig("sun +1") || trig("thu +1") -trig("sun +1") => ../tests/test.rem(826): Trig = Sunday, 17 February, 1991 +trig("sun +1") => ../tests/test.rem(832): Trig = Sunday, 17 February, 1991 1991-02-17 1991-02-17 || ? => 1991-02-17 REM [trig()] +1 MSG Foo %b trig() => 1991-02-17 -../tests/test.rem(827): Trig = Sunday, 17 February, 1991 +../tests/test.rem(833): Trig = Sunday, 17 February, 1991 Foo tomorrow ENDIF @@ -4040,15 +4162,15 @@ ENDIF # Trig with a bad warnfunc FSET w(x) x/0 IF trig("sun warn w") || trig("thu warn w") -trig("sun warn w") => ../tests/test.rem(832): Trig = Sunday, 17 February, 1991 +trig("sun warn w") => ../tests/test.rem(838): Trig = Sunday, 17 February, 1991 Entering UserFN w(1) x => 1 1 / 0 => Division by zero -../tests/test.rem(832): `/': Division by zero - ../tests/test.rem(831): [#0] In function `w' +../tests/test.rem(838): `/': Division by zero + ../tests/test.rem(837): [#0] In function `w' Leaving UserFN w(1) => Division by zero 1990-01-01 -trig("thu warn w") => ../tests/test.rem(832): Trig = Thursday, 21 February, 1991 +trig("thu warn w") => ../tests/test.rem(838): Trig = Thursday, 21 February, 1991 Entering UserFN w(1) x => 1 1 / 0 => Division by zero @@ -4060,11 +4182,11 @@ ENDIF # Trig with a good warnfunc FSET w(x) choose(x, 5, 3, 1, 0) -../tests/test.rem(837): Function `w' redefined: previously defined at ../tests/test.rem(831) +../tests/test.rem(843): Function `w' redefined: previously defined at ../tests/test.rem(837) # Short-circuit operators IF trig("sun warn w") || trig("thu warn w") -trig("sun warn w") => ../tests/test.rem(840): Trig = Sunday, 17 February, 1991 +trig("sun warn w") => ../tests/test.rem(846): Trig = Sunday, 17 February, 1991 Entering UserFN w(1) x => 1 choose(1, 5, ?, ?, ?) => 5 @@ -4081,13 +4203,13 @@ Leaving UserFN w(3) => 1 1991-02-17 || ? => 1991-02-17 REM [trig()] +5 MSG Foo %b trig() => 1991-02-17 -../tests/test.rem(841): Trig = Sunday, 17 February, 1991 +../tests/test.rem(847): Trig = Sunday, 17 February, 1991 Foo tomorrow ENDIF IF trig("thu warn w") || trig("sun warn w") -trig("thu warn w") => ../tests/test.rem(844): Trig = Thursday, 21 February, 1991 +trig("thu warn w") => ../tests/test.rem(850): Trig = Thursday, 21 February, 1991 Entering UserFN w(1) x => 1 choose(1, 5, ?, ?, ?) => 5 @@ -4096,133 +4218,133 @@ Leaving UserFN w(1) => 5 1991-02-21 || ? => 1991-02-21 REM [trig()] +5 MSG Foo %b trig() => 1991-02-21 -../tests/test.rem(845): Trig = Thursday, 21 February, 1991 +../tests/test.rem(851): Trig = Thursday, 21 February, 1991 Foo in 5 days' time ENDIF REM [trig("Mon", "Tue", "Wed", "Sat")] MSG foo -trig("Mon", "Tue", "Wed", "Sat") => ../tests/test.rem(848): Trig = Monday, 18 February, 1991 -../tests/test.rem(848): Trig = Tuesday, 19 February, 1991 -../tests/test.rem(848): Trig = Wednesday, 20 February, 1991 -../tests/test.rem(848): Trig = Saturday, 16 February, 1991 +trig("Mon", "Tue", "Wed", "Sat") => ../tests/test.rem(854): Trig = Monday, 18 February, 1991 +../tests/test.rem(854): Trig = Tuesday, 19 February, 1991 +../tests/test.rem(854): Trig = Wednesday, 20 February, 1991 +../tests/test.rem(854): Trig = Saturday, 16 February, 1991 1991-02-16 -../tests/test.rem(848): Trig = Saturday, 16 February, 1991 +../tests/test.rem(854): Trig = Saturday, 16 February, 1991 foo REM [trig("Mon", "Tue", "Wed")] MSG bar -trig("Mon", "Tue", "Wed") => ../tests/test.rem(849): Trig = Monday, 18 February, 1991 -../tests/test.rem(849): Trig = Tuesday, 19 February, 1991 -../tests/test.rem(849): Trig = Wednesday, 20 February, 1991 +trig("Mon", "Tue", "Wed") => ../tests/test.rem(855): Trig = Monday, 18 February, 1991 +../tests/test.rem(855): Trig = Tuesday, 19 February, 1991 +../tests/test.rem(855): Trig = Wednesday, 20 February, 1991 1990-01-01 -../tests/test.rem(849): Expired: 1990-01-01 +../tests/test.rem(855): Expired: 1990-01-01 # Multitrig REM [multitrig("10", "17")] MSG multitrig-1 -multitrig("10", "17") => ../tests/test.rem(852): Trig = Sunday, 10 March, 1991 -../tests/test.rem(852): Trig = Sunday, 17 February, 1991 +multitrig("10", "17") => ../tests/test.rem(858): Trig = Sunday, 10 March, 1991 +../tests/test.rem(858): Trig = Sunday, 17 February, 1991 1991-02-17 -../tests/test.rem(852): Trig = Sunday, 17 February, 1991 +../tests/test.rem(858): Trig = Sunday, 17 February, 1991 REM [multitrig("Feb 15", "Mar 20")] MSG multitrig-2 -multitrig("Feb 15", "Mar 20") => ../tests/test.rem(853): Trig = Saturday, 15 February, 1992 -../tests/test.rem(853): Trig = Wednesday, 20 March, 1991 +multitrig("Feb 15", "Mar 20") => ../tests/test.rem(859): Trig = Saturday, 15 February, 1992 +../tests/test.rem(859): Trig = Wednesday, 20 March, 1991 1991-03-20 -../tests/test.rem(853): Trig = Wednesday, 20 March, 1991 +../tests/test.rem(859): Trig = Wednesday, 20 March, 1991 REM [multitrig("Oct 7 1992", "1991")] MSG multitrig-3 -multitrig("Oct 7 1992", "1991") => ../tests/test.rem(854): Trig = Wednesday, 7 October, 1992 -../tests/test.rem(854): Trig = Saturday, 16 February, 1991 +multitrig("Oct 7 1992", "1991") => ../tests/test.rem(860): Trig = Wednesday, 7 October, 1992 +../tests/test.rem(860): Trig = Saturday, 16 February, 1991 1991-02-16 -../tests/test.rem(854): Trig = Saturday, 16 February, 1991 +../tests/test.rem(860): Trig = Saturday, 16 February, 1991 multitrig-3 REM [multitrig("16 Feb AFTER OMIT Sat Sun", "29 March")] MSG multitrig-4 -multitrig("16 Feb AFTER OMIT Sat Sun", "29 March") => ../tests/test.rem(855): Trig = Monday, 18 February, 1991 -../tests/test.rem(855): Trig = Friday, 29 March, 1991 +multitrig("16 Feb AFTER OMIT Sat Sun", "29 March") => ../tests/test.rem(861): Trig = Monday, 18 February, 1991 +../tests/test.rem(861): Trig = Friday, 29 March, 1991 1991-02-18 -../tests/test.rem(855): Trig = Monday, 18 February, 1991 +../tests/test.rem(861): Trig = Monday, 18 February, 1991 REM [multitrig("2", "3", "5", "7")] MSG multitrig-5 -multitrig("2", "3", "5", "7") => ../tests/test.rem(856): Trig = Saturday, 2 March, 1991 -../tests/test.rem(856): Trig = Sunday, 3 March, 1991 -../tests/test.rem(856): Trig = Tuesday, 5 March, 1991 -../tests/test.rem(856): Trig = Thursday, 7 March, 1991 +multitrig("2", "3", "5", "7") => ../tests/test.rem(862): Trig = Saturday, 2 March, 1991 +../tests/test.rem(862): Trig = Sunday, 3 March, 1991 +../tests/test.rem(862): Trig = Tuesday, 5 March, 1991 +../tests/test.rem(862): Trig = Thursday, 7 March, 1991 1991-03-02 -../tests/test.rem(856): Trig = Saturday, 2 March, 1991 +../tests/test.rem(862): Trig = Saturday, 2 March, 1991 REM [multitrig("15 SCANFROM -7", "14 SCANFROM -7")] MSG multitrig-6 -multitrig("15 SCANFROM -7", "14 SCANFROM -7") => ../tests/test.rem(857): Trig = Friday, 15 February, 1991 -../tests/test.rem(857): Trig = Thursday, 14 February, 1991 +multitrig("15 SCANFROM -7", "14 SCANFROM -7") => ../tests/test.rem(863): Trig = Friday, 15 February, 1991 +../tests/test.rem(863): Trig = Thursday, 14 February, 1991 1991-02-14 -../tests/test.rem(857): Expired: 1991-02-14 +../tests/test.rem(863): Expired: 1991-02-14 REM [multitrig("15 SCANFROM -7", "14 SCANFROM -7")] SCANFROM -7 MSG multitrig-7 -multitrig("15 SCANFROM -7", "14 SCANFROM -7") => ../tests/test.rem(858): Trig = Friday, 15 February, 1991 -../tests/test.rem(858): Trig = Thursday, 14 February, 1991 +multitrig("15 SCANFROM -7", "14 SCANFROM -7") => ../tests/test.rem(864): Trig = Friday, 15 February, 1991 +../tests/test.rem(864): Trig = Thursday, 14 February, 1991 1991-02-14 -../tests/test.rem(858): Trig = Thursday, 14 February, 1991 +../tests/test.rem(864): Trig = Thursday, 14 February, 1991 # The new syntactic sugar REM First Monday January MSG x -../tests/test.rem(861): Trig = Monday, 6 January, 1992 +../tests/test.rem(867): Trig = Monday, 6 January, 1992 REM Second Tuesday in April MSG x -../tests/test.rem(862): Trig = Tuesday, 9 April, 1991 +../tests/test.rem(868): Trig = Tuesday, 9 April, 1991 REM Third Wednesday in October MSG x -../tests/test.rem(863): Trig = Wednesday, 16 October, 1991 +../tests/test.rem(869): Trig = Wednesday, 16 October, 1991 REM Fourth Friday in July MSG x -../tests/test.rem(864): Trig = Friday, 26 July, 1991 +../tests/test.rem(870): Trig = Friday, 26 July, 1991 REM Last Tuesday in August MSG x -../tests/test.rem(865): Trig = Tuesday, 27 August, 1991 +../tests/test.rem(871): Trig = Tuesday, 27 August, 1991 REM Last Sunday in December MSG x -../tests/test.rem(866): Trig = Sunday, 29 December, 1991 +../tests/test.rem(872): Trig = Sunday, 29 December, 1991 REM First Monday January 2000 MSG x -../tests/test.rem(868): Trig = Monday, 3 January, 2000 +../tests/test.rem(874): Trig = Monday, 3 January, 2000 REM Second Tuesday in April 2000 MSG x -../tests/test.rem(869): Trig = Tuesday, 11 April, 2000 +../tests/test.rem(875): Trig = Tuesday, 11 April, 2000 REM Third Wednesday in October 2000 MSG x -../tests/test.rem(870): Trig = Wednesday, 18 October, 2000 +../tests/test.rem(876): Trig = Wednesday, 18 October, 2000 REM Fourth Friday in July 2000 MSG x -../tests/test.rem(871): Trig = Friday, 28 July, 2000 +../tests/test.rem(877): Trig = Friday, 28 July, 2000 REM Last Tuesday in August 2000 MSG x -../tests/test.rem(872): Trig = Tuesday, 29 August, 2000 +../tests/test.rem(878): Trig = Tuesday, 29 August, 2000 REM Last Sunday in December 2000 MSG x -../tests/test.rem(873): Trig = Sunday, 31 December, 2000 +../tests/test.rem(879): Trig = Sunday, 31 December, 2000 REM January ~~1 MSG y -../tests/test.rem(875): Trig = Friday, 31 January, 1992 +../tests/test.rem(881): Trig = Friday, 31 January, 1992 REM February ~~1 MSG y -../tests/test.rem(876): Trig = Thursday, 28 February, 1991 +../tests/test.rem(882): Trig = Thursday, 28 February, 1991 REM February ~~2 MSG y -../tests/test.rem(877): Trig = Wednesday, 27 February, 1991 +../tests/test.rem(883): Trig = Wednesday, 27 February, 1991 REM February ~~3 MSG y -../tests/test.rem(878): Trig = Tuesday, 26 February, 1991 +../tests/test.rem(884): Trig = Tuesday, 26 February, 1991 REM February ~~8 MSG y -../tests/test.rem(879): Trig = Thursday, 21 February, 1991 +../tests/test.rem(885): Trig = Thursday, 21 February, 1991 REM February ~~20 MSG y -../tests/test.rem(880): Trig = Monday, 10 February, 1992 +../tests/test.rem(886): Trig = Monday, 10 February, 1992 PUSH OMIT 31 March REM March ~1 MSG y -../tests/test.rem(883): Trig = Saturday, 30 March, 1991 +../tests/test.rem(889): Trig = Saturday, 30 March, 1991 REM March ~~1 MSG y -../tests/test.rem(884): Trig = Sunday, 31 March, 1991 +../tests/test.rem(890): Trig = Sunday, 31 March, 1991 REM Lastday March MSG y -../tests/test.rem(885): Trig = Sunday, 31 March, 1991 +../tests/test.rem(891): Trig = Sunday, 31 March, 1991 REM Lastworkday March MSG y -../tests/test.rem(886): Trig = Saturday, 30 March, 1991 +../tests/test.rem(892): Trig = Saturday, 30 March, 1991 POP REM Dec 2000 ~~1 MSG y -../tests/test.rem(888): Trig = Sunday, 31 December, 2000 +../tests/test.rem(894): Trig = Sunday, 31 December, 2000 REM Dec 2000 ~~2 MSG y -../tests/test.rem(889): Trig = Saturday, 30 December, 2000 +../tests/test.rem(895): Trig = Saturday, 30 December, 2000 REM Dec 2000 ~~3 MSG y -../tests/test.rem(890): Trig = Friday, 29 December, 2000 +../tests/test.rem(896): Trig = Friday, 29 December, 2000 REM Dec 2000 ~~7 MSG y -../tests/test.rem(891): Trig = Monday, 25 December, 2000 +../tests/test.rem(897): Trig = Monday, 25 December, 2000 REM Jan 2001 ~~1 MSG y -../tests/test.rem(892): Trig = Wednesday, 31 January, 2001 +../tests/test.rem(898): Trig = Wednesday, 31 January, 2001 REM Lastday April 2022 OMIT SAT SUN MSG foo -../tests/test.rem(894): Trig = Saturday, 30 April, 2022 +../tests/test.rem(900): Trig = Saturday, 30 April, 2022 REM Lastworkday April 2022 OMIT SAT SUN MSG foo -../tests/test.rem(895): Trig = Friday, 29 April, 2022 +../tests/test.rem(901): Trig = Friday, 29 April, 2022 SET a pad(1, "0", 2) pad(1, "0", 2) => "01" @@ -4240,7 +4362,7 @@ set a pad("foo", "0", $MaxStringLen+1) $MaxStringLen => 65535 65535 + 1 => 65536 pad("foo", "0", 65536) => String too long -../tests/test.rem(903): pad(): String too long +../tests/test.rem(909): pad(): String too long # Test OMIT CLEAR-OMIT-CONTEXT @@ -4250,7 +4372,7 @@ OMIT Jun THROUGH July 15 OMIT Sep 5 THROUGH Sep 10 OMIT 2024-12-25 THROUGH 2025-01-04 OMIT Apr 2022 through July -../tests/test.rem(912): Bad date specification +../tests/test.rem(918): Bad date specification OMIT DUMP Global Full OMITs (11 of maximum allowed 1000): @@ -4351,22 +4473,22 @@ Global Weekday OMITs: None. CLEAR-OMIT-CONTEXT OMIT 2000-01-01 THROUGH 2020-12-31 -../tests/test.rem(916): Too many full OMITs (max. 1000) +../tests/test.rem(922): Too many full OMITs (max. 1000) OMIT Dec 5 2029 through Dec 4 2029 -../tests/test.rem(918): Error: THROUGH date earlier than start date +../tests/test.rem(924): Error: THROUGH date earlier than start date # Test MSF REM MSF This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? -../tests/test.rem(922): Trig = Saturday, 16 February, 1991 +../tests/test.rem(928): Trig = Saturday, 16 February, 1991 This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? # A ridiculously long line REM MSF This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? -../tests/test.rem(925): Trig = Saturday, 16 February, 1991 +../tests/test.rem(931): Trig = Saturday, 16 February, 1991 This is a very long reminder. It should be wrapped. Will it be wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? This is a very long reminder. It should be wrapped. Will it be @@ -4955,7 +5077,7 @@ wrapped? I'm interested to see it it's wrapped. Please wrap this, ok? FSET subst_custom(a, d, t) "Custom: a=" + a + "; d=" + d + "; t=" + t REM MSG Here: %{custom} -../tests/test.rem(930): Trig = Saturday, 16 February, 1991 +../tests/test.rem(936): Trig = Saturday, 16 February, 1991 Entering UserFN subst_custom(0, 1991-02-16, 12:13) a => 0 "Custom: a=" + 0 => "Custom: a=0" @@ -4969,7 +5091,7 @@ Leaving UserFN subst_custom(0, 1991-02-16, 12:13) => "Custom: a=0; d=1991-02-16; Here: Custom: a=0; d=1991-02-16; t=12:13 REM MSG There: %*{custom} -../tests/test.rem(931): Trig = Saturday, 16 February, 1991 +../tests/test.rem(937): Trig = Saturday, 16 February, 1991 Entering UserFN subst_custom(1, 1991-02-16, 12:13) a => 1 "Custom: a=" + 1 => "Custom: a=1" @@ -4983,8 +5105,8 @@ Leaving UserFN subst_custom(1, 1991-02-16, 12:13) => "Custom: a=1; d=1991-02-16; There: Custom: a=1; d=1991-02-16; t=12:13 REM MSG Bad: %{custom -../tests/test.rem(932): Trig = Saturday, 16 February, 1991 -../tests/test.rem(932): Warning: Unterminated %{...} substitution sequence +../tests/test.rem(938): Trig = Saturday, 16 February, 1991 +../tests/test.rem(938): Warning: Unterminated %{...} substitution sequence Entering UserFN subst_custom(0, 1991-02-16, 12:13) a => 0 "Custom: a=" + 0 => "Custom: a=0" @@ -4999,25 +5121,25 @@ Bad: Custom: a=0; d=1991-02-16; t=12:13 REM MSG Undefined: %{nopity_nope_nope} -../tests/test.rem(934): Trig = Saturday, 16 February, 1991 -../tests/test.rem(934): No substition function `subst_nopity_nope_nope' defined +../tests/test.rem(940): Trig = Saturday, 16 February, 1991 +../tests/test.rem(940): No substition function `subst_nopity_nope_nope' defined Undefined: # Bad substitution functions FSET subst_bad() "foo" REM MSG %{bad} -../tests/test.rem(938): Trig = Saturday, 16 February, 1991 -../tests/test.rem(938): Function `subst_bad' defined at ../tests/test.rem(937) should take 3 arguments, but actually takes 0 +../tests/test.rem(944): Trig = Saturday, 16 February, 1991 +../tests/test.rem(944): Function `subst_bad' defined at ../tests/test.rem(943) should take 3 arguments, but actually takes 0 FSET subst_ampm(a, b, c, d, e, f, g) "wookie" REM AT 11:00 MSG %2 -../tests/test.rem(942): Trig = Saturday, 16 February, 1991 AT 11:00 -../tests/test.rem(942): Function `subst_ampm' defined at ../tests/test.rem(940) should take 1 argument, but actually takes 7 -../tests/test.rem(942): Function `subst_ampm' defined at ../tests/test.rem(940) should take 1 argument, but actually takes 7 +../tests/test.rem(948): Trig = Saturday, 16 February, 1991 AT 11:00 +../tests/test.rem(948): Function `subst_ampm' defined at ../tests/test.rem(946) should take 1 argument, but actually takes 7 +../tests/test.rem(948): Function `subst_ampm' defined at ../tests/test.rem(946) should take 1 argument, but actually takes 7 at 11:00am FUNSET subst_ampm @@ -5036,27 +5158,27 @@ FUNSET circle square rectangle # Should fail SET a square(5) -../tests/test.rem(953): Undefined function: `square' +../tests/test.rem(959): Undefined function: `square' # htmlescape set a htmlescape("foo") htmlescape("foo") => "foo" REM MSG [a] -../tests/test.rem(957): Trig = Saturday, 16 February, 1991 +../tests/test.rem(963): Trig = Saturday, 16 February, 1991 a => "foo" foo set a htmlescape("<&>") htmlescape("<&>") => "<&>" REM MSG [a] -../tests/test.rem(959): Trig = Saturday, 16 February, 1991 +../tests/test.rem(965): Trig = Saturday, 16 February, 1991 a => "<&>" <&> set a htmlescape("@&^#*@&^##$*&@><><@#@#><@#>%%_#$foobarquux") htmlescape("@&^#*@&^##$*&@><><@#@#><@#>%%_#$foobarqu"...) => "@&^#*@&^##$*&@><>&l"... REM MSG [a] -../tests/test.rem(961): Trig = Saturday, 16 February, 1991 +../tests/test.rem(967): Trig = Saturday, 16 February, 1991 a => "@&^#*@&^##$*&@><>&l"... @&^#*@&^##$*&@><><@#@#><@#>%_#$foobarquux @@ -5075,22 +5197,22 @@ htmlstriptags("") => "" # $ParseUntriggered REM 2 Jan 1990 MSG ["bad_expr" / 2] -../tests/test.rem(971): Expired: 1990-01-02 +../tests/test.rem(977): Expired: 1990-01-02 "bad_expr" / 2 => Type mismatch -../tests/test.rem(971): `/': Type mismatch +../tests/test.rem(977): `/': Type mismatch SET $ParseUntriggered 0 REM 2 Jan 1990 MSG ["bad_expr" / 2] -../tests/test.rem(973): Expired: 1990-01-02 +../tests/test.rem(979): Expired: 1990-01-02 SET $ParseUntriggered 1 # String multiplication set a "low" * (-1) "low" * -1 => Number too low -../tests/test.rem(978): `*': Number too low +../tests/test.rem(984): `*': Number too low set a (-1) * "low" -1 * "low" => Number too low -../tests/test.rem(979): `*': Number too low +../tests/test.rem(985): `*': Number too low set a "zero" * 0 "zero" * 0 => "" @@ -5105,10 +5227,10 @@ set a 10000000 * "" # Too long for default limits set a "wookie" * 1000000 "wookie" * 1000000 => String too long -../tests/test.rem(988): `*': String too long +../tests/test.rem(994): `*': String too long set a 1000000 * "wookie" 1000000 * "wookie" => String too long -../tests/test.rem(989): `*': String too long +../tests/test.rem(995): `*': String too long set a "Cabbage! " * 7 "Cabbage! " * 7 => "Cabbage! Cabbage! Cabbage! Cabbage! Cabb"... @@ -5118,67 +5240,67 @@ set a 7 * "Cabbage! " # Should result in errors set pqxya 1+2) 1 + 2 => 3 -../tests/test.rem(995): Expecting end-of-line +../tests/test.rem(1001): Expecting end-of-line # Should result in an error REM Tue OMIT 2024-01-01 MSG Wookie -../tests/test.rem(998): Expecting weekday name +../tests/test.rem(1004): Expecting weekday name # No error REM Tue OMIT Wed 2024-01-01 MSG Blort -../tests/test.rem(1001): Trig = Tuesday, 2 January, 2024 +../tests/test.rem(1007): Trig = Tuesday, 2 January, 2024 # Make sure trigtime() is not reset between invocations REM Tue AT 16:00 DURATION 30 MSG Thing One -../tests/test.rem(1004): Trig = Tuesday, 19 February, 1991 AT 16:00 DURATION 00:30 +../tests/test.rem(1010): Trig = Tuesday, 19 February, 1991 AT 16:00 DURATION 00:30 REM [$T] AT [trigtime()+trigduration()] DURATION 15 MSG Thing Two $T => 1991-02-19 trigtime() => 16:00 trigduration() => 00:30 16:00 + 00:30 => 16:30 -../tests/test.rem(1005): Trig = Tuesday, 19 February, 1991 AT 16:30 DURATION 00:15 +../tests/test.rem(1011): Trig = Tuesday, 19 February, 1991 AT 16:30 DURATION 00:15 REM [$T] AT [$Tt+trigduration()] DURATION 30 MSG Thing Three $T => 1991-02-19 $Tt => 16:30 trigduration() => 00:15 16:30 + 00:15 => 16:45 -../tests/test.rem(1006): Trig = Tuesday, 19 February, 1991 AT 16:45 DURATION 00:30 +../tests/test.rem(1012): Trig = Tuesday, 19 February, 1991 AT 16:45 DURATION 00:30 REM [$T] AT [trigtime()+trigduration()] DURATION 10 MSG Last Thing $T => 1991-02-19 trigtime() => 16:45 trigduration() => 00:30 16:45 + 00:30 => 17:15 -../tests/test.rem(1007): Trig = Tuesday, 19 February, 1991 AT 17:15 DURATION 00:10 +../tests/test.rem(1013): Trig = Tuesday, 19 February, 1991 AT 17:15 DURATION 00:10 # Make sure trigtime is not reset during parsing REM Tue AT 16:00 MSG blort -../tests/test.rem(1010): Trig = Tuesday, 19 February, 1991 AT 16:00 +../tests/test.rem(1016): Trig = Tuesday, 19 February, 1991 AT 16:00 REM Tue AT 10:00 DURATION [$Tt] MSG blort $Tt => 16:00 -../tests/test.rem(1011): Trig = Tuesday, 19 February, 1991 AT 10:00 DURATION 16:00 -../tests/test.rem(1011): Trig = Tuesday, 19 February, 1991 AT 10:00 DURATION 16:00 +../tests/test.rem(1017): Trig = Tuesday, 19 February, 1991 AT 10:00 DURATION 16:00 +../tests/test.rem(1017): Trig = Tuesday, 19 February, 1991 AT 10:00 DURATION 16:00 REM Tue AT 16:00 MSG blort -../tests/test.rem(1012): Trig = Tuesday, 19 February, 1991 AT 16:00 +../tests/test.rem(1018): Trig = Tuesday, 19 February, 1991 AT 16:00 REM Tue AT 10:00 DURATION [trigtime()] MSG blort trigtime() => 16:00 -../tests/test.rem(1013): Trig = Tuesday, 19 February, 1991 AT 10:00 DURATION 16:00 -../tests/test.rem(1013): Trig = Tuesday, 19 February, 1991 AT 10:00 DURATION 16:00 +../tests/test.rem(1019): Trig = Tuesday, 19 February, 1991 AT 10:00 DURATION 16:00 +../tests/test.rem(1019): Trig = Tuesday, 19 February, 1991 AT 10:00 DURATION 16:00 # Make sure shellescape does not mangle UTF-8 characters msg [shellescape("😆")] -../tests/test.rem(1016): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1022): Trig = Saturday, 16 February, 1991 shellescape("😆") => "😆" 😆 This should be diagnosed as implicitly being REM -../tests/test.rem(1018): Unrecognized command; interpreting as REM -../tests/test.rem(1018): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1024): Unrecognized command; interpreting as REM +../tests/test.rem(1024): Trig = Saturday, 16 February, 1991 This should be diagnosed as implicitly being REM REM This should be diganosed as implicitly being MSG-type -../tests/test.rem(1019): Missing REM type; assuming MSG -../tests/test.rem(1019): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1025): Missing REM type; assuming MSG +../tests/test.rem(1025): Trig = Saturday, 16 February, 1991 This should be diganosed as implicitly being MSG-type @@ -5190,53 +5312,53 @@ FSET f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a1 # This should give an error FSET f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, a61, a62, a63, a64) 3 -../tests/test.rem(1028): Function `f' redefined: previously defined at ../tests/test.rem(1025) -../tests/test.rem(1028): Too many arguments +../tests/test.rem(1034): Function `f' redefined: previously defined at ../tests/test.rem(1031) +../tests/test.rem(1034): Too many arguments # Check that SATISFY expressions that don't reference trigdate are diagnosed # These should all NOT be diagnosed set x 3 REM SATISFY 1 -../tests/test.rem(1034): Trig = Saturday, 16 February, 1991 -../tests/test.rem(1034): Trig(satisfied) = Saturday, 16 February, 1991 +../tests/test.rem(1040): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1040): Trig(satisfied) = Saturday, 16 February, 1991 REM SATISFY trigdate() > '1990-01-01' -../tests/test.rem(1035): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1041): Trig = Saturday, 16 February, 1991 trigdate() => 1991-02-16 1991-02-16 > 1990-01-01 => 1 -../tests/test.rem(1035): Trig(satisfied) = Saturday, 16 February, 1991 +../tests/test.rem(1041): Trig(satisfied) = Saturday, 16 February, 1991 REM AT 23:59 SATISFY trigdatetime() > '1990-01-01@12:00' -../tests/test.rem(1036): Trig = Saturday, 16 February, 1991 AT 23:59 +../tests/test.rem(1042): Trig = Saturday, 16 February, 1991 AT 23:59 trigdatetime() => 1991-02-16@23:59 1991-02-16@23:59 > 1990-01-01@12:00 => 1 -../tests/test.rem(1036): Trig(satisfied) = Saturday, 16 February, 1991 AT 23:59 +../tests/test.rem(1042): Trig(satisfied) = Saturday, 16 February, 1991 AT 23:59 REM SATISFY $T > '1990-01-01' -../tests/test.rem(1037): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1043): Trig = Saturday, 16 February, 1991 $T => 1991-02-16 1991-02-16 > 1990-01-01 => 1 -../tests/test.rem(1037): Trig(satisfied) = Saturday, 16 February, 1991 +../tests/test.rem(1043): Trig(satisfied) = Saturday, 16 February, 1991 REM SATISFY $Ty > 1990 -../tests/test.rem(1038): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1044): Trig = Saturday, 16 February, 1991 $Ty => 1991 1991 > 1990 => 1 -../tests/test.rem(1038): Trig(satisfied) = Saturday, 16 February, 1991 +../tests/test.rem(1044): Trig(satisfied) = Saturday, 16 February, 1991 REM SATISFY $Tm > 0 -../tests/test.rem(1039): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1045): Trig = Saturday, 16 February, 1991 $Tm => 2 2 > 0 => 1 -../tests/test.rem(1039): Trig(satisfied) = Saturday, 16 February, 1991 +../tests/test.rem(1045): Trig(satisfied) = Saturday, 16 February, 1991 REM SATISFY $Td > 0 -../tests/test.rem(1040): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1046): Trig = Saturday, 16 February, 1991 $Td => 16 16 > 0 => 1 -../tests/test.rem(1040): Trig(satisfied) = Saturday, 16 February, 1991 +../tests/test.rem(1046): Trig(satisfied) = Saturday, 16 February, 1991 REM SATISFY $Tw > -1 -../tests/test.rem(1041): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1047): Trig = Saturday, 16 February, 1991 $Tw => 6 6 > -1 => 1 -../tests/test.rem(1041): Trig(satisfied) = Saturday, 16 February, 1991 +../tests/test.rem(1047): Trig(satisfied) = Saturday, 16 February, 1991 REM SATISFY [max(x, max(x, 1, 2, 3), 4, 5, 6) * max(5, $Td)] -../tests/test.rem(1042): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1048): Trig = Saturday, 16 February, 1991 x => 3 x => 3 max(3, 1, 2, 3) => 3 @@ -5244,30 +5366,30 @@ max(3, 3, 4, 5, 6) => 6 $Td => 16 max(5, 16) => 16 6 * 16 => 96 -../tests/test.rem(1042): Trig(satisfied) = Saturday, 16 February, 1991 +../tests/test.rem(1048): Trig(satisfied) = Saturday, 16 February, 1991 FSET references_t(x) $T != x REM SATISFY references_t($U) -../tests/test.rem(1045): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1051): Trig = Saturday, 16 February, 1991 $U => 1991-02-16 Entering UserFN references_t(1991-02-16) $T => 1991-02-16 x => 1991-02-16 1991-02-16 != 1991-02-16 => 0 Leaving UserFN references_t(1991-02-16) => 0 -../tests/test.rem(1045): Trig = Sunday, 17 February, 1991 +../tests/test.rem(1051): Trig = Sunday, 17 February, 1991 $U => 1991-02-16 Entering UserFN references_t(1991-02-16) $T => 1991-02-17 x => 1991-02-16 1991-02-17 != 1991-02-16 => 1 Leaving UserFN references_t(1991-02-16) => 1 -../tests/test.rem(1045): Trig(satisfied) = Sunday, 17 February, 1991 +../tests/test.rem(1051): Trig(satisfied) = Sunday, 17 February, 1991 FSET recursive_t(x) iif(x==0, recursive_t(1), references_t($U)) REM SATISFY recursive_t(0) -../tests/test.rem(1049): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1055): Trig = Saturday, 16 February, 1991 Entering UserFN recursive_t(0) x => 0 0 == 0 => 1 @@ -5284,7 +5406,7 @@ iif(0, ?, 0) => 0 Leaving UserFN recursive_t(1) => 0 iif(1, 0, ?) => 0 Leaving UserFN recursive_t(0) => 0 -../tests/test.rem(1049): Trig = Sunday, 17 February, 1991 +../tests/test.rem(1055): Trig = Sunday, 17 February, 1991 Entering UserFN recursive_t(0) x => 0 0 == 0 => 1 @@ -5301,9 +5423,9 @@ iif(0, ?, 1) => 1 Leaving UserFN recursive_t(1) => 1 iif(1, 1, ?) => 1 Leaving UserFN recursive_t(0) => 1 -../tests/test.rem(1049): Trig(satisfied) = Sunday, 17 February, 1991 +../tests/test.rem(1055): Trig(satisfied) = Sunday, 17 February, 1991 REM SATISFY recursive_t(2) -../tests/test.rem(1050): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1056): Trig = Saturday, 16 February, 1991 Entering UserFN recursive_t(2) x => 2 2 == 0 => 0 @@ -5315,7 +5437,7 @@ x => 1991-02-16 Leaving UserFN references_t(1991-02-16) => 0 iif(0, ?, 0) => 0 Leaving UserFN recursive_t(2) => 0 -../tests/test.rem(1050): Trig = Sunday, 17 February, 1991 +../tests/test.rem(1056): Trig = Sunday, 17 February, 1991 Entering UserFN recursive_t(2) x => 2 2 == 0 => 0 @@ -5327,392 +5449,392 @@ x => 1991-02-16 Leaving UserFN references_t(1991-02-16) => 1 iif(0, ?, 1) => 1 Leaving UserFN recursive_t(2) => 1 -../tests/test.rem(1050): Trig(satisfied) = Sunday, 17 February, 1991 +../tests/test.rem(1056): Trig(satisfied) = Sunday, 17 February, 1991 # These should be diagnosed REM SATISFY 0 -../tests/test.rem(1053): SATISFY: constant 0 will never be true -../tests/test.rem(1053): Trig = Saturday, 16 February, 1991 -../tests/test.rem(1053): Trig = Sunday, 17 February, 1991 -../tests/test.rem(1053): Trig = Monday, 18 February, 1991 -../tests/test.rem(1053): Trig = Tuesday, 19 February, 1991 -../tests/test.rem(1053): Trig = Wednesday, 20 February, 1991 -../tests/test.rem(1053): Trig = Thursday, 21 February, 1991 -../tests/test.rem(1053): Trig = Friday, 22 February, 1991 -../tests/test.rem(1053): Trig = Saturday, 23 February, 1991 -../tests/test.rem(1053): Trig = Sunday, 24 February, 1991 -../tests/test.rem(1053): Trig = Monday, 25 February, 1991 -../tests/test.rem(1053): Trig = Tuesday, 26 February, 1991 -../tests/test.rem(1053): Trig = Wednesday, 27 February, 1991 -../tests/test.rem(1053): Trig = Thursday, 28 February, 1991 -../tests/test.rem(1053): Trig = Friday, 1 March, 1991 -../tests/test.rem(1053): Trig = Saturday, 2 March, 1991 -../tests/test.rem(1053): Trig = Sunday, 3 March, 1991 -../tests/test.rem(1053): Trig = Monday, 4 March, 1991 -../tests/test.rem(1053): Trig = Tuesday, 5 March, 1991 -../tests/test.rem(1053): Trig = Wednesday, 6 March, 1991 -../tests/test.rem(1053): Trig = Thursday, 7 March, 1991 -../tests/test.rem(1053): Trig = Friday, 8 March, 1991 -../tests/test.rem(1053): Trig = Saturday, 9 March, 1991 -../tests/test.rem(1053): Trig = Sunday, 10 March, 1991 -../tests/test.rem(1053): Trig = Monday, 11 March, 1991 -../tests/test.rem(1053): Trig = Tuesday, 12 March, 1991 -../tests/test.rem(1053): Trig = Wednesday, 13 March, 1991 -../tests/test.rem(1053): Trig = Thursday, 14 March, 1991 -../tests/test.rem(1053): Trig = Friday, 15 March, 1991 -../tests/test.rem(1053): Trig = Saturday, 16 March, 1991 -../tests/test.rem(1053): Trig = Sunday, 17 March, 1991 -../tests/test.rem(1053): Trig = Monday, 18 March, 1991 -../tests/test.rem(1053): Trig = Tuesday, 19 March, 1991 -../tests/test.rem(1053): Trig = Wednesday, 20 March, 1991 -../tests/test.rem(1053): Trig = Thursday, 21 March, 1991 -../tests/test.rem(1053): Trig = Friday, 22 March, 1991 -../tests/test.rem(1053): Trig = Saturday, 23 March, 1991 -../tests/test.rem(1053): Trig = Sunday, 24 March, 1991 -../tests/test.rem(1053): Trig = Monday, 25 March, 1991 -../tests/test.rem(1053): Trig = Tuesday, 26 March, 1991 -../tests/test.rem(1053): Trig = Wednesday, 27 March, 1991 -../tests/test.rem(1053): Trig = Thursday, 28 March, 1991 -../tests/test.rem(1053): Trig = Friday, 29 March, 1991 -../tests/test.rem(1053): Trig = Saturday, 30 March, 1991 -../tests/test.rem(1053): Trig = Sunday, 31 March, 1991 -../tests/test.rem(1053): Trig = Monday, 1 April, 1991 -../tests/test.rem(1053): Trig = Tuesday, 2 April, 1991 -../tests/test.rem(1053): Trig = Wednesday, 3 April, 1991 -../tests/test.rem(1053): Trig = Thursday, 4 April, 1991 -../tests/test.rem(1053): Trig = Friday, 5 April, 1991 -../tests/test.rem(1053): Trig = Saturday, 6 April, 1991 -../tests/test.rem(1053): Trig = Sunday, 7 April, 1991 -../tests/test.rem(1053): Trig = Monday, 8 April, 1991 -../tests/test.rem(1053): Trig = Tuesday, 9 April, 1991 -../tests/test.rem(1053): Trig = Wednesday, 10 April, 1991 -../tests/test.rem(1053): Trig = Thursday, 11 April, 1991 -../tests/test.rem(1053): Trig = Friday, 12 April, 1991 -../tests/test.rem(1053): Trig = Saturday, 13 April, 1991 -../tests/test.rem(1053): Trig = Sunday, 14 April, 1991 -../tests/test.rem(1053): Trig = Monday, 15 April, 1991 -../tests/test.rem(1053): Trig = Tuesday, 16 April, 1991 -../tests/test.rem(1053): Trig = Wednesday, 17 April, 1991 -../tests/test.rem(1053): Trig = Thursday, 18 April, 1991 -../tests/test.rem(1053): Trig = Friday, 19 April, 1991 -../tests/test.rem(1053): Trig = Saturday, 20 April, 1991 -../tests/test.rem(1053): Trig = Sunday, 21 April, 1991 -../tests/test.rem(1053): Trig = Monday, 22 April, 1991 -../tests/test.rem(1053): Trig = Tuesday, 23 April, 1991 -../tests/test.rem(1053): Trig = Wednesday, 24 April, 1991 -../tests/test.rem(1053): Trig = Thursday, 25 April, 1991 -../tests/test.rem(1053): Trig = Friday, 26 April, 1991 -../tests/test.rem(1053): Trig = Saturday, 27 April, 1991 -../tests/test.rem(1053): Trig = Sunday, 28 April, 1991 -../tests/test.rem(1053): Trig = Monday, 29 April, 1991 -../tests/test.rem(1053): Trig = Tuesday, 30 April, 1991 -../tests/test.rem(1053): Trig = Wednesday, 1 May, 1991 -../tests/test.rem(1053): Trig = Thursday, 2 May, 1991 -../tests/test.rem(1053): Trig = Friday, 3 May, 1991 -../tests/test.rem(1053): Trig = Saturday, 4 May, 1991 -../tests/test.rem(1053): Trig = Sunday, 5 May, 1991 -../tests/test.rem(1053): Trig = Monday, 6 May, 1991 -../tests/test.rem(1053): Trig = Tuesday, 7 May, 1991 -../tests/test.rem(1053): Trig = Wednesday, 8 May, 1991 -../tests/test.rem(1053): Trig = Thursday, 9 May, 1991 -../tests/test.rem(1053): Trig = Friday, 10 May, 1991 -../tests/test.rem(1053): Trig = Saturday, 11 May, 1991 -../tests/test.rem(1053): Trig = Sunday, 12 May, 1991 -../tests/test.rem(1053): Trig = Monday, 13 May, 1991 -../tests/test.rem(1053): Trig = Tuesday, 14 May, 1991 -../tests/test.rem(1053): Trig = Wednesday, 15 May, 1991 -../tests/test.rem(1053): Trig = Thursday, 16 May, 1991 -../tests/test.rem(1053): Trig = Friday, 17 May, 1991 -../tests/test.rem(1053): Trig = Saturday, 18 May, 1991 -../tests/test.rem(1053): Trig = Sunday, 19 May, 1991 -../tests/test.rem(1053): Trig = Monday, 20 May, 1991 -../tests/test.rem(1053): Trig = Tuesday, 21 May, 1991 -../tests/test.rem(1053): Trig = Wednesday, 22 May, 1991 -../tests/test.rem(1053): Trig = Thursday, 23 May, 1991 -../tests/test.rem(1053): Trig = Friday, 24 May, 1991 -../tests/test.rem(1053): Trig = Saturday, 25 May, 1991 -../tests/test.rem(1053): Trig = Sunday, 26 May, 1991 -../tests/test.rem(1053): Trig = Monday, 27 May, 1991 -../tests/test.rem(1053): Trig = Tuesday, 28 May, 1991 -../tests/test.rem(1053): Trig = Wednesday, 29 May, 1991 -../tests/test.rem(1053): Trig = Thursday, 30 May, 1991 -../tests/test.rem(1053): Trig = Friday, 31 May, 1991 -../tests/test.rem(1053): Trig = Saturday, 1 June, 1991 -../tests/test.rem(1053): Trig = Sunday, 2 June, 1991 -../tests/test.rem(1053): Trig = Monday, 3 June, 1991 -../tests/test.rem(1053): Trig = Tuesday, 4 June, 1991 -../tests/test.rem(1053): Trig = Wednesday, 5 June, 1991 -../tests/test.rem(1053): Trig = Thursday, 6 June, 1991 -../tests/test.rem(1053): Trig = Friday, 7 June, 1991 -../tests/test.rem(1053): Trig = Saturday, 8 June, 1991 -../tests/test.rem(1053): Trig = Sunday, 9 June, 1991 -../tests/test.rem(1053): Trig = Monday, 10 June, 1991 -../tests/test.rem(1053): Trig = Tuesday, 11 June, 1991 -../tests/test.rem(1053): Trig = Wednesday, 12 June, 1991 -../tests/test.rem(1053): Trig = Thursday, 13 June, 1991 -../tests/test.rem(1053): Trig = Friday, 14 June, 1991 -../tests/test.rem(1053): Trig = Saturday, 15 June, 1991 -../tests/test.rem(1053): Trig = Sunday, 16 June, 1991 -../tests/test.rem(1053): Trig = Monday, 17 June, 1991 -../tests/test.rem(1053): Trig = Tuesday, 18 June, 1991 -../tests/test.rem(1053): Trig = Wednesday, 19 June, 1991 -../tests/test.rem(1053): Trig = Thursday, 20 June, 1991 -../tests/test.rem(1053): Trig = Friday, 21 June, 1991 -../tests/test.rem(1053): Trig = Saturday, 22 June, 1991 -../tests/test.rem(1053): Trig = Sunday, 23 June, 1991 -../tests/test.rem(1053): Trig = Monday, 24 June, 1991 -../tests/test.rem(1053): Trig = Tuesday, 25 June, 1991 -../tests/test.rem(1053): Trig = Wednesday, 26 June, 1991 -../tests/test.rem(1053): Trig = Thursday, 27 June, 1991 -../tests/test.rem(1053): Trig = Friday, 28 June, 1991 -../tests/test.rem(1053): Trig = Saturday, 29 June, 1991 -../tests/test.rem(1053): Trig = Sunday, 30 June, 1991 -../tests/test.rem(1053): Trig = Monday, 1 July, 1991 -../tests/test.rem(1053): Trig = Tuesday, 2 July, 1991 -../tests/test.rem(1053): Trig = Wednesday, 3 July, 1991 -../tests/test.rem(1053): Trig = Thursday, 4 July, 1991 -../tests/test.rem(1053): Trig = Friday, 5 July, 1991 -../tests/test.rem(1053): Trig = Saturday, 6 July, 1991 -../tests/test.rem(1053): Trig = Sunday, 7 July, 1991 -../tests/test.rem(1053): Trig = Monday, 8 July, 1991 -../tests/test.rem(1053): Trig = Tuesday, 9 July, 1991 -../tests/test.rem(1053): Trig = Wednesday, 10 July, 1991 -../tests/test.rem(1053): Trig = Thursday, 11 July, 1991 -../tests/test.rem(1053): Trig = Friday, 12 July, 1991 -../tests/test.rem(1053): Trig = Saturday, 13 July, 1991 -../tests/test.rem(1053): Trig = Sunday, 14 July, 1991 -../tests/test.rem(1053): Trig = Monday, 15 July, 1991 -../tests/test.rem(1053): Can't compute trigger +../tests/test.rem(1059): SATISFY: constant 0 will never be true +../tests/test.rem(1059): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1059): Trig = Sunday, 17 February, 1991 +../tests/test.rem(1059): Trig = Monday, 18 February, 1991 +../tests/test.rem(1059): Trig = Tuesday, 19 February, 1991 +../tests/test.rem(1059): Trig = Wednesday, 20 February, 1991 +../tests/test.rem(1059): Trig = Thursday, 21 February, 1991 +../tests/test.rem(1059): Trig = Friday, 22 February, 1991 +../tests/test.rem(1059): Trig = Saturday, 23 February, 1991 +../tests/test.rem(1059): Trig = Sunday, 24 February, 1991 +../tests/test.rem(1059): Trig = Monday, 25 February, 1991 +../tests/test.rem(1059): Trig = Tuesday, 26 February, 1991 +../tests/test.rem(1059): Trig = Wednesday, 27 February, 1991 +../tests/test.rem(1059): Trig = Thursday, 28 February, 1991 +../tests/test.rem(1059): Trig = Friday, 1 March, 1991 +../tests/test.rem(1059): Trig = Saturday, 2 March, 1991 +../tests/test.rem(1059): Trig = Sunday, 3 March, 1991 +../tests/test.rem(1059): Trig = Monday, 4 March, 1991 +../tests/test.rem(1059): Trig = Tuesday, 5 March, 1991 +../tests/test.rem(1059): Trig = Wednesday, 6 March, 1991 +../tests/test.rem(1059): Trig = Thursday, 7 March, 1991 +../tests/test.rem(1059): Trig = Friday, 8 March, 1991 +../tests/test.rem(1059): Trig = Saturday, 9 March, 1991 +../tests/test.rem(1059): Trig = Sunday, 10 March, 1991 +../tests/test.rem(1059): Trig = Monday, 11 March, 1991 +../tests/test.rem(1059): Trig = Tuesday, 12 March, 1991 +../tests/test.rem(1059): Trig = Wednesday, 13 March, 1991 +../tests/test.rem(1059): Trig = Thursday, 14 March, 1991 +../tests/test.rem(1059): Trig = Friday, 15 March, 1991 +../tests/test.rem(1059): Trig = Saturday, 16 March, 1991 +../tests/test.rem(1059): Trig = Sunday, 17 March, 1991 +../tests/test.rem(1059): Trig = Monday, 18 March, 1991 +../tests/test.rem(1059): Trig = Tuesday, 19 March, 1991 +../tests/test.rem(1059): Trig = Wednesday, 20 March, 1991 +../tests/test.rem(1059): Trig = Thursday, 21 March, 1991 +../tests/test.rem(1059): Trig = Friday, 22 March, 1991 +../tests/test.rem(1059): Trig = Saturday, 23 March, 1991 +../tests/test.rem(1059): Trig = Sunday, 24 March, 1991 +../tests/test.rem(1059): Trig = Monday, 25 March, 1991 +../tests/test.rem(1059): Trig = Tuesday, 26 March, 1991 +../tests/test.rem(1059): Trig = Wednesday, 27 March, 1991 +../tests/test.rem(1059): Trig = Thursday, 28 March, 1991 +../tests/test.rem(1059): Trig = Friday, 29 March, 1991 +../tests/test.rem(1059): Trig = Saturday, 30 March, 1991 +../tests/test.rem(1059): Trig = Sunday, 31 March, 1991 +../tests/test.rem(1059): Trig = Monday, 1 April, 1991 +../tests/test.rem(1059): Trig = Tuesday, 2 April, 1991 +../tests/test.rem(1059): Trig = Wednesday, 3 April, 1991 +../tests/test.rem(1059): Trig = Thursday, 4 April, 1991 +../tests/test.rem(1059): Trig = Friday, 5 April, 1991 +../tests/test.rem(1059): Trig = Saturday, 6 April, 1991 +../tests/test.rem(1059): Trig = Sunday, 7 April, 1991 +../tests/test.rem(1059): Trig = Monday, 8 April, 1991 +../tests/test.rem(1059): Trig = Tuesday, 9 April, 1991 +../tests/test.rem(1059): Trig = Wednesday, 10 April, 1991 +../tests/test.rem(1059): Trig = Thursday, 11 April, 1991 +../tests/test.rem(1059): Trig = Friday, 12 April, 1991 +../tests/test.rem(1059): Trig = Saturday, 13 April, 1991 +../tests/test.rem(1059): Trig = Sunday, 14 April, 1991 +../tests/test.rem(1059): Trig = Monday, 15 April, 1991 +../tests/test.rem(1059): Trig = Tuesday, 16 April, 1991 +../tests/test.rem(1059): Trig = Wednesday, 17 April, 1991 +../tests/test.rem(1059): Trig = Thursday, 18 April, 1991 +../tests/test.rem(1059): Trig = Friday, 19 April, 1991 +../tests/test.rem(1059): Trig = Saturday, 20 April, 1991 +../tests/test.rem(1059): Trig = Sunday, 21 April, 1991 +../tests/test.rem(1059): Trig = Monday, 22 April, 1991 +../tests/test.rem(1059): Trig = Tuesday, 23 April, 1991 +../tests/test.rem(1059): Trig = Wednesday, 24 April, 1991 +../tests/test.rem(1059): Trig = Thursday, 25 April, 1991 +../tests/test.rem(1059): Trig = Friday, 26 April, 1991 +../tests/test.rem(1059): Trig = Saturday, 27 April, 1991 +../tests/test.rem(1059): Trig = Sunday, 28 April, 1991 +../tests/test.rem(1059): Trig = Monday, 29 April, 1991 +../tests/test.rem(1059): Trig = Tuesday, 30 April, 1991 +../tests/test.rem(1059): Trig = Wednesday, 1 May, 1991 +../tests/test.rem(1059): Trig = Thursday, 2 May, 1991 +../tests/test.rem(1059): Trig = Friday, 3 May, 1991 +../tests/test.rem(1059): Trig = Saturday, 4 May, 1991 +../tests/test.rem(1059): Trig = Sunday, 5 May, 1991 +../tests/test.rem(1059): Trig = Monday, 6 May, 1991 +../tests/test.rem(1059): Trig = Tuesday, 7 May, 1991 +../tests/test.rem(1059): Trig = Wednesday, 8 May, 1991 +../tests/test.rem(1059): Trig = Thursday, 9 May, 1991 +../tests/test.rem(1059): Trig = Friday, 10 May, 1991 +../tests/test.rem(1059): Trig = Saturday, 11 May, 1991 +../tests/test.rem(1059): Trig = Sunday, 12 May, 1991 +../tests/test.rem(1059): Trig = Monday, 13 May, 1991 +../tests/test.rem(1059): Trig = Tuesday, 14 May, 1991 +../tests/test.rem(1059): Trig = Wednesday, 15 May, 1991 +../tests/test.rem(1059): Trig = Thursday, 16 May, 1991 +../tests/test.rem(1059): Trig = Friday, 17 May, 1991 +../tests/test.rem(1059): Trig = Saturday, 18 May, 1991 +../tests/test.rem(1059): Trig = Sunday, 19 May, 1991 +../tests/test.rem(1059): Trig = Monday, 20 May, 1991 +../tests/test.rem(1059): Trig = Tuesday, 21 May, 1991 +../tests/test.rem(1059): Trig = Wednesday, 22 May, 1991 +../tests/test.rem(1059): Trig = Thursday, 23 May, 1991 +../tests/test.rem(1059): Trig = Friday, 24 May, 1991 +../tests/test.rem(1059): Trig = Saturday, 25 May, 1991 +../tests/test.rem(1059): Trig = Sunday, 26 May, 1991 +../tests/test.rem(1059): Trig = Monday, 27 May, 1991 +../tests/test.rem(1059): Trig = Tuesday, 28 May, 1991 +../tests/test.rem(1059): Trig = Wednesday, 29 May, 1991 +../tests/test.rem(1059): Trig = Thursday, 30 May, 1991 +../tests/test.rem(1059): Trig = Friday, 31 May, 1991 +../tests/test.rem(1059): Trig = Saturday, 1 June, 1991 +../tests/test.rem(1059): Trig = Sunday, 2 June, 1991 +../tests/test.rem(1059): Trig = Monday, 3 June, 1991 +../tests/test.rem(1059): Trig = Tuesday, 4 June, 1991 +../tests/test.rem(1059): Trig = Wednesday, 5 June, 1991 +../tests/test.rem(1059): Trig = Thursday, 6 June, 1991 +../tests/test.rem(1059): Trig = Friday, 7 June, 1991 +../tests/test.rem(1059): Trig = Saturday, 8 June, 1991 +../tests/test.rem(1059): Trig = Sunday, 9 June, 1991 +../tests/test.rem(1059): Trig = Monday, 10 June, 1991 +../tests/test.rem(1059): Trig = Tuesday, 11 June, 1991 +../tests/test.rem(1059): Trig = Wednesday, 12 June, 1991 +../tests/test.rem(1059): Trig = Thursday, 13 June, 1991 +../tests/test.rem(1059): Trig = Friday, 14 June, 1991 +../tests/test.rem(1059): Trig = Saturday, 15 June, 1991 +../tests/test.rem(1059): Trig = Sunday, 16 June, 1991 +../tests/test.rem(1059): Trig = Monday, 17 June, 1991 +../tests/test.rem(1059): Trig = Tuesday, 18 June, 1991 +../tests/test.rem(1059): Trig = Wednesday, 19 June, 1991 +../tests/test.rem(1059): Trig = Thursday, 20 June, 1991 +../tests/test.rem(1059): Trig = Friday, 21 June, 1991 +../tests/test.rem(1059): Trig = Saturday, 22 June, 1991 +../tests/test.rem(1059): Trig = Sunday, 23 June, 1991 +../tests/test.rem(1059): Trig = Monday, 24 June, 1991 +../tests/test.rem(1059): Trig = Tuesday, 25 June, 1991 +../tests/test.rem(1059): Trig = Wednesday, 26 June, 1991 +../tests/test.rem(1059): Trig = Thursday, 27 June, 1991 +../tests/test.rem(1059): Trig = Friday, 28 June, 1991 +../tests/test.rem(1059): Trig = Saturday, 29 June, 1991 +../tests/test.rem(1059): Trig = Sunday, 30 June, 1991 +../tests/test.rem(1059): Trig = Monday, 1 July, 1991 +../tests/test.rem(1059): Trig = Tuesday, 2 July, 1991 +../tests/test.rem(1059): Trig = Wednesday, 3 July, 1991 +../tests/test.rem(1059): Trig = Thursday, 4 July, 1991 +../tests/test.rem(1059): Trig = Friday, 5 July, 1991 +../tests/test.rem(1059): Trig = Saturday, 6 July, 1991 +../tests/test.rem(1059): Trig = Sunday, 7 July, 1991 +../tests/test.rem(1059): Trig = Monday, 8 July, 1991 +../tests/test.rem(1059): Trig = Tuesday, 9 July, 1991 +../tests/test.rem(1059): Trig = Wednesday, 10 July, 1991 +../tests/test.rem(1059): Trig = Thursday, 11 July, 1991 +../tests/test.rem(1059): Trig = Friday, 12 July, 1991 +../tests/test.rem(1059): Trig = Saturday, 13 July, 1991 +../tests/test.rem(1059): Trig = Sunday, 14 July, 1991 +../tests/test.rem(1059): Trig = Monday, 15 July, 1991 +../tests/test.rem(1059): Can't compute trigger REM SATISFY "" -../tests/test.rem(1054): SATISFY: constant "" will never be true -../tests/test.rem(1054): Trig = Saturday, 16 February, 1991 -../tests/test.rem(1054): Trig = Sunday, 17 February, 1991 -../tests/test.rem(1054): Trig = Monday, 18 February, 1991 -../tests/test.rem(1054): Trig = Tuesday, 19 February, 1991 -../tests/test.rem(1054): Trig = Wednesday, 20 February, 1991 -../tests/test.rem(1054): Trig = Thursday, 21 February, 1991 -../tests/test.rem(1054): Trig = Friday, 22 February, 1991 -../tests/test.rem(1054): Trig = Saturday, 23 February, 1991 -../tests/test.rem(1054): Trig = Sunday, 24 February, 1991 -../tests/test.rem(1054): Trig = Monday, 25 February, 1991 -../tests/test.rem(1054): Trig = Tuesday, 26 February, 1991 -../tests/test.rem(1054): Trig = Wednesday, 27 February, 1991 -../tests/test.rem(1054): Trig = Thursday, 28 February, 1991 -../tests/test.rem(1054): Trig = Friday, 1 March, 1991 -../tests/test.rem(1054): Trig = Saturday, 2 March, 1991 -../tests/test.rem(1054): Trig = Sunday, 3 March, 1991 -../tests/test.rem(1054): Trig = Monday, 4 March, 1991 -../tests/test.rem(1054): Trig = Tuesday, 5 March, 1991 -../tests/test.rem(1054): Trig = Wednesday, 6 March, 1991 -../tests/test.rem(1054): Trig = Thursday, 7 March, 1991 -../tests/test.rem(1054): Trig = Friday, 8 March, 1991 -../tests/test.rem(1054): Trig = Saturday, 9 March, 1991 -../tests/test.rem(1054): Trig = Sunday, 10 March, 1991 -../tests/test.rem(1054): Trig = Monday, 11 March, 1991 -../tests/test.rem(1054): Trig = Tuesday, 12 March, 1991 -../tests/test.rem(1054): Trig = Wednesday, 13 March, 1991 -../tests/test.rem(1054): Trig = Thursday, 14 March, 1991 -../tests/test.rem(1054): Trig = Friday, 15 March, 1991 -../tests/test.rem(1054): Trig = Saturday, 16 March, 1991 -../tests/test.rem(1054): Trig = Sunday, 17 March, 1991 -../tests/test.rem(1054): Trig = Monday, 18 March, 1991 -../tests/test.rem(1054): Trig = Tuesday, 19 March, 1991 -../tests/test.rem(1054): Trig = Wednesday, 20 March, 1991 -../tests/test.rem(1054): Trig = Thursday, 21 March, 1991 -../tests/test.rem(1054): Trig = Friday, 22 March, 1991 -../tests/test.rem(1054): Trig = Saturday, 23 March, 1991 -../tests/test.rem(1054): Trig = Sunday, 24 March, 1991 -../tests/test.rem(1054): Trig = Monday, 25 March, 1991 -../tests/test.rem(1054): Trig = Tuesday, 26 March, 1991 -../tests/test.rem(1054): Trig = Wednesday, 27 March, 1991 -../tests/test.rem(1054): Trig = Thursday, 28 March, 1991 -../tests/test.rem(1054): Trig = Friday, 29 March, 1991 -../tests/test.rem(1054): Trig = Saturday, 30 March, 1991 -../tests/test.rem(1054): Trig = Sunday, 31 March, 1991 -../tests/test.rem(1054): Trig = Monday, 1 April, 1991 -../tests/test.rem(1054): Trig = Tuesday, 2 April, 1991 -../tests/test.rem(1054): Trig = Wednesday, 3 April, 1991 -../tests/test.rem(1054): Trig = Thursday, 4 April, 1991 -../tests/test.rem(1054): Trig = Friday, 5 April, 1991 -../tests/test.rem(1054): Trig = Saturday, 6 April, 1991 -../tests/test.rem(1054): Trig = Sunday, 7 April, 1991 -../tests/test.rem(1054): Trig = Monday, 8 April, 1991 -../tests/test.rem(1054): Trig = Tuesday, 9 April, 1991 -../tests/test.rem(1054): Trig = Wednesday, 10 April, 1991 -../tests/test.rem(1054): Trig = Thursday, 11 April, 1991 -../tests/test.rem(1054): Trig = Friday, 12 April, 1991 -../tests/test.rem(1054): Trig = Saturday, 13 April, 1991 -../tests/test.rem(1054): Trig = Sunday, 14 April, 1991 -../tests/test.rem(1054): Trig = Monday, 15 April, 1991 -../tests/test.rem(1054): Trig = Tuesday, 16 April, 1991 -../tests/test.rem(1054): Trig = Wednesday, 17 April, 1991 -../tests/test.rem(1054): Trig = Thursday, 18 April, 1991 -../tests/test.rem(1054): Trig = Friday, 19 April, 1991 -../tests/test.rem(1054): Trig = Saturday, 20 April, 1991 -../tests/test.rem(1054): Trig = Sunday, 21 April, 1991 -../tests/test.rem(1054): Trig = Monday, 22 April, 1991 -../tests/test.rem(1054): Trig = Tuesday, 23 April, 1991 -../tests/test.rem(1054): Trig = Wednesday, 24 April, 1991 -../tests/test.rem(1054): Trig = Thursday, 25 April, 1991 -../tests/test.rem(1054): Trig = Friday, 26 April, 1991 -../tests/test.rem(1054): Trig = Saturday, 27 April, 1991 -../tests/test.rem(1054): Trig = Sunday, 28 April, 1991 -../tests/test.rem(1054): Trig = Monday, 29 April, 1991 -../tests/test.rem(1054): Trig = Tuesday, 30 April, 1991 -../tests/test.rem(1054): Trig = Wednesday, 1 May, 1991 -../tests/test.rem(1054): Trig = Thursday, 2 May, 1991 -../tests/test.rem(1054): Trig = Friday, 3 May, 1991 -../tests/test.rem(1054): Trig = Saturday, 4 May, 1991 -../tests/test.rem(1054): Trig = Sunday, 5 May, 1991 -../tests/test.rem(1054): Trig = Monday, 6 May, 1991 -../tests/test.rem(1054): Trig = Tuesday, 7 May, 1991 -../tests/test.rem(1054): Trig = Wednesday, 8 May, 1991 -../tests/test.rem(1054): Trig = Thursday, 9 May, 1991 -../tests/test.rem(1054): Trig = Friday, 10 May, 1991 -../tests/test.rem(1054): Trig = Saturday, 11 May, 1991 -../tests/test.rem(1054): Trig = Sunday, 12 May, 1991 -../tests/test.rem(1054): Trig = Monday, 13 May, 1991 -../tests/test.rem(1054): Trig = Tuesday, 14 May, 1991 -../tests/test.rem(1054): Trig = Wednesday, 15 May, 1991 -../tests/test.rem(1054): Trig = Thursday, 16 May, 1991 -../tests/test.rem(1054): Trig = Friday, 17 May, 1991 -../tests/test.rem(1054): Trig = Saturday, 18 May, 1991 -../tests/test.rem(1054): Trig = Sunday, 19 May, 1991 -../tests/test.rem(1054): Trig = Monday, 20 May, 1991 -../tests/test.rem(1054): Trig = Tuesday, 21 May, 1991 -../tests/test.rem(1054): Trig = Wednesday, 22 May, 1991 -../tests/test.rem(1054): Trig = Thursday, 23 May, 1991 -../tests/test.rem(1054): Trig = Friday, 24 May, 1991 -../tests/test.rem(1054): Trig = Saturday, 25 May, 1991 -../tests/test.rem(1054): Trig = Sunday, 26 May, 1991 -../tests/test.rem(1054): Trig = Monday, 27 May, 1991 -../tests/test.rem(1054): Trig = Tuesday, 28 May, 1991 -../tests/test.rem(1054): Trig = Wednesday, 29 May, 1991 -../tests/test.rem(1054): Trig = Thursday, 30 May, 1991 -../tests/test.rem(1054): Trig = Friday, 31 May, 1991 -../tests/test.rem(1054): Trig = Saturday, 1 June, 1991 -../tests/test.rem(1054): Trig = Sunday, 2 June, 1991 -../tests/test.rem(1054): Trig = Monday, 3 June, 1991 -../tests/test.rem(1054): Trig = Tuesday, 4 June, 1991 -../tests/test.rem(1054): Trig = Wednesday, 5 June, 1991 -../tests/test.rem(1054): Trig = Thursday, 6 June, 1991 -../tests/test.rem(1054): Trig = Friday, 7 June, 1991 -../tests/test.rem(1054): Trig = Saturday, 8 June, 1991 -../tests/test.rem(1054): Trig = Sunday, 9 June, 1991 -../tests/test.rem(1054): Trig = Monday, 10 June, 1991 -../tests/test.rem(1054): Trig = Tuesday, 11 June, 1991 -../tests/test.rem(1054): Trig = Wednesday, 12 June, 1991 -../tests/test.rem(1054): Trig = Thursday, 13 June, 1991 -../tests/test.rem(1054): Trig = Friday, 14 June, 1991 -../tests/test.rem(1054): Trig = Saturday, 15 June, 1991 -../tests/test.rem(1054): Trig = Sunday, 16 June, 1991 -../tests/test.rem(1054): Trig = Monday, 17 June, 1991 -../tests/test.rem(1054): Trig = Tuesday, 18 June, 1991 -../tests/test.rem(1054): Trig = Wednesday, 19 June, 1991 -../tests/test.rem(1054): Trig = Thursday, 20 June, 1991 -../tests/test.rem(1054): Trig = Friday, 21 June, 1991 -../tests/test.rem(1054): Trig = Saturday, 22 June, 1991 -../tests/test.rem(1054): Trig = Sunday, 23 June, 1991 -../tests/test.rem(1054): Trig = Monday, 24 June, 1991 -../tests/test.rem(1054): Trig = Tuesday, 25 June, 1991 -../tests/test.rem(1054): Trig = Wednesday, 26 June, 1991 -../tests/test.rem(1054): Trig = Thursday, 27 June, 1991 -../tests/test.rem(1054): Trig = Friday, 28 June, 1991 -../tests/test.rem(1054): Trig = Saturday, 29 June, 1991 -../tests/test.rem(1054): Trig = Sunday, 30 June, 1991 -../tests/test.rem(1054): Trig = Monday, 1 July, 1991 -../tests/test.rem(1054): Trig = Tuesday, 2 July, 1991 -../tests/test.rem(1054): Trig = Wednesday, 3 July, 1991 -../tests/test.rem(1054): Trig = Thursday, 4 July, 1991 -../tests/test.rem(1054): Trig = Friday, 5 July, 1991 -../tests/test.rem(1054): Trig = Saturday, 6 July, 1991 -../tests/test.rem(1054): Trig = Sunday, 7 July, 1991 -../tests/test.rem(1054): Trig = Monday, 8 July, 1991 -../tests/test.rem(1054): Trig = Tuesday, 9 July, 1991 -../tests/test.rem(1054): Trig = Wednesday, 10 July, 1991 -../tests/test.rem(1054): Trig = Thursday, 11 July, 1991 -../tests/test.rem(1054): Trig = Friday, 12 July, 1991 -../tests/test.rem(1054): Trig = Saturday, 13 July, 1991 -../tests/test.rem(1054): Trig = Sunday, 14 July, 1991 -../tests/test.rem(1054): Trig = Monday, 15 July, 1991 -../tests/test.rem(1054): Can't compute trigger +../tests/test.rem(1060): SATISFY: constant "" will never be true +../tests/test.rem(1060): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1060): Trig = Sunday, 17 February, 1991 +../tests/test.rem(1060): Trig = Monday, 18 February, 1991 +../tests/test.rem(1060): Trig = Tuesday, 19 February, 1991 +../tests/test.rem(1060): Trig = Wednesday, 20 February, 1991 +../tests/test.rem(1060): Trig = Thursday, 21 February, 1991 +../tests/test.rem(1060): Trig = Friday, 22 February, 1991 +../tests/test.rem(1060): Trig = Saturday, 23 February, 1991 +../tests/test.rem(1060): Trig = Sunday, 24 February, 1991 +../tests/test.rem(1060): Trig = Monday, 25 February, 1991 +../tests/test.rem(1060): Trig = Tuesday, 26 February, 1991 +../tests/test.rem(1060): Trig = Wednesday, 27 February, 1991 +../tests/test.rem(1060): Trig = Thursday, 28 February, 1991 +../tests/test.rem(1060): Trig = Friday, 1 March, 1991 +../tests/test.rem(1060): Trig = Saturday, 2 March, 1991 +../tests/test.rem(1060): Trig = Sunday, 3 March, 1991 +../tests/test.rem(1060): Trig = Monday, 4 March, 1991 +../tests/test.rem(1060): Trig = Tuesday, 5 March, 1991 +../tests/test.rem(1060): Trig = Wednesday, 6 March, 1991 +../tests/test.rem(1060): Trig = Thursday, 7 March, 1991 +../tests/test.rem(1060): Trig = Friday, 8 March, 1991 +../tests/test.rem(1060): Trig = Saturday, 9 March, 1991 +../tests/test.rem(1060): Trig = Sunday, 10 March, 1991 +../tests/test.rem(1060): Trig = Monday, 11 March, 1991 +../tests/test.rem(1060): Trig = Tuesday, 12 March, 1991 +../tests/test.rem(1060): Trig = Wednesday, 13 March, 1991 +../tests/test.rem(1060): Trig = Thursday, 14 March, 1991 +../tests/test.rem(1060): Trig = Friday, 15 March, 1991 +../tests/test.rem(1060): Trig = Saturday, 16 March, 1991 +../tests/test.rem(1060): Trig = Sunday, 17 March, 1991 +../tests/test.rem(1060): Trig = Monday, 18 March, 1991 +../tests/test.rem(1060): Trig = Tuesday, 19 March, 1991 +../tests/test.rem(1060): Trig = Wednesday, 20 March, 1991 +../tests/test.rem(1060): Trig = Thursday, 21 March, 1991 +../tests/test.rem(1060): Trig = Friday, 22 March, 1991 +../tests/test.rem(1060): Trig = Saturday, 23 March, 1991 +../tests/test.rem(1060): Trig = Sunday, 24 March, 1991 +../tests/test.rem(1060): Trig = Monday, 25 March, 1991 +../tests/test.rem(1060): Trig = Tuesday, 26 March, 1991 +../tests/test.rem(1060): Trig = Wednesday, 27 March, 1991 +../tests/test.rem(1060): Trig = Thursday, 28 March, 1991 +../tests/test.rem(1060): Trig = Friday, 29 March, 1991 +../tests/test.rem(1060): Trig = Saturday, 30 March, 1991 +../tests/test.rem(1060): Trig = Sunday, 31 March, 1991 +../tests/test.rem(1060): Trig = Monday, 1 April, 1991 +../tests/test.rem(1060): Trig = Tuesday, 2 April, 1991 +../tests/test.rem(1060): Trig = Wednesday, 3 April, 1991 +../tests/test.rem(1060): Trig = Thursday, 4 April, 1991 +../tests/test.rem(1060): Trig = Friday, 5 April, 1991 +../tests/test.rem(1060): Trig = Saturday, 6 April, 1991 +../tests/test.rem(1060): Trig = Sunday, 7 April, 1991 +../tests/test.rem(1060): Trig = Monday, 8 April, 1991 +../tests/test.rem(1060): Trig = Tuesday, 9 April, 1991 +../tests/test.rem(1060): Trig = Wednesday, 10 April, 1991 +../tests/test.rem(1060): Trig = Thursday, 11 April, 1991 +../tests/test.rem(1060): Trig = Friday, 12 April, 1991 +../tests/test.rem(1060): Trig = Saturday, 13 April, 1991 +../tests/test.rem(1060): Trig = Sunday, 14 April, 1991 +../tests/test.rem(1060): Trig = Monday, 15 April, 1991 +../tests/test.rem(1060): Trig = Tuesday, 16 April, 1991 +../tests/test.rem(1060): Trig = Wednesday, 17 April, 1991 +../tests/test.rem(1060): Trig = Thursday, 18 April, 1991 +../tests/test.rem(1060): Trig = Friday, 19 April, 1991 +../tests/test.rem(1060): Trig = Saturday, 20 April, 1991 +../tests/test.rem(1060): Trig = Sunday, 21 April, 1991 +../tests/test.rem(1060): Trig = Monday, 22 April, 1991 +../tests/test.rem(1060): Trig = Tuesday, 23 April, 1991 +../tests/test.rem(1060): Trig = Wednesday, 24 April, 1991 +../tests/test.rem(1060): Trig = Thursday, 25 April, 1991 +../tests/test.rem(1060): Trig = Friday, 26 April, 1991 +../tests/test.rem(1060): Trig = Saturday, 27 April, 1991 +../tests/test.rem(1060): Trig = Sunday, 28 April, 1991 +../tests/test.rem(1060): Trig = Monday, 29 April, 1991 +../tests/test.rem(1060): Trig = Tuesday, 30 April, 1991 +../tests/test.rem(1060): Trig = Wednesday, 1 May, 1991 +../tests/test.rem(1060): Trig = Thursday, 2 May, 1991 +../tests/test.rem(1060): Trig = Friday, 3 May, 1991 +../tests/test.rem(1060): Trig = Saturday, 4 May, 1991 +../tests/test.rem(1060): Trig = Sunday, 5 May, 1991 +../tests/test.rem(1060): Trig = Monday, 6 May, 1991 +../tests/test.rem(1060): Trig = Tuesday, 7 May, 1991 +../tests/test.rem(1060): Trig = Wednesday, 8 May, 1991 +../tests/test.rem(1060): Trig = Thursday, 9 May, 1991 +../tests/test.rem(1060): Trig = Friday, 10 May, 1991 +../tests/test.rem(1060): Trig = Saturday, 11 May, 1991 +../tests/test.rem(1060): Trig = Sunday, 12 May, 1991 +../tests/test.rem(1060): Trig = Monday, 13 May, 1991 +../tests/test.rem(1060): Trig = Tuesday, 14 May, 1991 +../tests/test.rem(1060): Trig = Wednesday, 15 May, 1991 +../tests/test.rem(1060): Trig = Thursday, 16 May, 1991 +../tests/test.rem(1060): Trig = Friday, 17 May, 1991 +../tests/test.rem(1060): Trig = Saturday, 18 May, 1991 +../tests/test.rem(1060): Trig = Sunday, 19 May, 1991 +../tests/test.rem(1060): Trig = Monday, 20 May, 1991 +../tests/test.rem(1060): Trig = Tuesday, 21 May, 1991 +../tests/test.rem(1060): Trig = Wednesday, 22 May, 1991 +../tests/test.rem(1060): Trig = Thursday, 23 May, 1991 +../tests/test.rem(1060): Trig = Friday, 24 May, 1991 +../tests/test.rem(1060): Trig = Saturday, 25 May, 1991 +../tests/test.rem(1060): Trig = Sunday, 26 May, 1991 +../tests/test.rem(1060): Trig = Monday, 27 May, 1991 +../tests/test.rem(1060): Trig = Tuesday, 28 May, 1991 +../tests/test.rem(1060): Trig = Wednesday, 29 May, 1991 +../tests/test.rem(1060): Trig = Thursday, 30 May, 1991 +../tests/test.rem(1060): Trig = Friday, 31 May, 1991 +../tests/test.rem(1060): Trig = Saturday, 1 June, 1991 +../tests/test.rem(1060): Trig = Sunday, 2 June, 1991 +../tests/test.rem(1060): Trig = Monday, 3 June, 1991 +../tests/test.rem(1060): Trig = Tuesday, 4 June, 1991 +../tests/test.rem(1060): Trig = Wednesday, 5 June, 1991 +../tests/test.rem(1060): Trig = Thursday, 6 June, 1991 +../tests/test.rem(1060): Trig = Friday, 7 June, 1991 +../tests/test.rem(1060): Trig = Saturday, 8 June, 1991 +../tests/test.rem(1060): Trig = Sunday, 9 June, 1991 +../tests/test.rem(1060): Trig = Monday, 10 June, 1991 +../tests/test.rem(1060): Trig = Tuesday, 11 June, 1991 +../tests/test.rem(1060): Trig = Wednesday, 12 June, 1991 +../tests/test.rem(1060): Trig = Thursday, 13 June, 1991 +../tests/test.rem(1060): Trig = Friday, 14 June, 1991 +../tests/test.rem(1060): Trig = Saturday, 15 June, 1991 +../tests/test.rem(1060): Trig = Sunday, 16 June, 1991 +../tests/test.rem(1060): Trig = Monday, 17 June, 1991 +../tests/test.rem(1060): Trig = Tuesday, 18 June, 1991 +../tests/test.rem(1060): Trig = Wednesday, 19 June, 1991 +../tests/test.rem(1060): Trig = Thursday, 20 June, 1991 +../tests/test.rem(1060): Trig = Friday, 21 June, 1991 +../tests/test.rem(1060): Trig = Saturday, 22 June, 1991 +../tests/test.rem(1060): Trig = Sunday, 23 June, 1991 +../tests/test.rem(1060): Trig = Monday, 24 June, 1991 +../tests/test.rem(1060): Trig = Tuesday, 25 June, 1991 +../tests/test.rem(1060): Trig = Wednesday, 26 June, 1991 +../tests/test.rem(1060): Trig = Thursday, 27 June, 1991 +../tests/test.rem(1060): Trig = Friday, 28 June, 1991 +../tests/test.rem(1060): Trig = Saturday, 29 June, 1991 +../tests/test.rem(1060): Trig = Sunday, 30 June, 1991 +../tests/test.rem(1060): Trig = Monday, 1 July, 1991 +../tests/test.rem(1060): Trig = Tuesday, 2 July, 1991 +../tests/test.rem(1060): Trig = Wednesday, 3 July, 1991 +../tests/test.rem(1060): Trig = Thursday, 4 July, 1991 +../tests/test.rem(1060): Trig = Friday, 5 July, 1991 +../tests/test.rem(1060): Trig = Saturday, 6 July, 1991 +../tests/test.rem(1060): Trig = Sunday, 7 July, 1991 +../tests/test.rem(1060): Trig = Monday, 8 July, 1991 +../tests/test.rem(1060): Trig = Tuesday, 9 July, 1991 +../tests/test.rem(1060): Trig = Wednesday, 10 July, 1991 +../tests/test.rem(1060): Trig = Thursday, 11 July, 1991 +../tests/test.rem(1060): Trig = Friday, 12 July, 1991 +../tests/test.rem(1060): Trig = Saturday, 13 July, 1991 +../tests/test.rem(1060): Trig = Sunday, 14 July, 1991 +../tests/test.rem(1060): Trig = Monday, 15 July, 1991 +../tests/test.rem(1060): Can't compute trigger REM SATISFY [version() > "01.00.00"] -../tests/test.rem(1055): SATISFY: expression has no reference to trigdate() or $T... -../tests/test.rem(1055): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1061): SATISFY: expression has no reference to trigdate() or $T... +../tests/test.rem(1061): Trig = Saturday, 16 February, 1991 version() => "05.04.02" "05.04.02" > "01.00.00" => 1 -../tests/test.rem(1055): Trig(satisfied) = Saturday, 16 February, 1991 +../tests/test.rem(1061): Trig(satisfied) = Saturday, 16 February, 1991 REM SATISFY [max(x, max(x, 1, 2, 3), 4, 5, 6) * 5] -../tests/test.rem(1056): SATISFY: expression has no reference to trigdate() or $T... -../tests/test.rem(1056): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1062): SATISFY: expression has no reference to trigdate() or $T... +../tests/test.rem(1062): Trig = Saturday, 16 February, 1991 x => 3 x => 3 max(3, 1, 2, 3) => 3 max(3, 3, 4, 5, 6) => 6 6 * 5 => 30 -../tests/test.rem(1056): Trig(satisfied) = Saturday, 16 February, 1991 +../tests/test.rem(1062): Trig(satisfied) = Saturday, 16 February, 1991 FSET gg(x) 0 REM WARN gg MSG Wookie -../tests/test.rem(1059): WARN function `gg' defined at ../tests/test.rem(1058) does not use its argument -../tests/test.rem(1059): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1065): WARN function `gg' defined at ../tests/test.rem(1064) does not use its argument +../tests/test.rem(1065): Trig = Saturday, 16 February, 1991 Entering UserFN gg(1) Leaving UserFN gg(1) => 0 Wookie REM AT 11:00 SCHED gg MSG blork -../tests/test.rem(1060): SCHED function `gg' defined at ../tests/test.rem(1058) does not use its argument -../tests/test.rem(1060): Trig = Saturday, 16 February, 1991 AT 11:00 +../tests/test.rem(1066): SCHED function `gg' defined at ../tests/test.rem(1064) does not use its argument +../tests/test.rem(1066): Trig = Saturday, 16 February, 1991 AT 11:00 blork REM OMITFUNC gg MSG hehe -../tests/test.rem(1061): OMITFUNC function `gg' defined at ../tests/test.rem(1058) does not use its argument -../tests/test.rem(1061): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1067): OMITFUNC function `gg' defined at ../tests/test.rem(1064) does not use its argument +../tests/test.rem(1067): Trig = Saturday, 16 February, 1991 hehe FSET gg(x,y,z) 0 -../tests/test.rem(1063): Function `gg' redefined: previously defined at ../tests/test.rem(1058) +../tests/test.rem(1069): Function `gg' redefined: previously defined at ../tests/test.rem(1064) REM WARN gg MSG Wookie -../tests/test.rem(1064): WARN function `gg' defined at ../tests/test.rem(1063) should take 1 argument but actually takes 3 -../tests/test.rem(1064): Trig = Saturday, 16 February, 1991 -../tests/test.rem(1064): Undefined WARN function: `gg' +../tests/test.rem(1070): WARN function `gg' defined at ../tests/test.rem(1069) should take 1 argument but actually takes 3 +../tests/test.rem(1070): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1070): Undefined WARN function: `gg' Wookie REM AT 11:00 SCHED gg MSG blork -../tests/test.rem(1065): SCHED function `gg' defined at ../tests/test.rem(1063) should take 1 argument but actually takes 3 -../tests/test.rem(1065): Trig = Saturday, 16 February, 1991 AT 11:00 +../tests/test.rem(1071): SCHED function `gg' defined at ../tests/test.rem(1069) should take 1 argument but actually takes 3 +../tests/test.rem(1071): Trig = Saturday, 16 February, 1991 AT 11:00 blork REM OMITFUNC gg MSG hehe -../tests/test.rem(1066): OMITFUNC function `gg' defined at ../tests/test.rem(1063) should take 1 argument but actually takes 3 -../tests/test.rem(1066): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1072): OMITFUNC function `gg' defined at ../tests/test.rem(1069) should take 1 argument but actually takes 3 +../tests/test.rem(1072): Trig = Saturday, 16 February, 1991 hehe FSET gg() 0 -../tests/test.rem(1068): Function `gg' redefined: previously defined at ../tests/test.rem(1063) +../tests/test.rem(1074): Function `gg' redefined: previously defined at ../tests/test.rem(1069) REM WARN gg MSG Wookie -../tests/test.rem(1069): WARN function `gg' defined at ../tests/test.rem(1068) should take 1 argument but actually takes 0 -../tests/test.rem(1069): Trig = Saturday, 16 February, 1991 -../tests/test.rem(1069): Undefined WARN function: `gg' +../tests/test.rem(1075): WARN function `gg' defined at ../tests/test.rem(1074) should take 1 argument but actually takes 0 +../tests/test.rem(1075): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1075): Undefined WARN function: `gg' Wookie REM AT 11:00 SCHED gg MSG blork -../tests/test.rem(1070): SCHED function `gg' defined at ../tests/test.rem(1068) should take 1 argument but actually takes 0 -../tests/test.rem(1070): Trig = Saturday, 16 February, 1991 AT 11:00 +../tests/test.rem(1076): SCHED function `gg' defined at ../tests/test.rem(1074) should take 1 argument but actually takes 0 +../tests/test.rem(1076): Trig = Saturday, 16 February, 1991 AT 11:00 blork REM OMITFUNC gg MSG hehe -../tests/test.rem(1071): OMITFUNC function `gg' defined at ../tests/test.rem(1068) should take 1 argument but actually takes 0 -../tests/test.rem(1071): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1077): OMITFUNC function `gg' defined at ../tests/test.rem(1074) should take 1 argument but actually takes 0 +../tests/test.rem(1077): Trig = Saturday, 16 February, 1991 hehe FSET gg(x) x-x -../tests/test.rem(1073): Function `gg' redefined: previously defined at ../tests/test.rem(1068) +../tests/test.rem(1079): Function `gg' redefined: previously defined at ../tests/test.rem(1074) REM WARN gg MSG Wookie -../tests/test.rem(1074): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1080): Trig = Saturday, 16 February, 1991 Entering UserFN gg(1) x => 1 x => 1 @@ -5721,27 +5843,27 @@ Leaving UserFN gg(1) => 0 Wookie REM AT 11:00 SCHED gg MSG blork -../tests/test.rem(1075): Trig = Saturday, 16 February, 1991 AT 11:00 +../tests/test.rem(1081): Trig = Saturday, 16 February, 1991 AT 11:00 blork REM OMITFUNC gg MSG hehe -../tests/test.rem(1076): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1082): Trig = Saturday, 16 February, 1991 hehe REM WARN not_defined MSG Wookie -../tests/test.rem(1078): Trig = Saturday, 16 February, 1991 -../tests/test.rem(1078): Undefined WARN function: `not_defined' +../tests/test.rem(1084): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1084): Undefined WARN function: `not_defined' Wookie REM AT 11:00 SCHED not_defined MSG blork -../tests/test.rem(1079): Undefined SCHED function: `not_defined' -../tests/test.rem(1079): Trig = Saturday, 16 February, 1991 AT 11:00 +../tests/test.rem(1085): Undefined SCHED function: `not_defined' +../tests/test.rem(1085): Trig = Saturday, 16 February, 1991 AT 11:00 blork REM OMITFUNC not_defined MSG hehe -../tests/test.rem(1080): Undefined OMITFUNC function: `not_defined' -../tests/test.rem(1080): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1086): Undefined OMITFUNC function: `not_defined' +../tests/test.rem(1086): Trig = Saturday, 16 February, 1991 hehe @@ -5833,49 +5955,49 @@ set xyz ! "0" # Test error messages for function calls with too many / too few args set zxk version(1) -../tests/test.rem(1127): version: Too many arguments +../tests/test.rem(1133): version: Too many arguments version(1) ^-- here set zxk max() -../tests/test.rem(1128): max: Not enough arguments +../tests/test.rem(1134): max: Not enough arguments max() ^-- here fset dooby(x) 1 set zxk dooby() dooby() => Not enough arguments -../tests/test.rem(1131): dooby(): Not enough arguments +../tests/test.rem(1137): dooby(): Not enough arguments set zxk dooby(1, 2) dooby(?, ?) => Too many arguments -../tests/test.rem(1132): dooby(): Too many arguments +../tests/test.rem(1138): dooby(): Too many arguments set zxk dooby(1) Entering UserFN dooby(1) Leaving UserFN dooby(1) => 1 REM 1 Jan 1873 MSG This should fail -../tests/test.rem(1135): `1873' is not recognized as a year (1990-5990) or a day number (1-31) +../tests/test.rem(1141): `1873' is not recognized as a year (1990-5990) or a day number (1-31) REM 1873-12-11 MSG Also bad. -../tests/test.rem(1136): Bad date specification: `1873-12-11' +../tests/test.rem(1142): Bad date specification: `1873-12-11' # Test $SuppressImplicitWarnings REM wookie -../tests/test.rem(1139): Missing REM type; assuming MSG -../tests/test.rem(1139): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1145): Missing REM type; assuming MSG +../tests/test.rem(1145): Trig = Saturday, 16 February, 1991 wookie Barf -../tests/test.rem(1140): Unrecognized command; interpreting as REM -../tests/test.rem(1140): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1146): Unrecognized command; interpreting as REM +../tests/test.rem(1146): Trig = Saturday, 16 February, 1991 Barf set $SuppressImplicitWarnings 1 REM wookie -../tests/test.rem(1143): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1149): Trig = Saturday, 16 February, 1991 wookie Barf -../tests/test.rem(1144): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1150): Trig = Saturday, 16 February, 1991 Barf @@ -5883,7 +6005,7 @@ Barf FSET square(x) x*x REM MSG [square(9)] -../tests/test.rem(1149): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1155): Trig = Saturday, 16 February, 1991 Entering UserFN square(9) x => 9 x => 9 @@ -5894,7 +6016,7 @@ Leaving UserFN square(9) => 81 FRENAME square square REM MSG [square(9)] -../tests/test.rem(1152): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1158): Trig = Saturday, 16 February, 1991 Entering UserFN square(9) x => 9 x => 9 @@ -5905,16 +6027,16 @@ Leaving UserFN square(9) => 81 FRENAME nonexistent square REM MSG [square(9)] -../tests/test.rem(1155): Trig = Saturday, 16 February, 1991 -../tests/test.rem(1155): Undefined function: `square' +../tests/test.rem(1161): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1161): Undefined function: `square' FSET square(x) x*x FRENAME square sq REM MSG [square(9)] -../tests/test.rem(1159): Trig = Saturday, 16 February, 1991 -../tests/test.rem(1159): Undefined function: `square' +../tests/test.rem(1165): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1165): Undefined function: `square' REM MSG [sq(9)] -../tests/test.rem(1160): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1166): Trig = Saturday, 16 February, 1991 Entering UserFN sq(9) x => 9 x => 9 @@ -5925,7 +6047,7 @@ Leaving UserFN sq(9) => 81 FRENAME sq square REM MSG [square(9)] -../tests/test.rem(1163): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1169): Trig = Saturday, 16 February, 1991 Entering UserFN square(9) x => 9 x => 9 @@ -5934,58 +6056,58 @@ Leaving UserFN square(9) => 81 81 REM MSG [sq(9)] -../tests/test.rem(1164): Trig = Saturday, 16 February, 1991 -../tests/test.rem(1164): Undefined function: `sq' +../tests/test.rem(1170): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1170): Undefined function: `sq' FRENAME square max -../tests/test.rem(1166): Attempt to redefine built-in function: `max' +../tests/test.rem(1172): Attempt to redefine built-in function: `max' FRENAME max square -../tests/test.rem(1167): Attempt to redefine built-in function: `max' +../tests/test.rem(1173): Attempt to redefine built-in function: `max' FRENAME max min -../tests/test.rem(1168): Attempt to redefine built-in function: `min' +../tests/test.rem(1174): Attempt to redefine built-in function: `min' # Test $DefaultDelta SET $DefaultDelta 0 CLEAR-OMIT-CONTEXT OMIT 17 Feb 1991 REM 18 Feb MSG This should not be seen -../tests/test.rem(1174): Trig = Monday, 18 February, 1991 +../tests/test.rem(1180): Trig = Monday, 18 February, 1991 SET $DefaultDelta 1 REM 18 Feb MSG This should also not be seen -../tests/test.rem(1177): Trig = Monday, 18 February, 1991 +../tests/test.rem(1183): Trig = Monday, 18 February, 1991 SET $DefaultDelta 2 REM 18 Feb MSG But this should be seen -../tests/test.rem(1180): Trig = Monday, 18 February, 1991 +../tests/test.rem(1186): Trig = Monday, 18 February, 1991 But this should be seen REM 18 Feb ++1 MSG Explicit delta should not be seen. -../tests/test.rem(1182): Trig = Monday, 18 February, 1991 +../tests/test.rem(1188): Trig = Monday, 18 February, 1991 REM 18 Feb ++0 MSG Explicit delta should not be seen. -../tests/test.rem(1183): Trig = Monday, 18 February, 1991 +../tests/test.rem(1189): Trig = Monday, 18 February, 1991 REM 18 Feb +1 MSG Explicit delta should be seen - don't count OMITS -../tests/test.rem(1185): Trig = Monday, 18 February, 1991 +../tests/test.rem(1191): Trig = Monday, 18 February, 1991 Explicit delta should be seen - don't count OMITS REM 18 Feb +0 MSG Explicit delta should not be seen. -../tests/test.rem(1186): Trig = Monday, 18 February, 1991 +../tests/test.rem(1192): Trig = Monday, 18 February, 1991 # Test msgsuffix FSET msgsuffix(x) "On the next line" REM MSG Hello -../tests/test.rem(1190): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1196): Trig = Saturday, 16 February, 1991 Entering UserFN msgsuffix(5000) Leaving UserFN msgsuffix(5000) => "On the next line" Hello On the next line FSET msgsuffix(x) char(8) + " on the same line" -../tests/test.rem(1192): Function `msgsuffix' redefined: previously defined at ../tests/test.rem(1189) +../tests/test.rem(1198): Function `msgsuffix' redefined: previously defined at ../tests/test.rem(1195) REM MSG Hello -../tests/test.rem(1193): Trig = Saturday, 16 February, 1991 +../tests/test.rem(1199): Trig = Saturday, 16 February, 1991 Entering UserFN msgsuffix(5000) char(8) => "\b" "\b" + " on the same line" => "\b on the same line" @@ -6115,9 +6237,9 @@ TRANSLATE "May" "TxMay" TRANSLATE "Saturday" "TxSaturday" TRANSLATE "missing quote" "missing a quote -../tests/test.rem(1264): Missing quote +../tests/test.rem(1270): Missing quote TRANSLATE "missing quote -../tests/test.rem(1265): Missing quote +../tests/test.rem(1271): Missing quote DO torture-test.rem # Turn off some debugging to make output a bit easier on the eyes... @@ -16125,8 +16247,8 @@ Dedup-9996 Dedup-9997 Dedup-9998 Dedup-9999 -../tests/test.rem(1270): `/': Ya tried to divide by zero, ya FOOOL!!!!! -../tests/test.rem(1272): `/': Division by zero +../tests/test.rem(1276): `/': Ya tried to divide by zero, ya FOOOL!!!!! +../tests/test.rem(1278): `/': Division by zero _("moo") => "bark" _("Moo") => "Bark" _("MOO") => "MOO" @@ -16256,7 +16378,7 @@ $Was is was # Catch an error fixed in commit 356b562d75852dafb2ffc6b1122500a98fa7d9d0 IF 1 INCLUDE /non/existent/file/should/not/work/wookie -../tests/test.rem(1443): Can't open file: /non/existent/file/should/not/work/wookie +../tests/test.rem(1449): Can't open file: /non/existent/file/should/not/work/wookie ENDIF do "with space.rem" @@ -16281,7 +16403,7 @@ catcherr() => "Division by zero" set a catch(4/0, 1/0) 4 / 0 => Division by zero 1 / 0 => Division by zero -../tests/test.rem(1455): `/': Division by zero +../tests/test.rem(1461): `/': Division by zero catch(*Division by zero*, *Division by zero*) => Division by zero set m catcherr() catcherr() => "Division by zero" @@ -16363,7 +16485,7 @@ monnum("Dec") => 12 set a monnum("not a month") monnum("not a month") => Invalid month name -../tests/test.rem(1491): monnum(): Invalid month name +../tests/test.rem(1497): monnum(): Invalid month name # Test wkdaynum("string") set a wkdaynum("Sun") @@ -16398,76 +16520,76 @@ wkdaynum("saturday") => 6 set a wkdaynum("cabbage") wkdaynum("cabbage") => Invalid weekday name -../tests/test.rem(1510): wkdaynum(): Invalid weekday name +../tests/test.rem(1516): wkdaynum(): Invalid weekday name # Test non-constant debugging DEBUG +n DEBUG -x IF today() > '1990-01-01' -../tests/test.rem(1515): Non-constant built-in function `today' makes expression non-constant +../tests/test.rem(1521): Non-constant built-in function `today' makes expression non-constant SET a 1 -../tests/test.rem(1516): Variable assignment considered non-constant because of context +../tests/test.rem(1522): Variable assignment considered non-constant because of context ELSE SET a 2 ENDIF SET a 1 SET a version() SET a today() -../tests/test.rem(1522): Non-constant built-in function `today' makes expression non-constant +../tests/test.rem(1528): Non-constant built-in function `today' makes expression non-constant set b a -../tests/test.rem(1523): Global variable `a' makes expression non-constant +../tests/test.rem(1529): Global variable `a' makes expression non-constant FUNSET f g fset f(x) today() + x fset g(x) f(x) + 13 set a g(3) -../tests/test.rem(1527): Non-constant built-in function `today' makes expression non-constant +../tests/test.rem(1533): Non-constant built-in function `today' makes expression non-constant FSET o(x) iif(x != 0, 0, 0) REM OMITFUNC o MSG foo -../tests/test.rem(1530): OMITFUNC counts as a non-constant expression +../tests/test.rem(1536): OMITFUNC counts as a non-constant expression foo REM SCANFROM -7 MSG foo -../tests/test.rem(1531): Relative SCANFROM counts as a non-constant expression +../tests/test.rem(1537): Relative SCANFROM counts as a non-constant expression REM MSG [g(3)] -../tests/test.rem(1533): Non-constant built-in function `today' makes expression non-constant +../tests/test.rem(1539): Non-constant built-in function `today' makes expression non-constant 1991-03-04 # Check user-functions for constant-ness FUNSET f IF today() > '1990-01-01' -../tests/test.rem(1537): Non-constant built-in function `today' makes expression non-constant +../tests/test.rem(1543): Non-constant built-in function `today' makes expression non-constant FSET f(x) 2 -../tests/test.rem(1538): Function definition considered non-constant because of context +../tests/test.rem(1544): Function definition considered non-constant because of context ELSE FSET f(x) 3 ENDIF SET a f(1) -../tests/test.rem(1543): User function `f' defined in non-constant context makes expression non-constant +../tests/test.rem(1549): User function `f' defined in non-constant context makes expression non-constant FUNSET f FSET f(x) '1990-01-01' IF today() < '1990-01-01' -../tests/test.rem(1547): Non-constant built-in function `today' makes expression non-constant +../tests/test.rem(1553): Non-constant built-in function `today' makes expression non-constant FSET f(x) '2025-12-31' -../tests/test.rem(1548): Potential function definition considered non-constant because of context +../tests/test.rem(1554): Potential function definition considered non-constant because of context ENDIF set a f(1) -../tests/test.rem(1551): User function `f' defined in non-constant context makes expression non-constant +../tests/test.rem(1557): User function `f' defined in non-constant context makes expression non-constant FUNSET F SET a 1 IF today() < '1990-01-01' -../tests/test.rem(1555): Non-constant built-in function `today' makes expression non-constant +../tests/test.rem(1561): Non-constant built-in function `today' makes expression non-constant SET a 2 -../tests/test.rem(1556): Potential variable assignment considered non-constant because of context +../tests/test.rem(1562): Potential variable assignment considered non-constant because of context ENDIF set b const(today()) -../tests/test.rem(1559): Non-constant built-in function `today' makes expression non-constant -../tests/test.rem(1559): Non-constant expression converted to constant by `const' built-in function +../tests/test.rem(1565): Non-constant built-in function `today' makes expression non-constant +../tests/test.rem(1565): Non-constant expression converted to constant by `const' built-in function dump -c a b Variable Value @@ -16494,16 +16616,16 @@ Variable Value a 1991-02-17 set a eval("1 +") -eval("1 +") => ../tests/test.rem(1570): Unexpected end of line +eval("1 +") => ../tests/test.rem(1576): Unexpected end of line 1 + ^-- here Unexpected end of line set a eval("1/0") eval("1/0") => 1 / 0 => Division by zero -../tests/test.rem(1571): `/': Division by zero +../tests/test.rem(1577): `/': Division by zero Division by zero set a eval("1 / / 2") -eval("1 / / 2") => ../tests/test.rem(1572): Illegal character `/' +eval("1 / / 2") => ../tests/test.rem(1578): Illegal character `/' 1 / / 2 ^-- here Illegal character @@ -16523,7 +16645,7 @@ set a shell("echo foo") shell("echo foo") => "foo" set a eval("shell(\"echo foo\")") eval("shell(\"echo foo\")") => shell("echo foo") => RUN disabled -../tests/test.rem(1579): shell(): RUN disabled +../tests/test.rem(1585): shell(): RUN disabled RUN disabled set a shell("echo foo") shell("echo foo") => "foo" @@ -16536,8 +16658,8 @@ Leaving UserFN i() => "foo" set a eval("i()") eval("i()") => Entering UserFN i() shell("echo foo") => RUN disabled -../tests/test.rem(1584): shell(): RUN disabled - ../tests/test.rem(1582): [#0] In function `i' +../tests/test.rem(1590): shell(): RUN disabled + ../tests/test.rem(1588): [#0] In function `i' Leaving UserFN i() => RUN disabled RUN disabled set a i() @@ -16550,19 +16672,19 @@ set b eval(a) a => "eval(\"1\")+ shell(\"ls\")" eval("eval(\"1\")+ shell(\"ls\")") => eval("1") => 1 shell("ls") => RUN disabled -../tests/test.rem(1588): shell(): RUN disabled +../tests/test.rem(1594): shell(): RUN disabled RUN disabled # "value" should use lazy evaluation set a value(4:33) value(04:33) => Type mismatch -../tests/test.rem(1591): Type mismatch +../tests/test.rem(1597): Type mismatch set a value('2020-01-01', 42) value(2020-01-01, ?) => Type mismatch -../tests/test.rem(1592): Type mismatch +../tests/test.rem(1598): Type mismatch set a value("nosuchvar") value("nosuchvar") => Undefined variable -../tests/test.rem(1593): Undefined variable +../tests/test.rem(1599): Undefined variable set a value("nosuchvar", 42) value("nosuchvar", 42) => 42 set a value("a", 42) @@ -16572,11 +16694,11 @@ value("a") => 42 DEBUG -x DEBUG -e -../tests/test.rem(1603): eval(): Too many recursive function calls +../tests/test.rem(1609): eval(): Too many recursive function calls Base: 1991-02-09 Base: 1991-02-09 -../tests/test.rem(1611): Expired -../tests/test.rem(1612): Expired +../tests/test.rem(1617): Expired +../tests/test.rem(1618): Expired trigvalid = 1; trigdate = 1991-01-14 trigvalid = 0; trigdate = 0 daysinmon(2, 2000) => 29 @@ -16588,24 +16710,24 @@ daysinmon("Feb", 2001) => 28 daysinmon("March", 2000) => 31 daysinmon("March", 2001) => 31 daysinmon("Cabbage", 2001) => Invalid month name -../tests/test.rem(1639): daysinmon(): Invalid month name +../tests/test.rem(1645): daysinmon(): Invalid month name daysinmon(2000-02-14) => 29 daysinmon(2001-02-14) => 28 daysinmon(2000-04-14) => 30 daysinmon(2001-04-14) => 30 date(2020, "April", 15) => 2020-04-15 date(2020, "Carrot", 12) => Invalid month name -../tests/test.rem(1647): date(): Invalid month name +../tests/test.rem(1653): date(): Invalid month name datetime(2020, "April", 13, 04:44) => 2020-04-13@04:44 datetime(2020, "April", 13, 4, 44) => 2020-04-13@04:44 datetime(2020, "Lettuce", 13, 04:44) => Invalid month name -../tests/test.rem(1650): datetime(): Invalid month name +../tests/test.rem(1656): datetime(): Invalid month name datetime(2020, "Lettuce", 13, 4, 44) => Invalid month name -../tests/test.rem(1651): datetime(): Invalid month name +../tests/test.rem(1657): datetime(): Invalid month name wkdaynum("Tue") => 2 wkdaynum("Wednesday") => 3 wkdaynum("telephone") => Invalid weekday name -../tests/test.rem(1655): wkdaynum(): Invalid weekday name +../tests/test.rem(1661): wkdaynum(): Invalid weekday name Variable hash table statistics: Entries: 100143; Buckets: 87719; Non-empty Buckets: 66301 Maxlen: 5; Minlen: 0; Avglen: 1.142; Stddev: 0.878; Avg nonempty len: 1.510 @@ -24461,12 +24583,14 @@ omitfunc once pop pop-omit-context +pop-sysvars preserve priority ps psfile push push-omit-context +push-sysvars rem run satisfy @@ -24880,6 +25004,8 @@ TRANSLATE "Illegal character" "" TRANSLATE "Invalid weekday name" "" TRANSLATE "Out of memory" "" TRANSLATE "Ill-formed number" "" +TRANSLATE "Warning: PUSH-SYSVARS without matching POP-SYSVARS" "" +TRANSLATE "POP-SYSVARS without matching PUSH-SYSVARS" "" TRANSLATE "Can't coerce" "" TRANSLATE "Type mismatch" "" TRANSLATE "Date overflow" "" @@ -25008,6 +25134,7 @@ TRANSLATE "Not setting $OnceFile: Already processed a reminder with a ONCE claus TRANSLATE "OMIT: UNTIL not allowed; did you mean THROUGH?" "" TRANSLATE "OMITFUNC counts as a non-constant expression" "" TRANSLATE "POP-OMIT-CONTEXT at %s:%d matches PUSH-OMIT-CONTEXT in different file: %s:%d" "" +TRANSLATE "POP-SYSVARS at %s:%d matches PUSH-SYSVARS in different file: %s:%d" "" TRANSLATE "Potential function definition considered non-constant because of context" "" TRANSLATE "Potential variable assignment considered non-constant because of context" "" TRANSLATE "Reading `%s': Found in cache" "" diff --git a/tests/test.rem b/tests/test.rem index eff9ec9d..390896f0 100644 --- a/tests/test.rem +++ b/tests/test.rem @@ -272,7 +272,7 @@ set $LatDeg 30 set $LatMin 30 set $LatSec 0 set $LongDeg -25 -set $LongMin 15 +set $LongMin -15 set $LongSec 0 set a000 abs(1) @@ -478,6 +478,12 @@ REM MAYBE-UNCOMPUTABLE Mon OMIT Mon SKIP MSG Never ever ever... REM MAYBE-UNCOMPUTABLE Mon SATISFY [wkdaynum($T) == 3] MSG Nope nope... dump +PUSH-SYSVARS +set $Tomorrow "HAHA, tomorrow" +set $Latitude "0" +set $DefaultColor "42 42 42" +dump $ +POP-SYSVARS dump $ msg [$April]% msg [$August]%