Commit Graph

85 Commits

Author SHA1 Message Date
Dianne Skoll
814dd51270 Start working on TODO and COMPLETE-THROUGH. Still a WIP!!! 2025-08-11 16:29:34 -04:00
Dianne Skoll
24ed30fee0 Add RETURN command
Suggestion from Hymie! on Remind mailing list.
2025-08-06 11:08:41 -04:00
Dianne Skoll
9bd0055d4d Add PUSH-FUNCS and POP-FUNCS. 2025-07-24 14:31:12 -04:00
Dianne Skoll
235f947dd1 Replace PUSH-SYSVARS / POP-SYSVARS with better PUSH-VARS / POP-VARS commands. 2025-07-23 19:27:09 -04:00
Dianne Skoll
7325375ccd Add PUSH-SYSVARS and POP-SYSVARS commands. 2025-07-22 17:20:58 -04:00
Dianne Skoll
9624b1045c Track filename and line number where variables are defined. 2025-05-24 22:58:28 -04:00
Dianne Skoll
af2daa7a87 Use "is_constant" attribute for Var to be consistent with UserFunc. 2025-05-24 10:10:44 -04:00
Dianne Skoll
c5bc459dd9 Add "-du" debugging flag to print a list of variables that were set but never used. 2025-05-23 16:55:10 -04:00
Dianne Skoll
4c2b6031cd Disable shell() inside an eval("...") for safety.
Based on email from Tim Chase.
2025-05-23 11:48:06 -04:00
Dianne Skoll
3118f8d2a4 Add "eval()" built-in function. 2025-05-22 13:52:07 -04:00
Dianne Skoll
1d3c1f006f Take care of some corner-cases of non-const tracking. 2025-05-22 09:35:18 -04:00
Dianne Skoll
1e3657b728 Overhaul how IF/ELSE work so we can track "constant-ness" of variables.
We now keep track of whether a variable holds a "constant" value
(ie, a value that will stay the same on successive Remind runs)
so Purge Mode can be more accurate.
2025-05-20 22:11:39 -04:00
Dianne Skoll
21904e708f Add "n" debugging flag to diagnose non-constant expressions. 2025-05-20 11:17:04 -04:00
Dianne Skoll
471ecff267 Report both starting and ending lines for commands spanning multiple lines because of \-line continuation.
This affects error and warning messages primarily.  The JSON
interchange format has an additional lineno_start entry for
reminders that span multiple lines.  (Historically, lineno
was the *last* line of the reminder statement and I kept
that for compatibility.)
2025-02-16 20:30:16 -05:00
Dianne Skoll
e6ceeee2ec Add the "INFO" clause to the REM command.
All checks were successful
Remind unit tests / tests (push) Successful in 33s
Intended to pass additional information to a back-end to use as it wishes.
One example is to add extra info such as locaiton, description, etc. to ical
files.
2025-01-28 15:51:28 -05:00
Dianne Skoll
4f351c089e Add the "-dq" debugging flag, for outputing TRANSLATE commands needed by a reminder script.
All checks were successful
Remind unit tests / tests (push) Successful in 44s
2025-01-17 08:46:29 -05:00
Dianne Skoll
1850607542 Use hex constants for flags that are bitmasks.
All checks were successful
Remind unit tests / tests (push) Successful in 37s
2024-12-31 15:26:18 -05:00
Dianne Skoll
213138a7b7 Split the "-ds" debug flag into "-ds" and "-dh"
-ds prints parsed expressions
   -dh dumps hash-table statistics on exit.
