aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--interpret.h6
2 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 7c7fbccb..a892931e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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