aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2011-05-14 22:37:30 +0300
committerArnold D. Robbins <arnold@skeeve.com>2011-05-14 22:37:30 +0300
commit08e3f49c0a98bcbc327a8e7e260386b0b22d3988 (patch)
tree151331f69c9b5bbc1800da969fb935cc94e3877c
parent3750f26244a32a1b077f1a796f26ffd10b2a7b6b (diff)
downloadegawk-08e3f49c0a98bcbc327a8e7e260386b0b22d3988.tar.gz
egawk-08e3f49c0a98bcbc327a8e7e260386b0b22d3988.tar.bz2
egawk-08e3f49c0a98bcbc327a8e7e260386b0b22d3988.zip
Day one bug fix, z/OS fix, new test.
-rw-r--r--ChangeLog7
-rw-r--r--dfa.c4
-rw-r--r--io.c6
-rw-r--r--test/ChangeLog5
-rw-r--r--test/Makefile.am6
-rw-r--r--test/Makefile.in11
-rw-r--r--test/Maketests5
7 files changed, 37 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index ea26be07..b19de4dd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/dfa.c b/dfa.c
index 650ceac0..7dbc4e9b 100644
--- a/dfa.c
+++ b/dfa.c
@@ -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)
{
diff --git a/io.c b/io.c
index 401b4def..7d15e292 100644
--- a/io.c
+++ b/io.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: $$? >>_$@