Dianne Skoll
9bd0055d4d
Add PUSH-FUNCS and POP-FUNCS.
2025-07-24 14:31:12 -04:00
Dianne Skoll
d944ceb32d
Implement clone_expr_tree in preparation for supporting PUSH-FUNCS / POP-FUNCS.
2025-07-24 12:06:23 -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
700ac85e54
Make warnings for unmatched PUSH-SYSVARS correspond to those for unmatched PUSH-OMIT-CONTEXT
2025-07-22 17:35:21 -04:00
Dianne Skoll
7325375ccd
Add PUSH-SYSVARS and POP-SYSVARS commands.
2025-07-22 17:20:58 -04:00
Dianne Skoll
aa3760bc04
Make a bunch of functions static, on the recommendation of cppcheck.
2025-07-22 15:44:57 -04:00
Dianne Skoll
ea5e8c90ff
More const stuff.
2025-07-21 18:46:31 -04:00
Dianne Skoll
8d88192483
Keep a hash table of filenames we've seen so we don't need to strdup the current filename all over the place.
2025-05-24 22:51:16 -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
633812d961
Add "-c" option to "dump" to show constness when dumping variables.
2025-05-21 23:43:40 -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
3fb1db0880
Add catcherr() built-in function.
2025-05-10 09:33:24 -04:00
Dianne Skoll
190dfa3a8f
Add moonrisedir and moonsetdir functions.
2025-03-19 11:57:01 -04:00
Dianne Skoll
a22c674846
Add moonrise and moonset functions.
2025-03-19 11:45:34 -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
1641f99f97
Include the "info" element in pop-up reminders.
2025-02-01 15:02:54 -05:00
Dianne Skoll
3b43222585
Add the triginfo("header") function and corresponding %<...> substitution sequence.
2025-02-01 14:39:06 -05:00
Dianne Skoll
51b831fb6a
Check for proper escaping in JSON and TRANSLATE DUMP.
2025-02-01 11:15:25 -05:00
Dianne Skoll
e832eb868c
Make INFO require "Header: Value" strings; make the "info" element in the JSON output a hash instead of an array.
Remind unit tests / tests (push) Successful in 36s
2025-01-30 16:58:56 -05:00
Dianne Skoll
e6ceeee2ec
Add the "INFO" clause to the REM command.
...
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
ac3dd1ec7c
Better translation template
2025-01-14 14:54:26 -05:00
Dianne Skoll
96c11e89eb
Add the TRANSLATE GENERATE command to generate a skeleton .rem file for localization.
2025-01-14 13:27:04 -05:00
Dianne Skoll
562cec3dc8
Mass-update copyright date to 2025.
2024-12-29 13:47:07 -05:00
Dianne Skoll
c4aa21ff51
Remove unused functions.
2024-12-24 15:05:15 -05:00
Dianne Skoll
5a2914f6c7
Start hash tables with 7 buckets instead of 17; print more detailed hash stats with -ds; consistently use ErrFp instead of stderr
Remind unit tests / tests (push) Successful in 32s
2024-12-14 11:52:16 -05:00
Dianne Skoll
a19b009f7c
Fix man page typo and cppcheck warnings.
Remind unit tests / tests (push) Successful in 32s
2024-12-13 15:22:46 -05:00
Dianne Skoll
b8c4786b33
Allow INCLUDE/DO/SYSINCLUDE to take a QuotedString argument. This allows for filenames with spaces in them.
2024-12-13 10:38:34 -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
88aacb3905
Get two-way propagation working properly.
2024-12-11 20:08:09 -05:00
Dianne Skoll
a894076bfc
Verify two-way correspondence between translation table and system variables.
2024-12-11 19:48:19 -05:00
Dianne Skoll
d3e6c81a3a
Synthesize mixed-case translations.
2024-12-10 17:02:41 -05:00
Dianne Skoll
0bbbaaf3d9
Implement JSONTRANSLATE -zj command.
2024-12-10 11:48:01 -05:00
Dianne Skoll
4c314ff81c
Add --print-errs and localize error messages in lang/fr.rem.
2024-12-09 20:40:41 -05:00
Dianne Skoll
9f9ae77895
Bound-check GetErr
2024-12-09 20:03:15 -05:00
Dianne Skoll
d9796e72e5
Allow error messages to be localized.
2024-12-09 19:55:23 -05:00
Dianne Skoll
e50d583659
Use case-sensitive hashing for dedup and translation hash tables.
2024-12-09 18:36:53 -05:00
Dianne Skoll
a05d9eefc9
Make "SET $foo" also add a translation table entry if $foo is a dynamic translation variable.
2024-12-09 13:29:05 -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
0f5de395ff
Add FRENAME command.
2024-11-13 17:29:32 -05:00
Dianne Skoll
342c229a57
Get dedup hash table stats; reduce slots to 32.
2024-11-12 21:56:27 -05:00
Dianne Skoll
e0fde98410
Add $DedupeReminders global variable.
2024-11-12 09:26:31 -05:00
Dianne Skoll
533718b0a0
Massive whitespace cleanups: Untabify everything.
2024-11-08 20:30:13 -05:00
Dianne Skoll
ad382fea25
Print hash-table statistics with "-ds" debugging.
Remind unit tests / tests (push) Failing after 29s
2024-10-11 16:34:11 -04:00
Dianne Skoll
a20f2b588e
Accept either 12:34 or '12:34' as a time constant.
2024-09-13 13:02:46 -04:00
Dianne Skoll
8a5b88338b
Add --print-tokens long option to dump Remind tokens to stdout.
2024-09-08 10:29:49 -04:00
Dianne Skoll
ef12da4ec6
Refactor out "truthy".
2024-08-28 20:36:30 -04:00
Dianne Skoll
ac033d75c0
Add the $OnceFile special variable.
...
This lets us specify a timestamp file that Remind
uses to track the last run for the purpose of handling
the ONCE keyword, rather than using the last access date
of the reminder file.
Keeping a timestamp file is a more reliable way to track
when Remind was last run.
2024-07-09 09:23:15 -04:00
Dianne Skoll
325814f5e1
Print the location of unmatched PUSH
2024-06-04 16:25:14 -04:00