Compare commits

...

3 Commits

Author SHA1 Message Date
Dianne Skoll a6c166ae0c Update release notes.
Remind unit tests / tests (push) Successful in 36s
2024-09-16 09:41:12 -04:00
Dianne Skoll e9c89b770f Bump version to 05.00.06 2024-09-16 08:29:58 -04:00
Dianne Skoll df6298bd63 Add test for $SuppressImplicitWarnings
Remind unit tests / tests (push) Successful in 1m15s
2024-09-15 16:59:46 -04:00
5 changed files with 464 additions and 448 deletions
Vendored
+9 -9
View File
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for remind 05.00.05.
# Generated by GNU Autoconf 2.71 for remind 05.00.06.
#
#
# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
@@ -608,8 +608,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='remind'
PACKAGE_TARNAME='remind'
PACKAGE_VERSION='05.00.05'
PACKAGE_STRING='remind 05.00.05'
PACKAGE_VERSION='05.00.06'
PACKAGE_STRING='remind 05.00.06'
PACKAGE_BUGREPORT=''
PACKAGE_URL='https://dianne.skoll.ca/projects/remind/'
@@ -1264,7 +1264,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures remind 05.00.05 to adapt to many kinds of systems.
\`configure' configures remind 05.00.06 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1326,7 +1326,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of remind 05.00.05:";;
short | recursive ) echo "Configuration of remind 05.00.06:";;
esac
cat <<\_ACEOF
@@ -1414,7 +1414,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
remind configure 05.00.05
remind configure 05.00.06
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1864,7 +1864,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by remind $as_me 05.00.05, which was
It was created by remind $as_me 05.00.06, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -4703,7 +4703,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by remind $as_me 05.00.05, which was
This file was extended by remind $as_me 05.00.06, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -4768,7 +4768,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
remind config.status 05.00.05
remind config.status 05.00.06
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
+1 -1
View File
@@ -1,6 +1,6 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(remind, 05.00.05, , , https://dianne.skoll.ca/projects/remind/)
AC_INIT(remind, 05.00.06, , , https://dianne.skoll.ca/projects/remind/)
AC_CONFIG_SRCDIR([src/queue.c])
cat <<'EOF'
+162 -134
View File
@@ -1,89 +1,117 @@
CHANGES TO REMIND
* VERSION 5.0 Patch 6 - 2024-09-16
- NEW FEATURE: remind: Include a file containing the dates of Chinese
New Year through 2050.
- NEW FEATURE: remind: Add $SuppressImplicitWarnings system variable.
Setting this to 1 suppresses the warnings "Unrecognized command;
interpreting as REM" and "Missing REM type; assuming MSG"
- NEW FEATURE: remind: Add --print-tokens command-line argument. This
simply prints all of Remind's built-in tokens, functions, and system
variables. It's designed to help people who are writing editor
add-ons for syntax highlighting.
- CHANGE: remind: allow '12:34' to be parsed as a TIME constant. This
matches DATEs and DATETIMEs which are enclosed in single-quotes.
(The quotes are optional for TIME constants, however.)
- IMPROVEMENT: Improve many error emssages and warnings.
- UPDATE: contrib/ical2rem: Update to upstream version 0.7
- IMPROVEMENT: contrib/remind-conf-mode: Improve the Emacs
remind-conf-mode package. Add new keywords and make comment
highlighting correct.
- FIX: remind man page: Remove note saying REM can be omitted.
* VERSION 5.0 Patch 5 - 2024-09-02
* CHANGE: remind: When using the "-c" option and with the SHADE special
- CHANGE: remind: When using the "-c" option and with the SHADE special
enabled, shade the entire calendar box including the line containing the
day number.
* IMPROVEMENT: remind: Better error messages when diagnosing certain
- IMPROVEMENT: remind: Better error messages when diagnosing certain
errors in expressions.
* IMPROVEMENT: include/holidays/jewish.rem: Remove unnecessary _h()
- IMPROVEMENT: include/holidays/jewish.rem: Remove unnecessary _h()
function definition.
* BUG FIX: remind: In a couple of spots when we parsed a character, we did
- BUG FIX: remind: In a couple of spots when we parsed a character, we did
not check for an error return. This has been fixed.
* BUG FIX: remind: Fix edge-case bugs in "remind -c" output formatting.
- BUG FIX: remind: Fix edge-case bugs in "remind -c" output formatting.
* BUG FIX: make test: Fix a test that was broken for all of September 2024.
- BUG FIX: make test: Fix a test that was broken for all of September 2024.
* BUG FIX: remind: Fix a couple of potential file-descriptor leaks.
- BUG FIX: remind: Fix a couple of potential file-descriptor leaks.
* BUG FIX: contrib/ical2rem.pl: Replace "SCHED _sfun" with "+15" to
- BUG FIX: contrib/ical2rem.pl: Replace "SCHED _sfun" with "+15" to
hard-code 15-minutes advance warning rather than using an undefined
scheduling function. If this is not what you want, you should edit
ical2rem.pl to suit your taste; it's not officially part of Remind and
is meant more as a starting point for you to customize than a finished
product.
* DOCUMENTATION FIX: Remove obsolete info from Remind man page.
- DOCUMENTATION FIX: Remove obsolete info from Remind man page.
* VERSION 5.0 Patch 4 - 2024-08-29
* IMPROVEMENT: remind: When checking if a SATISFY expression refers to the
- IMPROVEMENT: remind: When checking if a SATISFY expression refers to the
trigger date, look recursively at any user-defined functions it calls.
This reduces spurious warnings.
* CHANGE: remind: Allow any type to be used as the test argument for IIF.
- CHANGE: remind: Allow any type to be used as the test argument for IIF.
* IMPROVEMENT: remind man page: Clarify how various types are treated
- IMPROVEMENT: remind man page: Clarify how various types are treated
in boolean context.
* VERSION 5.0 Patch 3 - 2024-08-28
* IMPROVEMENT: remind: Preserve newlines ("%_" sequences) in calendar
- IMPROVEMENT: remind: Preserve newlines ("%_" sequences) in calendar
mode in most cases. See the remind man page for details.
* IMPROVEMENT: rem2pdf: rem2pdf can now produce PostScript and
- IMPROVEMENT: rem2pdf: rem2pdf can now produce PostScript and
Encapsulated PostScript output in addition to PDF and SVG.
* IMPROVEMENT: remind: Emit warnings if a subst_XXX function takes the
- IMPROVEMENT: remind: Emit warnings if a subst_XXX function takes the
wrong number of arguments, or for custom sequences, if the function
is not defined.
* IMPROVEMENT: remind: Emit warnings if WARN/SCHED/OMITFUNC functions
- IMPROVEMENT: remind: Emit warnings if WARN/SCHED/OMITFUNC functions
do not reference their argument.
* IMPROVEMENT: remind: Allow strings to be used with logical
- IMPROVEMENT: remind: Allow strings to be used with logical
operators. The empty string "" is considered false and all other
strings are considered true.
* IMPROVEMENT: remind: Emit warnings for lines that are implicitly
- IMPROVEMENT: remind: Emit warnings for lines that are implicitly
treated as REM commands; add warnings for REM commands that are
implicitly treated as MSG-type reminders.
* IMPROVEMENT: remind: Add an optional fourth argument to the built-in
- IMPROVEMENT: remind: Add an optional fourth argument to the built-in
ampm() function that specifies not to suppress a leading zero in the
hour component.
* IMPROVEMENT: remind: If a SATISFY expression is not constant and
- IMPROVEMENT: remind: If a SATISFY expression is not constant and
doesn't reference the trigger date somehow, issue a warning.
* IMPROVEMENT: remind: Add a warning if a user-defined function is
- IMPROVEMENT: remind: Add a warning if a user-defined function is
redefined. If you do have a use-case that requires you to redefine
a function, simply FUNSET it first before FSETting it for the second
time.
* DOCUMENTATION FIX: Clarify man pages and remove some information that
- DOCUMENTATION FIX: Clarify man pages and remove some information that
has become incorrect as Remind has evolved.
* BUG FIX: Fix typos in man pages
- BUG FIX: Fix typos in man pages
* VERSION 5.0 Patch 2 - 2024-07-26
* IMPROVEMENT: Remind: Revamp how ONCE works. You can now set a
- IMPROVEMENT: Remind: Revamp how ONCE works. You can now set a
special variable $OnceFile to be the path to a timestamp file. The
ONCE directive uses this timestamp file to track when it was last
run rather than the access date of the main reminder script. This
@@ -91,38 +119,38 @@ CHANGES TO REMIND
(which might not be maintained accurately) and is not affected if
you edit your reminder script.
* CHANGE: Taking input from stdin no longer implies the "-o" option; ONCE can
- CHANGE: Taking input from stdin no longer implies the "-o" option; ONCE can
work if you set $OnceFile
* CHANGE: Any of the -c, -n, -p and -s options implicitly enable the
- CHANGE: Any of the -c, -n, -p and -s options implicitly enable the
-o option. As before, specifying a repeat factor *N or a date that
is not today on the command-line also implies -o.
* MINOR NEW FEATURE: Rem2PDF: Add the "--svg" command-line option to produce
- MINOR NEW FEATURE: Rem2PDF: Add the "--svg" command-line option to produce
SVG output rather than PDF.
* MINOR IMPROVEMENT: Remind: Improve the storage efficiency of short
- MINOR IMPROVEMENT: Remind: Improve the storage efficiency of short
string constants in compiled expression trees.
* MINOR IMPROVEMENT: Remind: Remove some obsolete macro definitions
- MINOR IMPROVEMENT: Remind: Remove some obsolete macro definitions
* VERSION 5.0 Patch 1 - 2024-06-08
* MINOR IMPROVEMENT: Add short-circuit evaluation to the isany() function,
- MINOR IMPROVEMENT: Add short-circuit evaluation to the isany() function,
which now only evaluates those arguments absolutely necessary to determine
the result.
* BUG FIX: Mark weekno() as a non-constant function (the zero-argument form
- BUG FIX: Mark weekno() as a non-constant function (the zero-argument form
depends on external conditions.)
* BUG FIX: Fix a couple of memory leaks.
- BUG FIX: Fix a couple of memory leaks.
* BUG FIX: Don't rely on support for unnamed function parameters; this caused
- BUG FIX: Don't rely on support for unnamed function parameters; this caused
compilation failures with older versions of gcc.
* VERSION 5.0 Patch 0 - 2024-06-06
* MAJOR CHANGE: The expression evaluation engine has been completely replaced
- MAJOR CHANGE: The expression evaluation engine has been completely replaced
with a new one that splits parsing and evaluating into two separate steps.
It also features short-circuit evaluation of &&, ||, iif() and choose().
This should speed up expression-heavy reminder files.
@@ -153,56 +181,56 @@ CHANGES TO REMIND
and it will work for values of n that don't cause integer overflow.
* IMPROVEMENT: If there's an unmatched PUSH-OMIT-CONTEXT, print the
- IMPROVEMENT: If there's an unmatched PUSH-OMIT-CONTEXT, print the
filename and line number containing it.
* IMPROVEMENT: If there's an IF with a missing ENDIF, print the filename
- IMPROVEMENT: If there's an IF with a missing ENDIF, print the filename
and line number of the IF statement.
* NEW FEATURE: Add EXPR OFF command to completely disable expression
- NEW FEATURE: Add EXPR OFF command to completely disable expression
evaluation. Useful if you INCLUDE files that you don't expect to
contain expressions and may come from slightly untrustworthy sources.
* NEW FEATURE: Add $ExpressionTimeLimit system variable to enforce a
- NEW FEATURE: Add $ExpressionTimeLimit system variable to enforce a
maximum limit on how long evaluating an expression is allowed to take.
* NEW FEATURE: Add --max-execution-time=n command-line option to terminate
- NEW FEATURE: Add --max-execution-time=n command-line option to terminate
Remind if it runs for more than n seconds.
* CHANGE: Make the command-line option "-ifoo" equivalent to "-ifoo=0"
- CHANGE: Make the command-line option "-ifoo" equivalent to "-ifoo=0"
* CHANGE: Permit a literal [ in a reminder by using the sequence [[
- CHANGE: Permit a literal [ in a reminder by using the sequence [[
The old ["["] still works.
* BUG FIX: In "purge" mode, Remind would sometimes purge reminders with
- BUG FIX: In "purge" mode, Remind would sometimes purge reminders with
a relative "SCANFROM" which haven't actually expired. This has been fixed.
* BUG FIX: Disallow something like: FSET func(x, x) expr
- BUG FIX: Disallow something like: FSET func(x, x) expr
which shouldn't have been allowed in the first place.
* BUG FIX: Replace leading spaces with tabs in Makefiles (per Emanuele Torre
- BUG FIX: Replace leading spaces with tabs in Makefiles (per Emanuele Torre
and Tim Chase)
* VERSION 4.3 Patch 7 - 2024-04-29
* IMPROVEMENT: build.tk: Add a note if build.tk obtains default settings
- IMPROVEMENT: build.tk: Add a note if build.tk obtains default settings
from an existing Remind installation.
* IMPROVEMENT: configure: Pass all args to AC_INIT including the Remind
- IMPROVEMENT: configure: Pass all args to AC_INIT including the Remind
home page. Remove some unused autoconf cruft.
* IMPROVEMENT: Use standard C library versions of strdup, strcasecmp and
- IMPROVEMENT: Use standard C library versions of strdup, strcasecmp and
strncasecmp where available, rather than using our own versions.
* MINOR FEATURE: remind: Make $Tt a synonym for trigtime().
- MINOR FEATURE: remind: Make $Tt a synonym for trigtime().
* BUG FIX: remind: Make sure shellescape() doesn't mangle UTF-8 characters
- BUG FIX: remind: Make sure shellescape() doesn't mangle UTF-8 characters
with high-bits set.
* BUG FIX: remind: Don't rely on undefined behavior of "%" operator in
- BUG FIX: remind: Don't rely on undefined behavior of "%" operator in
the ord() built-in function.
* BUG FIX: remind: Do not clear out trigtime() unnecessarily. Before,
- BUG FIX: remind: Do not clear out trigtime() unnecessarily. Before,
you could not write things like the following; now you can:
REM Tue AT 11:30 DURATION 0:30 MSG Thing 1
@@ -212,90 +240,90 @@ CHANGES TO REMIND
for successive reminders that should be moved as a block if the time of
the first one changes.
* BUG FIX: Don't update trigdate() or trigtime() while parsing a REM
- BUG FIX: Don't update trigdate() or trigtime() while parsing a REM
statement... only when actually computing the trigger.
* VERSION 4.3 Patch 6 - 2024-04-02
* NEW FILE: Add [$SysInclude]/holidays/pt.rem - Portuguese holidays, courtesy
- NEW FILE: Add [$SysInclude]/holidays/pt.rem - Portuguese holidays, courtesy
of Joop Kiefte.
* BUG FIX: remind: Fix compile error on systems that don't support inotify(7).
- BUG FIX: remind: Fix compile error on systems that don't support inotify(7).
* BUG FIX: remind: Fix test failures on FreeBSD. On FreeBSD, you have to copy
- BUG FIX: remind: Fix test failures on FreeBSD. On FreeBSD, you have to copy
the result of getenv() or else a subsequent setenv() can change the stored
value.
* VERSION 4.3 Patch 5 - 2024-04-01
* IMPROVEMENT: remind: Use inotify to detect reminder file changes
- IMPROVEMENT: remind: Use inotify to detect reminder file changes
even in regular daemon mode (-zn where n>0).
* INTERNAL IMPROVEMENTS: Rearrange and refactor some code.
- INTERNAL IMPROVEMENTS: Rearrange and refactor some code.
* FIXES: Various fixes and improvements to man pages.
- FIXES: Various fixes and improvements to man pages.
* BUG FIX: remind: Handle queued "SPECIAL COLOR" reminders correctly.
- BUG FIX: remind: Handle queued "SPECIAL COLOR" reminders correctly.
* BUG FIX: remind: Preserve the value of $DefaultColor that was in effect
- BUG FIX: remind: Preserve the value of $DefaultColor that was in effect
when a reminder was queued; restore it before issuing the queued reminder.
* VERSION 4.3 Patch 4 - 2024-03-25
* NEW FEATURE: remind: Add the new "multitrig" function, which is how "trig"
- NEW FEATURE: remind: Add the new "multitrig" function, which is how "trig"
should have worked in the first place. See man page for details.
* IMPROVEMENT: tkremind: Make errors in your reminders file stand out more
- IMPROVEMENT: tkremind: Make errors in your reminders file stand out more
prominently.
* IMPROVEMENT: tkremind: If you click on an error in the "Errors..." popup,
- IMPROVEMENT: tkremind: If you click on an error in the "Errors..." popup,
tkremind will open a text editor on the offending file and line.
* IMPROVEMENT: tkremind: Format the "Queue..." output better and make queue
- IMPROVEMENT: tkremind: Format the "Queue..." output better and make queue
items clickable; clicking on a queue item opens a text editor on the
corresponding file and line.
* IMPROVEMENT: Add a standard [$SysInclude]/moonphases.rem file to display
- IMPROVEMENT: Add a standard [$SysInclude]/moonphases.rem file to display
moon phases on your calendar.
* IMPROVEMENT: Clean up the demo code in www/ and add PDF output.
- IMPROVEMENT: Clean up the demo code in www/ and add PDF output.
* BUG FIX: tkremind: Correctly handle filenames containing spaces and other
- BUG FIX: tkremind: Correctly handle filenames containing spaces and other
characters that tend to confuse the shell.
* BUG FIX: tkremind: Raise dialog boxes after errors so that they
- BUG FIX: tkremind: Raise dialog boxes after errors so that they
remain visible.
* CLEANUP: tkremind: Remove some dead code.
- CLEANUP: tkremind: Remove some dead code.
* VERSION 4.3 Patch 3 - 2024-03-18
* IMPROVEMENT: tkremind: Update icon to include a white border so it shows
- IMPROVEMENT: tkremind: Update icon to include a white border so it shows
up better on dark backgrounds.
* IMPROVEMENT: C code: Fix a number of cppcheck static-analysis warnings.
- IMPROVEMENT: C code: Fix a number of cppcheck static-analysis warnings.
* IMPROVEMENT: remind: Update the "-zj" protocol to include a queue-id for
- IMPROVEMENT: remind: Update the "-zj" protocol to include a queue-id for
each queued reminder and add the DEL client command to delete a specific
item from the queue. Used by tkremind to implement "don't remind me about
this again today."
* MINOR NEW FEATURE: Add a "-ds" debugging flag to print out expression-parsing
- MINOR NEW FEATURE: Add a "-ds" debugging flag to print out expression-parsing
stack high-water marks on exit. This esoteric feature is of no use to
anyone but the Remind author.
* IMPROVEMENT: tkremind: Stop using the deprecated tk_dialog command in favor
- IMPROVEMENT: tkremind: Stop using the deprecated tk_dialog command in favor
of the newer tk_messageBox command.
* IMPROVEMENT: remind: In server mode, try to minimize redraws by
- IMPROVEMENT: remind: In server mode, try to minimize redraws by
consuming inotify events until at least 0.2s elapses without an
event appearing.
* BUG FIX: tkremind: The "Don't remind me about this again today" feature
- BUG FIX: tkremind: The "Don't remind me about this again today" feature
was unreliable and only worked for reminders created with TkRemind itself.
It has been made more reliable and works with any reminder.
* BUG FIX: remind: Make it a syntax error if a local OMIT in a REM statement
- BUG FIX: remind: Make it a syntax error if a local OMIT in a REM statement
is not followed by at least one weekday name.
* VERSION 4.3 Patch 2 - 2024-03-01
@@ -1268,7 +1296,7 @@ CHANGES TO REMIND
- MINOR IMPROVEMENT: Add the "ampm()" built-in function.
* Version 3.3 Patch 0 - 2020-01-31
* VERSION 3.3 Patch 0 - 2020-01-31
- FIX: rem2ps: Add a %%PageBoundingBox: document structuring convention
comment.
@@ -1303,7 +1331,7 @@ CHANGES TO REMIND
- CHANGE: SPECIALs are now case-insensitive. Before, only SPECIAL COLOR
would work. Now you can use Special Color, special color, etc.
* Version 3.2 Patch 0 - 2020-01-03
* VERSION 3.2 Patch 0 - 2020-01-03
- IMPROVEMENT: Add support for events spanning multiple days (with AT
and DURATION). Add trigeventstart() and trigeventduration()
@@ -1345,7 +1373,7 @@ CHANGES TO REMIND
- BUG FIX: TkRemind: Fix startup failure of TkRemind if options are at
default. :(
* Version 3.1 Patch 17 - 2019-11-15
* VERSION 3.1 Patch 17 - 2019-11-15
- IMPROVEMENT: Add "Extra Remind Options" setting to TkRemind.
@@ -1362,7 +1390,7 @@ CHANGES TO REMIND
- BUG FIX: Fix various documentation errors and update man page.
* Version 3.1 Patch 16 - 2018-11-09
* VERSION 3.1 Patch 16 - 2018-11-09
- IMPROVEMENT: Add patch from Stephen Morgan to calculate astronomical and
nautical twilight in addition to civil twilight.
@@ -1392,7 +1420,7 @@ CHANGES TO REMIND
- BUG FIX: In "remind -z0" mode, remind wakes up exactly on the minute instead
of sleeping for 60 seconds each time, which could cause it to fall behind.
* Version 3.1 Patch 15 - 2015-07-27
* VERSION 3.1 Patch 15 - 2015-07-27
- BUG FIX: Fix a buffer overflow found by Alexander Keller
@@ -1402,7 +1430,7 @@ CHANGES TO REMIND
- BUG FIX: Make parser reject repeated delta or *repeat values.
* Version 3.1 Patch 14 - 2015-04-24
* VERSION 3.1 Patch 14 - 2015-04-24
- NEW FEATURE: Putting the line __EOF__ in a .rem file causes Remind
to treat it as end-of-file.
@@ -1419,7 +1447,7 @@ CHANGES TO REMIND
- BUG FIX: Typo in Spanish translation was fixed.
* Version 3.1 Patch 13 - 2013-03-22
* VERSION 3.1 Patch 13 - 2013-03-22
- BUG FIX: Sunrise/Sunset calculations greatly improved thanks to John
McGowan. Accuracy should now be within a couple of minutes in most
@@ -1436,7 +1464,7 @@ CHANGES TO REMIND
- BUG FIX: Spurious test harness failure was fixed.
* Version 3.1 Patch 12 - 2012-01-23
* VERSION 3.1 Patch 12 - 2012-01-23
- NEW FEATURE: Many substitution sequences "%x" have an alternate mode
denoted by "%*x". This alternate mode leaves out prepositions. For
@@ -1448,7 +1476,7 @@ CHANGES TO REMIND
so the results may be off by a minute or two compared to previous versions
of Remind.
* Version 3.1 Patch 11 - 2011-12-16
* VERSION 3.1 Patch 11 - 2011-12-16
- BUG FIX: For some inexplicable reason, dawn was considered to happen when
the sun was 14 degrees below the horizon instead of the standard 6
@@ -1462,7 +1490,7 @@ CHANGES TO REMIND
- BUG FIX: Apply minor Debian cleanups reported by Kurt B. Kaiser.
* Version 3.1 Patch 10 - 2010-11-01
* VERSION 3.1 Patch 10 - 2010-11-01
- NOTE: This is the 20th anniversary of Remind's first public release.
@@ -1486,7 +1514,7 @@ CHANGES TO REMIND
- BUG FIX: Don't declare variables in the middle of statements (old C
compilers choke.)
* Version 3.1 Patch 9 - 2010-06-20
* VERSION 3.1 Patch 9 - 2010-06-20
- MAJOR ENHANCEMENT: New "purge mode" to delete expired reminders. See
the PURGE MODE section of the remind man page.
@@ -1502,7 +1530,7 @@ CHANGES TO REMIND
- BUG FIX: Yom HaShoah is moved to Thursday if it would normally fall on
a Friday. Thanks to Jonathan Kamens for pointing this out.
* Version 3.1 Patch 8 - 2010-03-09
* VERSION 3.1 Patch 8 - 2010-03-09
- ENHANCEMENT: Include some useful scripts in contrib/
@@ -1522,7 +1550,7 @@ CHANGES TO REMIND
- BUG FIX: Fix bug in SCHED calculations if Remind is started in the middle
of a SCHED interval.
* Version 3.1 Patch 7 - 2009-05-31
* VERSION 3.1 Patch 7 - 2009-05-31
- ENHANCEMENT: Wherever you could write "day Mon year", the parser now
accepts "YYYY-MM-DD". This applies on the command-line and to the
@@ -1531,7 +1559,7 @@ CHANGES TO REMIND
- ENHANCEMENT: New slide() built-in function eases some complicated reminders.
* Version 3.1 Patch 6 - 2008-11-16
* VERSION 3.1 Patch 6 - 2008-11-16
- MAJOR ENHANCEMENT: A new OMITFUNC clause gives you additional
control and flexibility over "omitted days" calculations. This is
@@ -1559,7 +1587,7 @@ CHANGES TO REMIND
weekday would fail if it needed to cross a year boundary. This has
been fixed.
* Version 3.1 Patch 5 - 2008-04-15
* VERSION 3.1 Patch 5 - 2008-04-15
- MAJOR ENHANCEMENT: If you supply a directory name on the command line
or for an INCLUDE command, then Remind reads all *.rem file in that
@@ -1589,7 +1617,7 @@ CHANGES TO REMIND
- BUG FIX: Parse error in calendar mode was fixed.
* Version 3.1 Patch 4 - 2008-02-03
* VERSION 3.1 Patch 4 - 2008-02-03
- ENHANCEMENT: tkremind respects the "-b1" option and operates in 24-hour
clock mode if the option is supplied.
@@ -1611,7 +1639,7 @@ CHANGES TO REMIND
- BUG FIX: The "-ivar=value" command-line option failed if Remind re-execed
itself because we overwrote argv[]. This has been fixed.
* Version 3.1 Patch 3 - 2007-10-15
* VERSION 3.1 Patch 3 - 2007-10-15
+ MINOR ENHANCEMENTS
@@ -1630,7 +1658,7 @@ CHANGES TO REMIND
is not evaluated. This helps avoid spurious error messages in some
reminders.
* Version 3.1 Patch 2 - 2007-09-12
* VERSION 3.1 Patch 2 - 2007-09-12
+ MINOR ENHANCEMENTS
@@ -1684,7 +1712,7 @@ CHANGES TO REMIND
- Using the psshade() or psmoon() functions emits a warning on stderr. You
should use SPECIAL SHADE or SPECIAL MOON instead.
* Version 3.1 Patch 1 - 2007-08-23
* VERSION 3.1 Patch 1 - 2007-08-23
+ MAJOR ENHANCEMENTS
@@ -1714,7 +1742,7 @@ CHANGES TO REMIND
- Various man-page fixes.
* Version 3.1 Patch 0 - 2007-07-14
* VERSION 3.1 Patch 0 - 2007-07-14
+ MAJOR ENHANCEMENTS
@@ -1777,7 +1805,7 @@ CHANGES TO REMIND
- rem2ps would produce invalid PostScript in some rare cases
(eg, for February 2007). This has been fixed.
* Version 3.0 Patch 24 - 2005-11-19
* VERSION 3.0 Patch 24 - 2005-11-19
+ MINOR ENHANCEMENTS
@@ -1800,7 +1828,7 @@ CHANGES TO REMIND
- Fixed a bug in the tokenizer that could make Remind segfault. Fix courtesy
of Stan Tobias.
* Version 3.0 Patch 23 - 2005-04-14
* VERSION 3.0 Patch 23 - 2005-04-14
+ MINOR ENHANCEMENTS
@@ -1824,7 +1852,7 @@ CHANGES TO REMIND
- Fixed parser error for unterminated date constant: '2005/01/01
* Version 3.0 Patch 22 - 2000-06-16
* VERSION 3.0 Patch 22 - 2000-06-16
+ MINOR ENHANCEMENTS
@@ -1846,7 +1874,7 @@ CHANGES TO REMIND
- Fixed serious bug in which background queued reminders were ignored and
Remind simply exited. Doh! Sorry about that.
* Version 3.0 Patch 21 - 2000-03-15
* VERSION 3.0 Patch 21 - 2000-03-15
+ MINOR ENHANCEMENTS
@@ -1877,7 +1905,7 @@ CHANGES TO REMIND
- Fixed compilation problem on FreeBSD, IRIX, Tru64 and other UNIXes.
* Version 3.0 Patch 20 - 1999-04-12
* VERSION 3.0 Patch 20 - 1999-04-12
+ LICENSE CHANGE
@@ -1899,7 +1927,7 @@ CHANGES TO REMIND
- Fixed a typo in danish.h, courtesy of Niels Kristian Bech Jensen.
* Version 3.0 Patch 19 - 1998-05-09
* VERSION 3.0 Patch 19 - 1998-05-09
+ MAJOR ENHANCEMENTS
@@ -1941,7 +1969,7 @@ CHANGES TO REMIND
- Lots more silly little bugs squashed -- too many to go into in
detail.
* Version 3.0 Patch 18 - 1998-02-15
* VERSION 3.0 Patch 18 - 1998-02-15
+ MAJOR ENHANCEMENTS
@@ -2005,7 +2033,7 @@ CHANGES TO REMIND
- Getting rid of fixed-sized buffers meant lots of changes to code.
No doubt, I missed a few regression tests.
* Version 3.0 Patch 17 - 1997-09-07
* VERSION 3.0 Patch 17 - 1997-09-07
+ MINOR ENHANCEMENTS
@@ -2046,7 +2074,7 @@ CHANGES TO REMIND
library. All three of these fixes are courtesy of Christopher
J. Madsen <madsen@iglobal.net>. Thanks, Christopher.
* Version 3.0 Patch 16 - 1997-02-11
* VERSION 3.0 Patch 16 - 1997-02-11
+ MINOR ENHANCEMENTS
@@ -2074,7 +2102,7 @@ CHANGES TO REMIND
- Fixed a problem under Solaris 2.5 whereby rem2ps was skipping some
latin1 characters which it interpreted as white space.
* Version 3.0 Patch 15 - 1996-10-27
* VERSION 3.0 Patch 15 - 1996-10-27
+ IMPORTANT NOTES
@@ -2104,7 +2132,7 @@ CHANGES TO REMIND
- Fixed bug in TkRemind which caused a crash if the "-m" option was used
for a month beginning on Sunday. Doh!!!
* Version 3.0 Patch 14 - 1996-05-25
* VERSION 3.0 Patch 14 - 1996-05-25
+ CHANGE IN COPYING POLICY
@@ -2163,7 +2191,7 @@ CHANGES TO REMIND
_not_ support MS Windows, and in fact do not allow Remind to run
under Windows (see COPYRIGHT).
* Version 3.0 Patch 13 - 1994-05-06
* VERSION 3.0 Patch 13 - 1994-05-06
+ MINOR ENHANCEMENTS
@@ -2198,7 +2226,7 @@ CHANGES TO REMIND
- Updated the copyright notices everywhere.
* Version 3.0 Patch 12 - 1994-02-01
* VERSION 3.0 Patch 12 - 1994-02-01
+ MINOR ENHANCEMENTS
@@ -2217,7 +2245,7 @@ CHANGES TO REMIND
- Fixed a problem with the '-k' option which resulted in a newline being
placed after the message text. This was giving sh(1) heartburn...
* Version 3.0 Patch 11 - 1993-11-26
* VERSION 3.0 Patch 11 - 1993-11-26
+ MINOR ENHANCEMENTS
@@ -2249,7 +2277,7 @@ CHANGES TO REMIND
- Fixed typos in french.h
* Version 3.0 Patch 10
* VERSION 3.0 Patch 10
+ MAJOR ENHANCEMENT
@@ -2297,7 +2325,7 @@ CHANGES TO REMIND
- Fixed the Finnish language support which was missing a few newlines.
* Version 3.0 Patch 9 - 1993-10-04
* VERSION 3.0 Patch 9 - 1993-10-04
+ NOTES
@@ -2354,7 +2382,7 @@ CHANGES TO REMIND
so that newlines in the body start new paragraphs, rather than being
swallowed as white-space.
* Version 3.0 Patch 8 - 1993-09-08
* VERSION 3.0 Patch 8 - 1993-09-08
+ MAJOR ENHANCEMENTS
@@ -2406,7 +2434,7 @@ CHANGES TO REMIND
range [-128, 255] (but not 0) so that char(asc(s)) works even
on machines with signed char types.
* Version 3.0 Patch 7 - 1993-07-22
* VERSION 3.0 Patch 7 - 1993-07-22
+ MAJOR ENHANCEMENTS
@@ -2449,7 +2477,7 @@ CHANGES TO REMIND
- Changed kall so that "kall sh" doesn't commit suicide - patch courtesy
of Michael Salmon.
* Version 3.0 Patch 6 - 1993-05-05
* VERSION 3.0 Patch 6 - 1993-05-05
+ MINOR ENHANCEMENTS
@@ -2472,7 +2500,7 @@ CHANGES TO REMIND
- Fixed a bug in the -u option which sometimes caused a core dump
(embarrassed grin!) The fix is due to Tina Hoeltig. Thanks, Tina!
* Version 3.0 Patch 5 - 1993-04-27
* VERSION 3.0 Patch 5 - 1993-04-27
+ MAJOR ENHANCEMENTS:
@@ -2507,7 +2535,7 @@ CHANGES TO REMIND
- Fixed a bug in the man page - thanks to Ed Oskiewicz.
* Version 3.0 Patch 4 - 1993-03-08
* VERSION 3.0 Patch 4 - 1993-03-08
- Added the -g option - this sorts reminders by date/time before
issuing them. (You can see I'm running out of letters to
@@ -2566,13 +2594,13 @@ CHANGES TO REMIND
- Put my new mailing address in the README files.
* Version 3.0 Patch 3 - 1993-02-21
* VERSION 3.0 Patch 3 - 1993-02-21
- Corrected bugs in Remind and Rem2PS. No new features added. You
should NOT use patch level 2 - either stick to 3.0.1 or upgrade to
3.0.3.
* Version 3.0 Patch 2 - 1993-02-04
* VERSION 3.0 Patch 2 - 1993-02-04
- Added the -u option to Remind so that root can run it as any user.
This simplifies the remind-all scripts, and makes them more efficient.
@@ -2612,7 +2640,7 @@ CHANGES TO REMIND
- Changed Remind so that supplying the -a option causes timed reminders
not to be placed into the calendar in calendar mode.
* Version 3.0 Patch 1 - 1992-12-18
* VERSION 3.0 Patch 1 - 1992-12-18
- Wrote the Rem2ps program to produce PostScript calendars
@@ -2652,7 +2680,7 @@ CHANGES TO REMIND
- Re-formatted the WHATSNEW.30 file.
* Version 3.0 - 1992-11-09
* VERSION 3.0 - 1992-11-09
- Total rewrite from previous versions
@@ -2673,23 +2701,23 @@ CHANGES TO REMIND
- Fixed a lurking bug in trigger date calculation which, amazingly, had not
been caught in the couple of years that Remind has been out!
* Version 2.3 Patch 5 - 1992-04-11
* VERSION 2.3 Patch 5 - 1992-04-11
- Added the "c+n" option for printing a calendar by
weeks instead of months, courtesy Dennis Cottel (dennis@peanuts.nosc.mil).
* Version 2.3 Patch 4 - 1991-11-06
* VERSION 2.3 Patch 4 - 1991-11-06
- Made the init.c file nicer. Made the Makefile
prettier. Added "make test", "make tar" and "make shar" Makefile targets.
* Version 2.3 Patch 3 - 1991-09-11
* VERSION 2.3 Patch 3 - 1991-09-11
- Added a command-line option for Remind to process
queued reminders in the foreground. This makes automatic termination
of Remind processes from within X-Windows and Sunview easier.
* Version 2.3 Patch 2 - 1991-07-19
* VERSION 2.3 Patch 2 - 1991-07-19
- Fixed up a problem with timed reminders which resulted
in cursor not starting from left side of screen on some systems.
@@ -2706,7 +2734,7 @@ CHANGES TO REMIND
- Made the Makefile more portable
* Version 2.3 Patch 1 - 1991-03-08
* VERSION 2.3 Patch 1 - 1991-03-08
- Added the "-t" command-line option to get Remind
to trigger all non-expired reminders.
@@ -2720,7 +2748,7 @@ CHANGES TO REMIND
- Added manual pages for "kall" and "rem".
* Version 2.3 - 1991-02-20
* VERSION 2.3 - 1991-02-20
- Added the UNTIL keyword for forcing reminders to expire.
@@ -2742,32 +2770,32 @@ CHANGES TO REMIND
- Modified the calendar and SimpleCalendar formats so that the % escape
substitutions ARE performed.
* Version 2.2 - Patch 5 - 1990-12-03
* VERSION 2.2 - Patch 5 - 1990-12-03
- Added the BEFORE, AFTER and SKIP tokens to make the
handling of holidays more sensible. Also corrected a few more bugs.
* Version 2.2 - Patch 3 - 1990-11-28
* VERSION 2.2 - Patch 3 - 1990-11-28
- Added the MSG or RUN tokens in an OMIT command; also
allowed RUN-type reminders to be explicitly included in the calendar by
using the %" escape sequence.
* Version 2.2 - 1990-11-16
* VERSION 2.2 - 1990-11-16
- Added the AT keyword, the timed reminders daemon, and the
calendar facility.
* Version 2.1 - 1990-11-06
* VERSION 2.1 - 1990-11-06
- Added the "repeat" token for repeating reminders with a period
other than 7 days. Also fixed some bugs from version 2.0
* Version 2.0 - 1990-11-01
* VERSION 2.0 - 1990-11-01
- first public release. Included advanced date specifications,
character substitution, and the RUN keyword.
* Version 1.0
* VERSION 1.0
- never publicly released.
+283 -304
View File
@@ -1029,7 +1029,7 @@ set a057 value("a05"+"6")
"a05" + "6" => "a056"
value("a056") => "SDFJHSDF KSJDFH KJSDFH KSJDFH"
set a058 version()
version() => "05.00.05"
version() => "05.00.06"
set a059 wkday(today())
today() => 1991-02-16
wkday(1991-02-16) => "Saturday"
@@ -2619,7 +2619,7 @@ a086 4
a109 2012-01-01
a128 2018-02-03@16:45
a039 "February"
a058 "05.00.05"
a058 "05.00.06"
a077 "1992 92\n"
a096 -4
a119 -1
@@ -4973,6 +4973,7 @@ REM AT 11:00 MSG %2
../tests/test.rem(933): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
at 11:00am
FUNSET subst_ampm
# Test FUNSET
FSET square(x) x*x
@@ -4988,33 +4989,27 @@ FUNSET circle square rectangle
# Should fail
SET a square(5)
../tests/test.rem(943): Undefined function: `square'
../tests/test.rem(944): Undefined function: `square'
# htmlescape
set a htmlescape("foo")
htmlescape("foo") => "foo"
REM MSG [a]
../tests/test.rem(947): Trig = Saturday, 16 February, 1991
../tests/test.rem(947): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(947): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(948): Trig = Saturday, 16 February, 1991
a => "foo"
foo
set a htmlescape("<&>")
htmlescape("<&>") => "&lt;&amp;&gt;"
REM MSG [a]
../tests/test.rem(949): Trig = Saturday, 16 February, 1991
../tests/test.rem(949): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(949): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(950): Trig = Saturday, 16 February, 1991
a => "&lt;&amp;&gt;"
&lt;&amp;&gt;
set a htmlescape("@&^#*@&^##$*&@><><@#@#><@#>%%_#$foobarquux")
htmlescape("@&^#*@&^##$*&@><><@#@#><@#>%%_#$foobarqu"...) => "@&amp;^#*@&amp;^##$*&amp;@&gt;&lt;&gt;&l"...
REM MSG [a]
../tests/test.rem(951): Trig = Saturday, 16 February, 1991
../tests/test.rem(951): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(951): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(952): Trig = Saturday, 16 February, 1991
a => "@&amp;^#*@&amp;^##$*&amp;@&gt;&lt;&gt;&l"...
@&amp;^#*@&amp;^##$*&amp;@&gt;&lt;&gt;&lt;@#@#&gt;&lt;@#&gt;%_#$foobarquux
@@ -5033,12 +5028,12 @@ htmlstriptags("<img src=\"foo\">") => ""
# $ParseUntriggered
REM 2 Jan 1990 MSG ["bad_expr" / 2]
../tests/test.rem(961): Expired
../tests/test.rem(962): Expired
"bad_expr" / 2 => Type mismatch
../tests/test.rem(961): `/': Type mismatch
../tests/test.rem(962): `/': Type mismatch
SET $ParseUntriggered 0
REM 2 Jan 1990 MSG ["bad_expr" / 2]
../tests/test.rem(963): Expired
../tests/test.rem(964): Expired
SET $ParseUntriggered 1
# String multiplication
@@ -5046,11 +5041,11 @@ SET $ParseUntriggered 1
set a "low" * (-1)
- 1 => -1
"low" * -1 => Number too low
../tests/test.rem(968): `*': Number too low
../tests/test.rem(969): `*': Number too low
set a (-1) * "low"
- 1 => -1
-1 * "low" => Number too low
../tests/test.rem(969): `*': Number too low
../tests/test.rem(970): `*': Number too low
set a "zero" * 0
"zero" * 0 => ""
@@ -5065,10 +5060,10 @@ set a 10000000 * ""
# Too long for default limits
set a "wookie" * 1000000
"wookie" * 1000000 => String too long
../tests/test.rem(978): `*': String too long
../tests/test.rem(979): `*': String too long
set a 1000000 * "wookie"
1000000 * "wookie" => String too long
../tests/test.rem(979): `*': String too long
../tests/test.rem(980): `*': String too long
set a "Cabbage! " * 7
"Cabbage! " * 7 => "Cabbage! Cabbage! Cabbage! Cabbage! Cabb"...
@@ -5078,73 +5073,67 @@ set a 7 * "Cabbage! "
# Should result in errors
set pqxya 1+2)
1 + 2 => 3
../tests/test.rem(985): Expecting end-of-line
../tests/test.rem(986): Expecting end-of-line
# Should result in an error
REM Tue OMIT 2024-01-01 MSG Wookie
../tests/test.rem(988): Expecting weekday name
../tests/test.rem(989): Expecting weekday name
# No error
REM Tue OMIT Wed 2024-01-01 MSG Blort
../tests/test.rem(991): Trig = Tuesday, 2 January, 2024
../tests/test.rem(992): 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(994): Trig = Tuesday, 19 February, 1991 AT 16:00 DURATION 00:30
../tests/test.rem(995): 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(995): Trig = Tuesday, 19 February, 1991 AT 16:30 DURATION 00:15
../tests/test.rem(996): 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(996): Trig = Tuesday, 19 February, 1991 AT 16:45 DURATION 00:30
../tests/test.rem(997): 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(997): Trig = Tuesday, 19 February, 1991 AT 17:15 DURATION 00:10
../tests/test.rem(998): 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(1000): Trig = Tuesday, 19 February, 1991 AT 16:00
../tests/test.rem(1001): Trig = Tuesday, 19 February, 1991 AT 16:00
REM Tue AT 10:00 DURATION [$Tt] MSG blort
$Tt => 16:00
../tests/test.rem(1001): Trig = Tuesday, 19 February, 1991 AT 10:00 DURATION 16:00
../tests/test.rem(1001): Trig = Tuesday, 19 February, 1991 AT 10:00 DURATION 16:00
../tests/test.rem(1002): Trig = Tuesday, 19 February, 1991 AT 10:00 DURATION 16:00
../tests/test.rem(1002): Trig = Tuesday, 19 February, 1991 AT 10:00 DURATION 16:00
REM Tue AT 16:00 MSG blort
../tests/test.rem(1002): Trig = Tuesday, 19 February, 1991 AT 16:00
../tests/test.rem(1003): Trig = Tuesday, 19 February, 1991 AT 16:00
REM Tue AT 10:00 DURATION [trigtime()] MSG blort
trigtime() => 16:00
../tests/test.rem(1003): Trig = Tuesday, 19 February, 1991 AT 10:00 DURATION 16:00
../tests/test.rem(1003): Trig = Tuesday, 19 February, 1991 AT 10:00 DURATION 16:00
../tests/test.rem(1004): Trig = Tuesday, 19 February, 1991 AT 10:00 DURATION 16:00
../tests/test.rem(1004): 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(1006): Trig = Saturday, 16 February, 1991
../tests/test.rem(1006): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1006): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1007): Trig = Saturday, 16 February, 1991
shellescape("😆") => "😆"
😆
This should be diagnosed as implicitly being REM
../tests/test.rem(1008): Unrecognized command; interpreting as REM
../tests/test.rem(1008): Trig = Saturday, 16 February, 1991
../tests/test.rem(1008): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1008): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1009): Unrecognized command; interpreting as REM
../tests/test.rem(1009): 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(1009): Missing REM type; assuming MSG
../tests/test.rem(1009): Trig = Saturday, 16 February, 1991
../tests/test.rem(1009): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1009): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1010): Missing REM type; assuming MSG
../tests/test.rem(1010): Trig = Saturday, 16 February, 1991
This should be diganosed as implicitly being MSG-type
@@ -5156,54 +5145,54 @@ 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(1018): Function f redefined (previously defined at ../tests/test.rem:1015)
../tests/test.rem(1018): Too many arguments
../tests/test.rem(1019): Function f redefined (previously defined at ../tests/test.rem:1016)
../tests/test.rem(1019): 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(1024): Trig = Saturday, 16 February, 1991
../tests/test.rem(1024): Trig(satisfied) = Saturday, 16 February, 1991
REM SATISFY trigdate() > '1990-01-01'
../tests/test.rem(1025): Trig = Saturday, 16 February, 1991
../tests/test.rem(1025): Trig(satisfied) = Saturday, 16 February, 1991
REM SATISFY trigdate() > '1990-01-01'
../tests/test.rem(1026): Trig = Saturday, 16 February, 1991
trigdate() => 1991-02-16
1991-02-16 > 1990-01-01 => 1
../tests/test.rem(1025): Trig(satisfied) = Saturday, 16 February, 1991
../tests/test.rem(1026): Trig(satisfied) = Saturday, 16 February, 1991
REM AT 23:59 SATISFY trigdatetime() > '1990-01-01@12:00'
../tests/test.rem(1026): Trig = Saturday, 16 February, 1991 AT 23:59
../tests/test.rem(1027): 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(1026): Trig(satisfied) = Saturday, 16 February, 1991 AT 23:59
../tests/test.rem(1027): Trig(satisfied) = Saturday, 16 February, 1991 AT 23:59
REM SATISFY $T > '1990-01-01'
../tests/test.rem(1027): Trig = Saturday, 16 February, 1991
../tests/test.rem(1028): Trig = Saturday, 16 February, 1991
$T => 1991-02-16
1991-02-16 > 1990-01-01 => 1
../tests/test.rem(1027): Trig(satisfied) = Saturday, 16 February, 1991
../tests/test.rem(1028): Trig(satisfied) = Saturday, 16 February, 1991
REM SATISFY $Ty > 1990
../tests/test.rem(1028): Trig = Saturday, 16 February, 1991
../tests/test.rem(1029): Trig = Saturday, 16 February, 1991
$Ty => 1991
1991 > 1990 => 1
../tests/test.rem(1028): Trig(satisfied) = Saturday, 16 February, 1991
../tests/test.rem(1029): Trig(satisfied) = Saturday, 16 February, 1991
REM SATISFY $Tm > 0
../tests/test.rem(1029): Trig = Saturday, 16 February, 1991
../tests/test.rem(1030): Trig = Saturday, 16 February, 1991
$Tm => 2
2 > 0 => 1
../tests/test.rem(1029): Trig(satisfied) = Saturday, 16 February, 1991
../tests/test.rem(1030): Trig(satisfied) = Saturday, 16 February, 1991
REM SATISFY $Td > 0
../tests/test.rem(1030): Trig = Saturday, 16 February, 1991
../tests/test.rem(1031): Trig = Saturday, 16 February, 1991
$Td => 16
16 > 0 => 1
../tests/test.rem(1030): Trig(satisfied) = Saturday, 16 February, 1991
../tests/test.rem(1031): Trig(satisfied) = Saturday, 16 February, 1991
REM SATISFY $Tw > -1
../tests/test.rem(1031): Trig = Saturday, 16 February, 1991
../tests/test.rem(1032): Trig = Saturday, 16 February, 1991
$Tw => 6
- 1 => -1
6 > -1 => 1
../tests/test.rem(1031): Trig(satisfied) = Saturday, 16 February, 1991
../tests/test.rem(1032): Trig(satisfied) = Saturday, 16 February, 1991
REM SATISFY [max(x, max(x, 1, 2, 3), 4, 5, 6) * max(5, $Td)]
../tests/test.rem(1032): Trig = Saturday, 16 February, 1991
../tests/test.rem(1033): Trig = Saturday, 16 February, 1991
x => 3
x => 3
max(3, 1, 2, 3) => 3
@@ -5211,30 +5200,30 @@ max(3, 3, 4, 5, 6) => 6
$Td => 16
max(5, 16) => 16
6 * 16 => 96
../tests/test.rem(1032): Trig(satisfied) = Saturday, 16 February, 1991
../tests/test.rem(1033): Trig(satisfied) = Saturday, 16 February, 1991
FSET references_t(x) $T != x
REM SATISFY references_t($U)
../tests/test.rem(1035): Trig = Saturday, 16 February, 1991
../tests/test.rem(1036): 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(1035): Trig = Sunday, 17 February, 1991
../tests/test.rem(1036): 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(1035): Trig(satisfied) = Sunday, 17 February, 1991
../tests/test.rem(1036): 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(1039): Trig = Saturday, 16 February, 1991
../tests/test.rem(1040): Trig = Saturday, 16 February, 1991
Entering UserFN recursive_t(0)
x => 0
0 == 0 => 1
@@ -5251,7 +5240,7 @@ iif(0, ?, 0) => 0
Leaving UserFN recursive_t(1) => 0
iif(1, 0, ?) => 0
Leaving UserFN recursive_t(0) => 0
../tests/test.rem(1039): Trig = Sunday, 17 February, 1991
../tests/test.rem(1040): Trig = Sunday, 17 February, 1991
Entering UserFN recursive_t(0)
x => 0
0 == 0 => 1
@@ -5268,9 +5257,9 @@ iif(0, ?, 1) => 1
Leaving UserFN recursive_t(1) => 1
iif(1, 1, ?) => 1
Leaving UserFN recursive_t(0) => 1
../tests/test.rem(1039): Trig(satisfied) = Sunday, 17 February, 1991
../tests/test.rem(1040): Trig(satisfied) = Sunday, 17 February, 1991
REM SATISFY recursive_t(2)
../tests/test.rem(1040): Trig = Saturday, 16 February, 1991
../tests/test.rem(1041): Trig = Saturday, 16 February, 1991
Entering UserFN recursive_t(2)
x => 2
2 == 0 => 0
@@ -5282,7 +5271,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(1040): Trig = Sunday, 17 February, 1991
../tests/test.rem(1041): Trig = Sunday, 17 February, 1991
Entering UserFN recursive_t(2)
x => 2
2 == 0 => 0
@@ -5294,305 +5283,273 @@ 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(1040): Trig(satisfied) = Sunday, 17 February, 1991
../tests/test.rem(1041): Trig(satisfied) = Sunday, 17 February, 1991
# These should be diagnosed
REM SATISFY 0
../tests/test.rem(1043): SATISFY: constant 0 will never be true
../tests/test.rem(1043): Trig = Saturday, 16 February, 1991
../tests/test.rem(1043): Trig = Sunday, 17 February, 1991
../tests/test.rem(1043): Trig = Monday, 18 February, 1991
../tests/test.rem(1043): Trig = Tuesday, 19 February, 1991
../tests/test.rem(1043): Trig = Wednesday, 20 February, 1991
../tests/test.rem(1043): Trig = Thursday, 21 February, 1991
../tests/test.rem(1043): Trig = Friday, 22 February, 1991
../tests/test.rem(1043): Trig = Saturday, 23 February, 1991
../tests/test.rem(1043): Trig = Sunday, 24 February, 1991
../tests/test.rem(1043): Trig = Monday, 25 February, 1991
../tests/test.rem(1043): Trig = Tuesday, 26 February, 1991
../tests/test.rem(1043): Trig = Wednesday, 27 February, 1991
../tests/test.rem(1043): Trig = Thursday, 28 February, 1991
../tests/test.rem(1043): Trig = Friday, 1 March, 1991
../tests/test.rem(1043): Trig = Saturday, 2 March, 1991
../tests/test.rem(1043): Trig = Sunday, 3 March, 1991
../tests/test.rem(1043): Trig = Monday, 4 March, 1991
../tests/test.rem(1043): Trig = Tuesday, 5 March, 1991
../tests/test.rem(1043): Trig = Wednesday, 6 March, 1991
../tests/test.rem(1043): Trig = Thursday, 7 March, 1991
../tests/test.rem(1043): Trig = Friday, 8 March, 1991
../tests/test.rem(1043): Trig = Saturday, 9 March, 1991
../tests/test.rem(1043): Trig = Sunday, 10 March, 1991
../tests/test.rem(1043): Trig = Monday, 11 March, 1991
../tests/test.rem(1043): Trig = Tuesday, 12 March, 1991
../tests/test.rem(1043): Trig = Wednesday, 13 March, 1991
../tests/test.rem(1043): Trig = Thursday, 14 March, 1991
../tests/test.rem(1043): Trig = Friday, 15 March, 1991
../tests/test.rem(1043): Trig = Saturday, 16 March, 1991
../tests/test.rem(1043): Trig = Sunday, 17 March, 1991
../tests/test.rem(1043): Trig = Monday, 18 March, 1991
../tests/test.rem(1043): Trig = Tuesday, 19 March, 1991
../tests/test.rem(1043): Trig = Wednesday, 20 March, 1991
../tests/test.rem(1043): Trig = Thursday, 21 March, 1991
../tests/test.rem(1043): Trig = Friday, 22 March, 1991
../tests/test.rem(1043): Trig = Saturday, 23 March, 1991
../tests/test.rem(1043): Trig = Sunday, 24 March, 1991
../tests/test.rem(1043): Trig = Monday, 25 March, 1991
../tests/test.rem(1043): Trig = Tuesday, 26 March, 1991
../tests/test.rem(1043): Trig = Wednesday, 27 March, 1991
../tests/test.rem(1043): Trig = Thursday, 28 March, 1991
../tests/test.rem(1043): Trig = Friday, 29 March, 1991
../tests/test.rem(1043): Trig = Saturday, 30 March, 1991
../tests/test.rem(1043): Trig = Sunday, 31 March, 1991
../tests/test.rem(1043): Trig = Monday, 1 April, 1991
../tests/test.rem(1043): Trig = Tuesday, 2 April, 1991
../tests/test.rem(1043): Trig = Wednesday, 3 April, 1991
../tests/test.rem(1043): Trig = Thursday, 4 April, 1991
../tests/test.rem(1043): Trig = Friday, 5 April, 1991
../tests/test.rem(1043): Trig = Saturday, 6 April, 1991
../tests/test.rem(1043): Trig = Sunday, 7 April, 1991
../tests/test.rem(1043): Trig = Monday, 8 April, 1991
../tests/test.rem(1043): Trig = Tuesday, 9 April, 1991
../tests/test.rem(1043): Trig = Wednesday, 10 April, 1991
../tests/test.rem(1043): Trig = Thursday, 11 April, 1991
../tests/test.rem(1043): Trig = Friday, 12 April, 1991
../tests/test.rem(1043): Trig = Saturday, 13 April, 1991
../tests/test.rem(1043): Trig = Sunday, 14 April, 1991
../tests/test.rem(1043): Trig = Monday, 15 April, 1991
../tests/test.rem(1043): Trig = Tuesday, 16 April, 1991
../tests/test.rem(1043): Trig = Wednesday, 17 April, 1991
../tests/test.rem(1043): Trig = Thursday, 18 April, 1991
../tests/test.rem(1043): Trig = Friday, 19 April, 1991
../tests/test.rem(1043): Trig = Saturday, 20 April, 1991
../tests/test.rem(1043): Trig = Sunday, 21 April, 1991
../tests/test.rem(1043): Trig = Monday, 22 April, 1991
../tests/test.rem(1043): Trig = Tuesday, 23 April, 1991
../tests/test.rem(1043): Trig = Wednesday, 24 April, 1991
../tests/test.rem(1043): Trig = Thursday, 25 April, 1991
../tests/test.rem(1043): Trig = Friday, 26 April, 1991
../tests/test.rem(1043): Trig = Saturday, 27 April, 1991
../tests/test.rem(1043): Trig = Sunday, 28 April, 1991
../tests/test.rem(1043): Trig = Monday, 29 April, 1991
../tests/test.rem(1043): Trig = Tuesday, 30 April, 1991
../tests/test.rem(1043): Trig = Wednesday, 1 May, 1991
../tests/test.rem(1043): Trig = Thursday, 2 May, 1991
../tests/test.rem(1043): Trig = Friday, 3 May, 1991
../tests/test.rem(1043): Trig = Saturday, 4 May, 1991
../tests/test.rem(1043): Trig = Sunday, 5 May, 1991
../tests/test.rem(1043): Trig = Monday, 6 May, 1991
../tests/test.rem(1043): Trig = Tuesday, 7 May, 1991
../tests/test.rem(1043): Trig = Wednesday, 8 May, 1991
../tests/test.rem(1043): Trig = Thursday, 9 May, 1991
../tests/test.rem(1043): Trig = Friday, 10 May, 1991
../tests/test.rem(1043): Trig = Saturday, 11 May, 1991
../tests/test.rem(1043): Trig = Sunday, 12 May, 1991
../tests/test.rem(1043): Trig = Monday, 13 May, 1991
../tests/test.rem(1043): Trig = Tuesday, 14 May, 1991
../tests/test.rem(1043): Trig = Wednesday, 15 May, 1991
../tests/test.rem(1043): Trig = Thursday, 16 May, 1991
../tests/test.rem(1043): Trig = Friday, 17 May, 1991
../tests/test.rem(1043): Trig = Saturday, 18 May, 1991
../tests/test.rem(1043): Trig = Sunday, 19 May, 1991
../tests/test.rem(1043): Trig = Monday, 20 May, 1991
../tests/test.rem(1043): Trig = Tuesday, 21 May, 1991
../tests/test.rem(1043): Trig = Wednesday, 22 May, 1991
../tests/test.rem(1043): Trig = Thursday, 23 May, 1991
../tests/test.rem(1043): Trig = Friday, 24 May, 1991
../tests/test.rem(1043): Trig = Saturday, 25 May, 1991
../tests/test.rem(1043): Trig = Sunday, 26 May, 1991
../tests/test.rem(1043): Trig = Monday, 27 May, 1991
../tests/test.rem(1043): Trig = Tuesday, 28 May, 1991
../tests/test.rem(1043): Trig = Wednesday, 29 May, 1991
../tests/test.rem(1043): Trig = Thursday, 30 May, 1991
../tests/test.rem(1043): Trig = Friday, 31 May, 1991
../tests/test.rem(1043): Trig = Saturday, 1 June, 1991
../tests/test.rem(1043): Trig = Sunday, 2 June, 1991
../tests/test.rem(1043): Trig = Monday, 3 June, 1991
../tests/test.rem(1043): Trig = Tuesday, 4 June, 1991
../tests/test.rem(1043): Trig = Wednesday, 5 June, 1991
../tests/test.rem(1043): Trig = Thursday, 6 June, 1991
../tests/test.rem(1043): Trig = Friday, 7 June, 1991
../tests/test.rem(1043): Trig = Saturday, 8 June, 1991
../tests/test.rem(1043): Trig = Sunday, 9 June, 1991
../tests/test.rem(1043): Trig = Monday, 10 June, 1991
../tests/test.rem(1043): Trig = Tuesday, 11 June, 1991
../tests/test.rem(1043): Trig = Wednesday, 12 June, 1991
../tests/test.rem(1043): Trig = Thursday, 13 June, 1991
../tests/test.rem(1043): Trig = Friday, 14 June, 1991
../tests/test.rem(1043): Trig = Saturday, 15 June, 1991
../tests/test.rem(1043): Trig = Sunday, 16 June, 1991
../tests/test.rem(1043): Trig = Monday, 17 June, 1991
../tests/test.rem(1043): Trig = Tuesday, 18 June, 1991
../tests/test.rem(1043): Trig = Wednesday, 19 June, 1991
../tests/test.rem(1043): Trig = Thursday, 20 June, 1991
../tests/test.rem(1043): Trig = Friday, 21 June, 1991
../tests/test.rem(1043): Trig = Saturday, 22 June, 1991
../tests/test.rem(1043): Trig = Sunday, 23 June, 1991
../tests/test.rem(1043): Trig = Monday, 24 June, 1991
../tests/test.rem(1043): Trig = Tuesday, 25 June, 1991
../tests/test.rem(1043): Trig = Wednesday, 26 June, 1991
../tests/test.rem(1043): Trig = Thursday, 27 June, 1991
../tests/test.rem(1043): Trig = Friday, 28 June, 1991
../tests/test.rem(1043): Trig = Saturday, 29 June, 1991
../tests/test.rem(1043): Trig = Sunday, 30 June, 1991
../tests/test.rem(1043): Trig = Monday, 1 July, 1991
../tests/test.rem(1043): Trig = Tuesday, 2 July, 1991
../tests/test.rem(1043): Trig = Wednesday, 3 July, 1991
../tests/test.rem(1043): Trig = Thursday, 4 July, 1991
../tests/test.rem(1043): Trig = Friday, 5 July, 1991
../tests/test.rem(1043): Trig = Saturday, 6 July, 1991
../tests/test.rem(1043): Trig = Sunday, 7 July, 1991
../tests/test.rem(1043): Trig = Monday, 8 July, 1991
../tests/test.rem(1043): Trig = Tuesday, 9 July, 1991
../tests/test.rem(1043): Trig = Wednesday, 10 July, 1991
../tests/test.rem(1043): Trig = Thursday, 11 July, 1991
../tests/test.rem(1043): Trig = Friday, 12 July, 1991
../tests/test.rem(1043): Trig = Saturday, 13 July, 1991
../tests/test.rem(1043): Trig = Sunday, 14 July, 1991
../tests/test.rem(1043): Trig = Monday, 15 July, 1991
../tests/test.rem(1043): Can't compute trigger
REM SATSIFY ""
../tests/test.rem(1044): Missing REM type; assuming MSG
../tests/test.rem(1044): SATISFY: constant 0 will never be true
../tests/test.rem(1044): Trig = Saturday, 16 February, 1991
../tests/test.rem(1044): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1044): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1044): Trig = Sunday, 17 February, 1991
../tests/test.rem(1044): Trig = Monday, 18 February, 1991
../tests/test.rem(1044): Trig = Tuesday, 19 February, 1991
../tests/test.rem(1044): Trig = Wednesday, 20 February, 1991
../tests/test.rem(1044): Trig = Thursday, 21 February, 1991
../tests/test.rem(1044): Trig = Friday, 22 February, 1991
../tests/test.rem(1044): Trig = Saturday, 23 February, 1991
../tests/test.rem(1044): Trig = Sunday, 24 February, 1991
../tests/test.rem(1044): Trig = Monday, 25 February, 1991
../tests/test.rem(1044): Trig = Tuesday, 26 February, 1991
../tests/test.rem(1044): Trig = Wednesday, 27 February, 1991
../tests/test.rem(1044): Trig = Thursday, 28 February, 1991
../tests/test.rem(1044): Trig = Friday, 1 March, 1991
../tests/test.rem(1044): Trig = Saturday, 2 March, 1991
../tests/test.rem(1044): Trig = Sunday, 3 March, 1991
../tests/test.rem(1044): Trig = Monday, 4 March, 1991
../tests/test.rem(1044): Trig = Tuesday, 5 March, 1991
../tests/test.rem(1044): Trig = Wednesday, 6 March, 1991
../tests/test.rem(1044): Trig = Thursday, 7 March, 1991
../tests/test.rem(1044): Trig = Friday, 8 March, 1991
../tests/test.rem(1044): Trig = Saturday, 9 March, 1991
../tests/test.rem(1044): Trig = Sunday, 10 March, 1991
../tests/test.rem(1044): Trig = Monday, 11 March, 1991
../tests/test.rem(1044): Trig = Tuesday, 12 March, 1991
../tests/test.rem(1044): Trig = Wednesday, 13 March, 1991
../tests/test.rem(1044): Trig = Thursday, 14 March, 1991
../tests/test.rem(1044): Trig = Friday, 15 March, 1991
../tests/test.rem(1044): Trig = Saturday, 16 March, 1991
../tests/test.rem(1044): Trig = Sunday, 17 March, 1991
../tests/test.rem(1044): Trig = Monday, 18 March, 1991
../tests/test.rem(1044): Trig = Tuesday, 19 March, 1991
../tests/test.rem(1044): Trig = Wednesday, 20 March, 1991
../tests/test.rem(1044): Trig = Thursday, 21 March, 1991
../tests/test.rem(1044): Trig = Friday, 22 March, 1991
../tests/test.rem(1044): Trig = Saturday, 23 March, 1991
../tests/test.rem(1044): Trig = Sunday, 24 March, 1991
../tests/test.rem(1044): Trig = Monday, 25 March, 1991
../tests/test.rem(1044): Trig = Tuesday, 26 March, 1991
../tests/test.rem(1044): Trig = Wednesday, 27 March, 1991
../tests/test.rem(1044): Trig = Thursday, 28 March, 1991
../tests/test.rem(1044): Trig = Friday, 29 March, 1991
../tests/test.rem(1044): Trig = Saturday, 30 March, 1991
../tests/test.rem(1044): Trig = Sunday, 31 March, 1991
../tests/test.rem(1044): Trig = Monday, 1 April, 1991
../tests/test.rem(1044): Trig = Tuesday, 2 April, 1991
../tests/test.rem(1044): Trig = Wednesday, 3 April, 1991
../tests/test.rem(1044): Trig = Thursday, 4 April, 1991
../tests/test.rem(1044): Trig = Friday, 5 April, 1991
../tests/test.rem(1044): Trig = Saturday, 6 April, 1991
../tests/test.rem(1044): Trig = Sunday, 7 April, 1991
../tests/test.rem(1044): Trig = Monday, 8 April, 1991
../tests/test.rem(1044): Trig = Tuesday, 9 April, 1991
../tests/test.rem(1044): Trig = Wednesday, 10 April, 1991
../tests/test.rem(1044): Trig = Thursday, 11 April, 1991
../tests/test.rem(1044): Trig = Friday, 12 April, 1991
../tests/test.rem(1044): Trig = Saturday, 13 April, 1991
../tests/test.rem(1044): Trig = Sunday, 14 April, 1991
../tests/test.rem(1044): Trig = Monday, 15 April, 1991
../tests/test.rem(1044): Trig = Tuesday, 16 April, 1991
../tests/test.rem(1044): Trig = Wednesday, 17 April, 1991
../tests/test.rem(1044): Trig = Thursday, 18 April, 1991
../tests/test.rem(1044): Trig = Friday, 19 April, 1991
../tests/test.rem(1044): Trig = Saturday, 20 April, 1991
../tests/test.rem(1044): Trig = Sunday, 21 April, 1991
../tests/test.rem(1044): Trig = Monday, 22 April, 1991
../tests/test.rem(1044): Trig = Tuesday, 23 April, 1991
../tests/test.rem(1044): Trig = Wednesday, 24 April, 1991
../tests/test.rem(1044): Trig = Thursday, 25 April, 1991
../tests/test.rem(1044): Trig = Friday, 26 April, 1991
../tests/test.rem(1044): Trig = Saturday, 27 April, 1991
../tests/test.rem(1044): Trig = Sunday, 28 April, 1991
../tests/test.rem(1044): Trig = Monday, 29 April, 1991
../tests/test.rem(1044): Trig = Tuesday, 30 April, 1991
../tests/test.rem(1044): Trig = Wednesday, 1 May, 1991
../tests/test.rem(1044): Trig = Thursday, 2 May, 1991
../tests/test.rem(1044): Trig = Friday, 3 May, 1991
../tests/test.rem(1044): Trig = Saturday, 4 May, 1991
../tests/test.rem(1044): Trig = Sunday, 5 May, 1991
../tests/test.rem(1044): Trig = Monday, 6 May, 1991
../tests/test.rem(1044): Trig = Tuesday, 7 May, 1991
../tests/test.rem(1044): Trig = Wednesday, 8 May, 1991
../tests/test.rem(1044): Trig = Thursday, 9 May, 1991
../tests/test.rem(1044): Trig = Friday, 10 May, 1991
../tests/test.rem(1044): Trig = Saturday, 11 May, 1991
../tests/test.rem(1044): Trig = Sunday, 12 May, 1991
../tests/test.rem(1044): Trig = Monday, 13 May, 1991
../tests/test.rem(1044): Trig = Tuesday, 14 May, 1991
../tests/test.rem(1044): Trig = Wednesday, 15 May, 1991
../tests/test.rem(1044): Trig = Thursday, 16 May, 1991
../tests/test.rem(1044): Trig = Friday, 17 May, 1991
../tests/test.rem(1044): Trig = Saturday, 18 May, 1991
../tests/test.rem(1044): Trig = Sunday, 19 May, 1991
../tests/test.rem(1044): Trig = Monday, 20 May, 1991
../tests/test.rem(1044): Trig = Tuesday, 21 May, 1991
../tests/test.rem(1044): Trig = Wednesday, 22 May, 1991
../tests/test.rem(1044): Trig = Thursday, 23 May, 1991
../tests/test.rem(1044): Trig = Friday, 24 May, 1991
../tests/test.rem(1044): Trig = Saturday, 25 May, 1991
../tests/test.rem(1044): Trig = Sunday, 26 May, 1991
../tests/test.rem(1044): Trig = Monday, 27 May, 1991
../tests/test.rem(1044): Trig = Tuesday, 28 May, 1991
../tests/test.rem(1044): Trig = Wednesday, 29 May, 1991
../tests/test.rem(1044): Trig = Thursday, 30 May, 1991
../tests/test.rem(1044): Trig = Friday, 31 May, 1991
../tests/test.rem(1044): Trig = Saturday, 1 June, 1991
../tests/test.rem(1044): Trig = Sunday, 2 June, 1991
../tests/test.rem(1044): Trig = Monday, 3 June, 1991
../tests/test.rem(1044): Trig = Tuesday, 4 June, 1991
../tests/test.rem(1044): Trig = Wednesday, 5 June, 1991
../tests/test.rem(1044): Trig = Thursday, 6 June, 1991
../tests/test.rem(1044): Trig = Friday, 7 June, 1991
../tests/test.rem(1044): Trig = Saturday, 8 June, 1991
../tests/test.rem(1044): Trig = Sunday, 9 June, 1991
../tests/test.rem(1044): Trig = Monday, 10 June, 1991
../tests/test.rem(1044): Trig = Tuesday, 11 June, 1991
../tests/test.rem(1044): Trig = Wednesday, 12 June, 1991
../tests/test.rem(1044): Trig = Thursday, 13 June, 1991
../tests/test.rem(1044): Trig = Friday, 14 June, 1991
../tests/test.rem(1044): Trig = Saturday, 15 June, 1991
../tests/test.rem(1044): Trig = Sunday, 16 June, 1991
../tests/test.rem(1044): Trig = Monday, 17 June, 1991
../tests/test.rem(1044): Trig = Tuesday, 18 June, 1991
../tests/test.rem(1044): Trig = Wednesday, 19 June, 1991
../tests/test.rem(1044): Trig = Thursday, 20 June, 1991
../tests/test.rem(1044): Trig = Friday, 21 June, 1991
../tests/test.rem(1044): Trig = Saturday, 22 June, 1991
../tests/test.rem(1044): Trig = Sunday, 23 June, 1991
../tests/test.rem(1044): Trig = Monday, 24 June, 1991
../tests/test.rem(1044): Trig = Tuesday, 25 June, 1991
../tests/test.rem(1044): Trig = Wednesday, 26 June, 1991
../tests/test.rem(1044): Trig = Thursday, 27 June, 1991
../tests/test.rem(1044): Trig = Friday, 28 June, 1991
../tests/test.rem(1044): Trig = Saturday, 29 June, 1991
../tests/test.rem(1044): Trig = Sunday, 30 June, 1991
../tests/test.rem(1044): Trig = Monday, 1 July, 1991
../tests/test.rem(1044): Trig = Tuesday, 2 July, 1991
../tests/test.rem(1044): Trig = Wednesday, 3 July, 1991
../tests/test.rem(1044): Trig = Thursday, 4 July, 1991
../tests/test.rem(1044): Trig = Friday, 5 July, 1991
../tests/test.rem(1044): Trig = Saturday, 6 July, 1991
../tests/test.rem(1044): Trig = Sunday, 7 July, 1991
../tests/test.rem(1044): Trig = Monday, 8 July, 1991
../tests/test.rem(1044): Trig = Tuesday, 9 July, 1991
../tests/test.rem(1044): Trig = Wednesday, 10 July, 1991
../tests/test.rem(1044): Trig = Thursday, 11 July, 1991
../tests/test.rem(1044): Trig = Friday, 12 July, 1991
../tests/test.rem(1044): Trig = Saturday, 13 July, 1991
../tests/test.rem(1044): Trig = Sunday, 14 July, 1991
../tests/test.rem(1044): Trig = Monday, 15 July, 1991
../tests/test.rem(1044): Can't compute trigger
REM SATSIFY ""
../tests/test.rem(1045): Missing REM type; assuming MSG
../tests/test.rem(1045): Trig = Saturday, 16 February, 1991
SATSIFY ""
REM SATISFY [version() > "01.00.00"]
../tests/test.rem(1045): SATISFY: expression has no reference to trigdate() or $T...
../tests/test.rem(1045): Trig = Saturday, 16 February, 1991
version() => "05.00.05"
"05.00.05" > "01.00.00" => 1
../tests/test.rem(1045): Trig(satisfied) = Saturday, 16 February, 1991
REM SATISFY [max(x, max(x, 1, 2, 3), 4, 5, 6) * 5]
../tests/test.rem(1046): SATISFY: expression has no reference to trigdate() or $T...
../tests/test.rem(1046): Trig = Saturday, 16 February, 1991
version() => "05.00.06"
"05.00.06" > "01.00.00" => 1
../tests/test.rem(1046): Trig(satisfied) = Saturday, 16 February, 1991
REM SATISFY [max(x, max(x, 1, 2, 3), 4, 5, 6) * 5]
../tests/test.rem(1047): SATISFY: expression has no reference to trigdate() or $T...
../tests/test.rem(1047): 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(1046): Trig(satisfied) = Saturday, 16 February, 1991
../tests/test.rem(1047): Trig(satisfied) = Saturday, 16 February, 1991
FSET gg(x) 0
REM WARN gg MSG Wookie
../tests/test.rem(1049): WARN function `gg' defined at ../tests/test.rem:1048 does not use its argument
../tests/test.rem(1049): Trig = Saturday, 16 February, 1991
../tests/test.rem(1050): WARN function `gg' defined at ../tests/test.rem:1049 does not use its argument
../tests/test.rem(1050): Trig = Saturday, 16 February, 1991
Entering UserFN gg(1)
Leaving UserFN gg(1) => 0
../tests/test.rem(1049): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1049): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
Wookie
REM AT 11:00 SCHED gg MSG blork
../tests/test.rem(1050): SCHED function `gg' defined at ../tests/test.rem:1048 does not use its argument
../tests/test.rem(1050): Trig = Saturday, 16 February, 1991 AT 11:00
../tests/test.rem(1050): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1050): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1051): SCHED function `gg' defined at ../tests/test.rem:1049 does not use its argument
../tests/test.rem(1051): Trig = Saturday, 16 February, 1991 AT 11:00
blork
REM OMITFUNC gg MSG hehe
../tests/test.rem(1051): OMITFUNC function `gg' defined at ../tests/test.rem:1048 does not use its argument
../tests/test.rem(1051): Trig = Saturday, 16 February, 1991
../tests/test.rem(1051): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1051): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1052): OMITFUNC function `gg' defined at ../tests/test.rem:1049 does not use its argument
../tests/test.rem(1052): Trig = Saturday, 16 February, 1991
hehe
FSET gg(x,y,z) 0
../tests/test.rem(1053): Function gg redefined (previously defined at ../tests/test.rem:1048)
../tests/test.rem(1054): Function gg redefined (previously defined at ../tests/test.rem:1049)
REM WARN gg MSG Wookie
../tests/test.rem(1054): WARN function `gg' defined at ../tests/test.rem:1053 should take 1 argument but actually takes 3
../tests/test.rem(1054): Trig = Saturday, 16 February, 1991
../tests/test.rem(1054): Undefined WARN function: `gg'
../tests/test.rem(1054): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1054): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1055): WARN function `gg' defined at ../tests/test.rem:1054 should take 1 argument but actually takes 3
../tests/test.rem(1055): Trig = Saturday, 16 February, 1991
../tests/test.rem(1055): Undefined WARN function: `gg'
Wookie
REM AT 11:00 SCHED gg MSG blork
../tests/test.rem(1055): SCHED function `gg' defined at ../tests/test.rem:1053 should take 1 argument but actually takes 3
../tests/test.rem(1055): Trig = Saturday, 16 February, 1991 AT 11:00
../tests/test.rem(1055): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1055): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1056): SCHED function `gg' defined at ../tests/test.rem:1054 should take 1 argument but actually takes 3
../tests/test.rem(1056): Trig = Saturday, 16 February, 1991 AT 11:00
blork
REM OMITFUNC gg MSG hehe
../tests/test.rem(1056): OMITFUNC function `gg' defined at ../tests/test.rem:1053 should take 1 argument but actually takes 3
../tests/test.rem(1056): Trig = Saturday, 16 February, 1991
../tests/test.rem(1056): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1056): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1057): OMITFUNC function `gg' defined at ../tests/test.rem:1054 should take 1 argument but actually takes 3
../tests/test.rem(1057): Trig = Saturday, 16 February, 1991
hehe
FSET gg() 0
../tests/test.rem(1058): Function gg redefined (previously defined at ../tests/test.rem:1053)
../tests/test.rem(1059): Function gg redefined (previously defined at ../tests/test.rem:1054)
REM WARN gg MSG Wookie
../tests/test.rem(1059): WARN function `gg' defined at ../tests/test.rem:1058 should take 1 argument but actually takes 0
../tests/test.rem(1059): Trig = Saturday, 16 February, 1991
../tests/test.rem(1059): Undefined WARN function: `gg'
../tests/test.rem(1059): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1059): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1060): WARN function `gg' defined at ../tests/test.rem:1059 should take 1 argument but actually takes 0
../tests/test.rem(1060): Trig = Saturday, 16 February, 1991
../tests/test.rem(1060): Undefined WARN function: `gg'
Wookie
REM AT 11:00 SCHED gg MSG blork
../tests/test.rem(1060): SCHED function `gg' defined at ../tests/test.rem:1058 should take 1 argument but actually takes 0
../tests/test.rem(1060): Trig = Saturday, 16 February, 1991 AT 11:00
../tests/test.rem(1060): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1060): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1061): SCHED function `gg' defined at ../tests/test.rem:1059 should take 1 argument but actually takes 0
../tests/test.rem(1061): 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 should take 1 argument but actually takes 0
../tests/test.rem(1061): Trig = Saturday, 16 February, 1991
../tests/test.rem(1061): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1061): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1062): OMITFUNC function `gg' defined at ../tests/test.rem:1059 should take 1 argument but actually takes 0
../tests/test.rem(1062): Trig = Saturday, 16 February, 1991
hehe
FSET gg(x) x-x
../tests/test.rem(1063): Function gg redefined (previously defined at ../tests/test.rem:1058)
../tests/test.rem(1064): Function gg redefined (previously defined at ../tests/test.rem:1059)
REM WARN gg MSG Wookie
../tests/test.rem(1064): Trig = Saturday, 16 February, 1991
../tests/test.rem(1065): Trig = Saturday, 16 February, 1991
Entering UserFN gg(1)
x => 1
x => 1
1 - 1 => 0
Leaving UserFN gg(1) => 0
../tests/test.rem(1064): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1064): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
Wookie
REM AT 11:00 SCHED gg MSG blork
../tests/test.rem(1065): Trig = Saturday, 16 February, 1991 AT 11:00
../tests/test.rem(1065): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1065): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1066): Trig = Saturday, 16 February, 1991 AT 11:00
blork
REM OMITFUNC gg MSG hehe
../tests/test.rem(1066): Trig = Saturday, 16 February, 1991
../tests/test.rem(1066): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1066): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1067): Trig = Saturday, 16 February, 1991
hehe
REM WARN not_defined MSG Wookie
../tests/test.rem(1068): Trig = Saturday, 16 February, 1991
../tests/test.rem(1068): Undefined WARN function: `not_defined'
../tests/test.rem(1068): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1068): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1069): Trig = Saturday, 16 February, 1991
../tests/test.rem(1069): Undefined WARN function: `not_defined'
Wookie
REM AT 11:00 SCHED not_defined MSG blork
../tests/test.rem(1069): Undefined SCHED function: `not_defined'
../tests/test.rem(1069): Trig = Saturday, 16 February, 1991 AT 11:00
../tests/test.rem(1069): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1069): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1070): Undefined SCHED function: `not_defined'
../tests/test.rem(1070): Trig = Saturday, 16 February, 1991 AT 11:00
blork
REM OMITFUNC not_defined MSG hehe
../tests/test.rem(1070): Undefined OMITFUNC function: `not_defined'
../tests/test.rem(1070): Trig = Saturday, 16 February, 1991
../tests/test.rem(1070): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1070): Function `subst_ampm' defined at ../tests/test.rem:931 should take 1 argument, but actually takes 7
../tests/test.rem(1071): Undefined OMITFUNC function: `not_defined'
../tests/test.rem(1071): Trig = Saturday, 16 February, 1991
hehe
@@ -5681,29 +5638,51 @@ set xyz ! "0"
# Test error messages for function calls with too many / too few args
set zxk version(1)
../tests/test.rem(1114): version: Too many arguments
../tests/test.rem(1115): version: Too many arguments
version(1)
^-- here
set zxk max()
../tests/test.rem(1115): max: Not enough arguments
../tests/test.rem(1116): max: Not enough arguments
max()
^-- here
fset dooby(x) 1
set zxk dooby()
dooby(...) => Not enough arguments
../tests/test.rem(1118): dooby(): Not enough arguments
../tests/test.rem(1119): dooby(): Not enough arguments
set zxk dooby(1, 2)
dooby(...) => Too many arguments
../tests/test.rem(1119): dooby(): Too many arguments
../tests/test.rem(1120): 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(1122): `1873' is not recognized as a year (1990-5990) or a day number (1-31)
../tests/test.rem(1123): `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(1123): Bad date specification: `1873-12-11'
../tests/test.rem(1124): Bad date specification: `1873-12-11'
# Test $SuppressImplicitWarnings
REM wookie
../tests/test.rem(1127): Missing REM type; assuming MSG
../tests/test.rem(1127): Trig = Saturday, 16 February, 1991
wookie
Barf
../tests/test.rem(1128): Unrecognized command; interpreting as REM
../tests/test.rem(1128): Trig = Saturday, 16 February, 1991
Barf
set $SuppressImplicitWarnings 1
REM wookie
../tests/test.rem(1131): Trig = Saturday, 16 February, 1991
wookie
Barf
../tests/test.rem(1132): Trig = Saturday, 16 February, 1991
Barf
# Don't want Remind to queue reminders
EXIT
@@ -12602,7 +12581,7 @@ SECURITY: Won't read world-writable file or directory!
Error reading include_dir/ww: Can't open file
SECURITY: Won't read world-writable file or directory!
Error reading include_dir/ww: No files matching *.rem
05.00.05
05.00.06
NOTE JSONQUEUE
[{"priority":2,"eventstart":"VOLATILE","time":"23:59","nexttime":"23:59","tdelta":0,"trep":0,"rundisabled":0,"ntrig":1,"filename":"../tests/queue2.rem","lineno":1,"type":"MSG_TYPE","body":"XXXX"},{"priority":999,"eventstart":"VOLATILE","time":"23:58","nexttime":"23:58","tdelta":0,"trep":0,"rundisabled":0,"ntrig":1,"filename":"../tests/queue1.rem","lineno":5,"type":"MSG_TYPE","body":"quux"},{"priority":42,"eventstart":"VOLATILE","time":"23:57","nexttime":"23:57","tdelta":0,"trep":0,"rundisabled":0,"ntrig":1,"filename":"../tests/queue1.rem","lineno":4,"type":"MSG_TYPE","body":"bar"},{"priority":5000,"eventstart":"VOLATILE","time":"23:56","nexttime":"23:56","tdelta":0,"trep":0,"rundisabled":0,"ntrig":1,"filename":"../tests/queue1.rem","lineno":3,"type":"MSG_TYPE","body":"foo"}]
NOTE ENDJSONQUEUE
+9
View File
@@ -931,6 +931,7 @@ REM MSG %{bad}
FSET subst_ampm(a, b, c, d, e, f, g) "wookie"
REM AT 11:00 MSG %2
FUNSET subst_ampm
# Test FUNSET
FSET square(x) x*x
@@ -1122,6 +1123,14 @@ set zxk dooby(1)
REM 1 Jan 1873 MSG This should fail
REM 1873-12-11 MSG Also bad.
# Test $SuppressImplicitWarnings
REM wookie
Barf
set $SuppressImplicitWarnings 1
REM wookie
Barf
# Don't want Remind to queue reminders
EXIT