2024-12-31 12:50:15 -05:00
Dianne Skoll
562cec3dc8 Mass-update copyright date to 2025. 2024-12-29 13:47:07 -05:00
Dianne Skoll
2504b39be2 Remove const qualifier.
All checks were successful
Remind unit tests / tests (push) Successful in 32s
2024-12-16 17:10:45 -05:00
Dianne Skoll
5e333f6162 Add the SYSINCLUDE directive. 2024-12-13 08:18:22 -05:00
Dianne Skoll
af8b4e6df1 Add const qualifier on Sysvar.value.
All checks were successful
Remind unit tests / tests (push) Successful in 44s
2024-12-12 20:27:54 -05:00
Dianne Skoll
c7ca1b4baa Get rid of the DyamicFoo hacks and make most translatable variables live in the translation table. 2024-12-12 11:43:03 -05:00
Dianne Skoll
973019c4c7 Implement TRANSLATE keyword. 2024-12-09 12:56:40 -05:00
Dianne Skoll
cb712ad7e7 Replace the individual hash table implementations with a unified one. 2024-12-09 11:54:52 -05:00
Dianne Skoll
062a84b758 Simplify HAS_DATE and HAS_TIME macros by making type values into bitmasks.
All checks were successful
Remind unit tests / tests (push) Successful in 34s
2024-12-02 09:50:33 -05:00
Dianne Skoll
c63c4cf07e Make token name const. 2024-11-19 22:59:47 -05:00
Dianne Skoll
586b3565f0 Sort token types. 2024-11-19 22:58:19 -05:00
Dianne Skoll
0f5de395ff Add FRENAME command. 2024-11-13 17:29:32 -05:00
Dianne Skoll
533718b0a0 Massive whitespace cleanups: Untabify everything. 2024-11-08 20:30:13 -05:00
Dianne Skoll
00ad38e5fe Put N_ERROR at the end. 2024-09-16 14:47:09 -04:00
Dianne Skoll
30e2e9c633 When looking at SATISFY expressions to make sure they use the trigger date, look recursively into user-defined functions in the expression also. 2024-08-28 17:49:12 -04:00
Dianne Skoll
9a3f28f6fc Optimize storage of short string constants in expr_node objects. 2024-06-12 10:19:27 -04:00
Dianne Skoll
b49c0f52bd Implement EXPR ON and EXPR OFF 2024-06-02 12:39:00 -04:00
Dianne Skoll
d77d9854d2 Remove src/expr.h - everything in it is now in types.h or protos.h 2024-06-02 10:26:41 -04:00
Dianne Skoll
c2b53f95a4 Remove dead code 2024-06-02 10:23:24 -04:00
Dianne Skoll
c95ad0261a Start adding comments; do not distinguish between N_BINARY_OPERATOR and N_UNARY_OPERATOR 2024-06-01 13:37:58 -04:00
Dianne Skoll
d2b43605ad Completely revamp expression engine. 2024-06-01 08:19:12 -04:00
Dianne Skoll
61fcc1b275 Add "s" debugging flag to see expression-parsing stack high-water marks.
Reduce default value stack size from 1000 to 100.
2024-03-13 12:06:55 -04:00
Dianne Skoll
72d10178bf Mass-update copyright year to 2024. 2023-12-31 12:05:03 -05:00
Dianne Skoll
2f196e3c9f Update copyright year. :) 2022-12-30 13:43:28 -05:00
Dianne Skoll
0cea410529 Add a bunch of: "SPDX-License-Identifier: GPL-2.0-only" comments. 2022-12-26 14:24:33 -05:00
Dianne Skoll
a1eafb2c89 Add NOQUEUE modifier; reverse order of args to soleq and make second arg optional (defaults to today()) 2022-12-23 11:04:18 -05:00
Dianne Skoll
dbe4c662c1 Add the "FUNSET" command to delete user-defined functions. 2022-10-12 14:12:13 -04:00
Dianne Skoll
f3cca092be Add tests for ansicolors function and new $Use...Colors variables. 2022-10-09 12:59:52 -04:00
Dianne Skoll
4d17494371 Bump copyright date. 2022-03-14 21:12:20 -04:00
Dianne Skoll
e1fa11c94c Add the First/Second/Third/Fourth/Last syntactic sugar and the
~N/~~N forms of "back"
2022-03-11 20:53:52 -05:00
Dianne Skoll
e51d7f3c6d Add "DO file" command which is equivalent to "INCLUDE [filedir()]/file" 2022-01-20 19:30:10 -05:00
Dianne Skoll
79289fe6c4 Add ADDMOMIT keyword; bump version to 03.03.10 2021-11-18 15:13:12 -05:00
Dianne Skoll
a163a0c446 Add INCLUDECMD command
Executes a shell command and reads the resulting output as a Remind script.
2021-09-04 23:00:03 -04:00