diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2015-04-14 15:02:27 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2015-04-14 15:02:27 +0300 |
commit | a830a63718f1e9a0a812e772bef6e891668afd17 (patch) | |
tree | 83c1c4f2a6f651d7bce02876230bd0d9f2e1af4e | |
parent | 3de71423b3a39be0b9536413321c953cbf99b119 (diff) | |
download | egawk-a830a63718f1e9a0a812e772bef6e891668afd17.tar.gz egawk-a830a63718f1e9a0a812e772bef6e891668afd17.tar.bz2 egawk-a830a63718f1e9a0a812e772bef6e891668afd17.zip |
Make indirect call of gensub with 3 args work.
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | builtin.c | 4 | ||||
-rw-r--r-- | test/ChangeLog | 5 | ||||
-rw-r--r-- | test/indirectbuiltin.awk | 6 | ||||
-rw-r--r-- | test/indirectbuiltin.ok | 1 |
5 files changed, 17 insertions, 2 deletions
@@ -5,6 +5,9 @@ to an unsigned time_t. Thanks again to Glaudiston Gomes da Silva <glaudistong@gmail.com>. + Unrelated: + * builtin.c (call_sub): Fix for indirect gensub, 3 args now works. + 2015-04-13 Arnold D. Robbins <arnold@skeeve.com> * regcomp.c (analyze): Prevent malloc(0). @@ -3063,10 +3063,10 @@ call_sub(const char *name, int nargs) PUSH(rhs); nargs++; } - PUSH(rhs); + else + PUSH(rhs); } - unref(zero); result = do_sub(nargs, flags); if (flags != GENSUB) diff --git a/test/ChangeLog b/test/ChangeLog index 0092932f..201f8a32 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,8 @@ +2015-04-14 Arnold D. Robbins <arnold@skeeve.com> + + * indirectbuiltin.awk: Add another test (gensub 3 args). + * indirectbuiltin.ok: Update good results. + 2015-04-13 Arnold D. Robbins <arnold@skeeve.com> * Makefile.am (negtime): New test. diff --git a/test/indirectbuiltin.awk b/test/indirectbuiltin.awk index 4d5291d2..c9e75217 100644 --- a/test/indirectbuiltin.awk +++ b/test/indirectbuiltin.awk @@ -98,6 +98,12 @@ BEGIN { i1 = @fun("f", "q", "g", "ff11bb") print_result("string", fun, b1, i1) + fun = "gensub" + $0 = "ff11bb" + b1 = gensub("f", "q", "g") + i1 = @fun("f", "q", "g") + print_result("string", fun " (3 args)", b1, i1) + fun = "gsub" $0 = "ff11bb" b1 = gsub("f", "q") diff --git a/test/indirectbuiltin.ok b/test/indirectbuiltin.ok index 312bbd76..08c87610 100644 --- a/test/indirectbuiltin.ok +++ b/test/indirectbuiltin.ok @@ -14,6 +14,7 @@ math: sqrt: pass math: srand: pass math: xor: pass string: gensub: pass +string: gensub (3 args): pass string: gsub: pass string: index: pass string: dcgettext: pass |