Commit Graph

75 Commits

Author SHA1 Message Date
Dianne Skoll 5092d5bc16 More warning_level annotations. 2025-09-25 18:08:29 -04:00
Dianne Skoll 7b7b861399 Disable RUN in callbacks to ordx and subst_xxx functions. 2025-08-15 20:27:51 -04:00
Dianne Skoll f4805a443b Prevent segfault if we just say "push-funcs" 2025-07-24 14:45:52 -04:00
Dianne Skoll 9bd0055d4d Add PUSH-FUNCS and POP-FUNCS. 2025-07-24 14:31:12 -04:00
Dianne Skoll 609b68ab21 Add const-correctness to various hash table functions. 2025-07-21 18:28:24 -04:00
Dianne Skoll c3ab2a15cf Add some consts as recommended by make cppcheck. 2025-07-21 17:44:13 -04:00
Dianne Skoll dc777c95df Fix cppcheck warning. 2025-06-03 16:54:47 -04:00
Dianne Skoll 71d2da19a8 Introduce "FSET - f(args) expr" syntax to define a function and suppress any "redefined function" warnings. 2025-05-28 14:40:46 -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 b33a3191f5 Better nonconst diagnostic messages. 2025-05-22 09:38:06 -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 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 a35920f28e Put quotes around function name when issuing "redefined" warning. 2025-01-14 11:30:06 -05:00
Dianne Skoll 17ccf5d2b4 Make more messages translatable. 2025-01-14 11:27:47 -05:00
Dianne Skoll 562cec3dc8 Mass-update copyright date to 2025. 2024-12-29 13:47:07 -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 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 6b05d772f0 Exit if we run out of memory initializing hash tables. There's no sane way to recover. 2024-12-09 18:10:03 -05:00
Dianne Skoll 4a2d707654 Properly handle deleting everything out of a hash table. 2024-12-09 13:59:41 -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 553899127a Diagnose redefinition of built-in functions by checking newname before oldname
Remind unit tests / tests (push) Failing after 30s
2024-11-14 22:27:54 -05:00
Dianne Skoll 46e1b7386e Don't allow FRENAME to attempt to rename a built-in function. 2024-11-14 10:17:33 -05:00
Dianne Skoll f1591140d4 - Add $DefaultDelta system variable.
- Make FRENAME delete definition of newname if oldname is not defined.
- Document FRENAME, $DefaultDelta and the char(8) hack.
2024-11-13 21:45:54 -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 302bc5a5de Make hash table sizes prime numbers instead of powers of two. 2024-10-12 10:24:22 -04:00
Dianne Skoll 950c0b3747 Use HashPJW for hasing user-defined function names and variable names.
Remind unit tests / tests (push) Successful in 26s
2024-10-12 10:17:50 -04: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 a22e81040f Check error return in a couple of spots. 2024-09-01 23:22:00 -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 8c072cd9b6 Add a warning if a function is redefined. 2024-08-27 21:41:45 -04:00
Dianne Skoll b3cf741d15 Suppress warning in GCC 14.2.1. Patch courtesy of Emanuele Torre
Remind unit tests / tests (push) Successful in 38s
2024-08-23 07:44:36 -04:00
Dianne Skoll 526610bdd2 Stop parsing user func early if possible. 2024-07-02 09:16:47 -04:00
Dianne Skoll 0e010b56ec Fix some error messages. 2024-06-03 17:59:11 -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 b78702cc53 Assume all function names are lower-case. 2024-06-01 08:46:27 -04:00
Dianne Skoll d2b43605ad Completely revamp expression engine. 2024-06-01 08:19:12 -04:00
Dianne Skoll 7728e09337 Don't allow duplicate arg names in function definitions. 2024-06-01 08:19:09 -04:00
Dianne Skoll 959355b19c Stricter parsing of '-i' option. 2024-05-25 09:36:33 -04:00
Dianne Skoll c03a95ad94 Use built-in versions of strdup, strcasecmp and strncasecmp instead of writing our own. 2024-04-21 14:44:24 -04:00
Dianne Skoll 72d10178bf Mass-update copyright year to 2024. 2023-12-31 12:05:03 -05:00
Dianne Skoll 32e8db322d Stricter parsing of SET command expressions. 2023-12-22 14:22:54 -05:00
Dianne Skoll 64fa71ab09 Avoid segfault if we define a function on the command-line with -i 2023-02-22 09:57:09 -05:00
Dianne Skoll 18f21693af Clean up some warnings from cppcheck static analyzer. 2023-02-07 10:28:02 -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 2afe95d090 Fix typo in comment. 2022-10-18 17:25:59 -04:00
Dianne Skoll dbe4c662c1 Add the "FUNSET" command to delete user-defined functions. 2022-10-12 14:12:13 -04:00
Dianne Skoll df9ef6e13a Print call stack if an error occurs in a user-defined function. 2022-03-25 14:03:06 -04:00