const char *sv_progname;
/* The body might be empty, still has to eval the args */
- if (!op->r.n->info)
+ if (!op->r.n->info && !op->r.f->body.first)
syntax_error(EMSG_UNDEF_FUNC);
vbeg = v = nvalloc(op->r.f->nargs + 1);
"L1\n\nL2\n\n" \
"" ""
+prg='
+function outer_fun() {
+ return 1
+}
+END {
+ i=1
+ print "L" i "\n"
+ i += outer_fun()
+ print "L" i "\n"
+}'
+testing "awk properly handles function from other scope" \
+ "awk '$prg'" \
+ "L1\n\nL2\n\n" \
+ "" ""
+
+prg='
+END {
+ i=1
+ print "L" i "\n"
+ i + trigger_error_fun()
+ print "L" i "\n"
+}'
+testing "awk properly handles undefined function" \
+ "awk '$prg' 2>&1" \
+ "L1\n\nawk: cmd. line:5: Call to undefined function\n" \
+ "" ""
+
+
optional DESKTOP
testing "awk hex const 1" "awk '{ print or(0xffffffff,1) }'" "4294967295\n" "" "\n"
testing "awk hex const 2" "awk '{ print or(0x80000000,1) }'" "2147483649\n" "" "\n"