diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2011-05-14 22:37:30 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2011-05-14 22:37:30 +0300 |
commit | 08e3f49c0a98bcbc327a8e7e260386b0b22d3988 (patch) | |
tree | 151331f69c9b5bbc1800da969fb935cc94e3877c | |
parent | 3750f26244a32a1b077f1a796f26ffd10b2a7b6b (diff) | |
download | egawk-08e3f49c0a98bcbc327a8e7e260386b0b22d3988.tar.gz egawk-08e3f49c0a98bcbc327a8e7e260386b0b22d3988.tar.bz2 egawk-08e3f49c0a98bcbc327a8e7e260386b0b22d3988.zip |
Day one bug fix, z/OS fix, new test.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | dfa.c | 4 | ||||
-rw-r--r-- | io.c | 6 | ||||
-rw-r--r-- | test/ChangeLog | 5 | ||||
-rw-r--r-- | test/Makefile.am | 6 | ||||
-rw-r--r-- | test/Makefile.in | 11 | ||||
-rw-r--r-- | test/Maketests | 5 |
7 files changed, 37 insertions, 7 deletions
@@ -1,3 +1,10 @@ +Sat May 14 22:25:50 2011 Arnold D. Robbins <arnold@skeeve.com> + + * io.c (nextfile): Use `in_array' in main loop to see if element + of ARGV exists, instead of using `assoc_lookup'. The latter creates + the element! A day one bug! + * dfa.c (parse_bracket_exp): For z/OS init pattern manually. + Mon May 9 16:30:49 2011 Arnold D. Robbins <arnold@skeeve.com> * array.c (sort_up_value_type): Remove unused variable ret. @@ -1001,8 +1001,10 @@ parse_bracket_exp (void) /* Defer to the system regex library about the meaning of range expressions. */ regex_t re; - char pattern[6] = { '[', c1, '-', c2, ']', 0 }; + char pattern[6] = { '[', 0, '-', 0, ']', 0 }; char subject[2] = { 0, 0 }; + pattern[1] = c1; + pattern[3] = c2; regcomp (&re, pattern, REG_NOSUB); for (c = 0; c < NOTCHAR; ++c) { @@ -327,10 +327,12 @@ nextfile(IOBUF **curfile, int skipping) for (; i < (long) (ARGC_node->lnode->numbr); i++) { tmp = make_number((AWKNUM) i); - arg = *assoc_lookup(ARGV_node, tmp, FALSE); + (void) force_string(tmp); + arg = in_array(ARGV_node, tmp); unref(tmp); - if (arg->stlen == 0) + if (arg == NULL || arg->stlen == 0) continue; + arg = force_string(arg); arg->stptr[arg->stlen] = '\0'; if (! do_traditional) { unref(ARGIND_node->var_value); diff --git a/test/ChangeLog b/test/ChangeLog index 7e486ce1..959656f3 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,8 @@ +Sat May 14 22:28:56 2011 Arnold D. Robbins <arnold@skeeve.com> + + * delargv.awk, delargv.ok: New files. + * Makefile.am (delargv): New test. + Mon May 9 15:06:17 2011 Arnold D. Robbins <arnold@skeeve.com> * Makefile.am: Put next and exit tests into gawk specific tests diff --git a/test/Makefile.am b/test/Makefile.am index e51edfd3..0bf2bad5 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -149,6 +149,8 @@ EXTRA_DIST = \ datanonl.ok \ defref.awk \ defref.ok \ + delargv.awk \ + delargv.ok \ delarprm.awk \ delarprm.ok \ delarpm2.awk \ @@ -750,8 +752,8 @@ BASIC_TESTS = \ arynocls aryprm1 aryprm2 aryprm3 aryprm4 aryprm5 aryprm6 aryprm7 \ aryprm8 arysubnm asgext awkpath back89 backgsub childin clobber \ closebad clsflnam compare compare2 concat1 concat2 concat3 \ - concat4 convfmt datanonl defref delarpm2 delarprm delfunc dynlj \ - eofsplit exitval1 exitval2 fcall_exit fcall_exit2 fldchg \ + concat4 convfmt datanonl defref delargv delarpm2 delarprm delfunc \ + dynlj eofsplit exitval1 exitval2 fcall_exit fcall_exit2 fldchg \ fldchgnf fnamedat fnarray fnarray2 fnaryscl fnasgnm fnmisc fordel \ forref forsimp fsbs fsrs fsspcoln fstabplus funsemnl funsmnam \ funstack getline getline2 getline3 getlnbuf getnr2tb getnr2tm \ diff --git a/test/Makefile.in b/test/Makefile.in index e99cc0b0..3662da8d 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -334,6 +334,8 @@ EXTRA_DIST = \ datanonl.ok \ defref.awk \ defref.ok \ + delargv.awk \ + delargv.ok \ delarprm.awk \ delarprm.ok \ delarpm2.awk \ @@ -935,8 +937,8 @@ BASIC_TESTS = \ arynocls aryprm1 aryprm2 aryprm3 aryprm4 aryprm5 aryprm6 aryprm7 \ aryprm8 arysubnm asgext awkpath back89 backgsub childin clobber \ closebad clsflnam compare compare2 concat1 concat2 concat3 \ - concat4 convfmt datanonl defref delarpm2 delarprm delfunc dynlj \ - eofsplit exitval1 exitval2 fcall_exit fcall_exit2 fldchg \ + concat4 convfmt datanonl defref delargv delarpm2 delarprm delfunc \ + dynlj eofsplit exitval1 exitval2 fcall_exit fcall_exit2 fldchg \ fldchgnf fnamedat fnarray fnarray2 fnaryscl fnasgnm fnmisc fordel \ forref forsimp fsbs fsrs fsspcoln fstabplus funsemnl funsmnam \ funstack getline getline2 getline3 getlnbuf getnr2tb getnr2tm \ @@ -1884,6 +1886,11 @@ defref: @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +delargv: + @echo delargv + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + delarpm2: @echo delarpm2 @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/Maketests b/test/Maketests index 90a3f856..2c31422a 100644 --- a/test/Maketests +++ b/test/Maketests @@ -170,6 +170,11 @@ defref: @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +delargv: + @echo delargv + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + delarpm2: @echo delarpm2 @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ |