diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | interpret.h | 6 |
2 files changed, 11 insertions, 1 deletions
@@ -4,6 +4,12 @@ result is passed to length() with --lint. Based on discussions in comp.lang.awk. + Unrelated: + + * interpret.h (r_interpret): For indirect function call, separate + error message if lookup returned NULL. Otherwise got a core dump. + Thanks to "Kenny McKormack" for the report in comp.lang.awk. + 2014-08-27 Arnold D. Robbins <arnold@skeeve.com> * configure.ac: Add test for strcasecmp. diff --git a/interpret.h b/interpret.h index c26a9d46..be017355 100644 --- a/interpret.h +++ b/interpret.h @@ -1038,7 +1038,11 @@ match_re: f = lookup(t1->stptr); } - if (f == NULL || f->type != Node_func) { + if (f == NULL) { + /* FIXME: See if function is a built-in and try to call it */ + fatal(_("`%s' is not a user-defined function, so it cannot be called indirectly"), + t1->stptr); + } else if(f->type != Node_func) { if (f->type == Node_ext_func || f->type == Node_old_ext_func) fatal(_("cannot (yet) call extension functions indirectly")); else |