diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2017-01-27 12:05:36 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2017-01-27 12:05:36 +0200 |
commit | c0c69f02e4d300aebf91516a1a521828f6885b26 (patch) | |
tree | 821a5e8819911b222071b9710bca5b07c17e7795 | |
parent | d6fe1f907f495863c3ff6875f9d308e5d08ee0ff (diff) | |
download | egawk-c0c69f02e4d300aebf91516a1a521828f6885b26.tar.gz egawk-c0c69f02e4d300aebf91516a1a521828f6885b26.tar.bz2 egawk-c0c69f02e4d300aebf91516a1a521828f6885b26.zip |
Fix assignment from gensub to $0.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | interpret.h | 5 | ||||
-rw-r--r-- | test/ChangeLog | 5 | ||||
-rw-r--r-- | test/Makefile.am | 5 | ||||
-rw-r--r-- | test/Makefile.in | 10 | ||||
-rw-r--r-- | test/Maketests | 5 | ||||
-rw-r--r-- | test/gensub3.awk | 8 | ||||
-rw-r--r-- | test/gensub3.in | 2 | ||||
-rw-r--r-- | test/gensub3.ok | 1 |
9 files changed, 40 insertions, 6 deletions
@@ -1,3 +1,8 @@ +2017-01-27 Andrew J. Schorr <aschorr@telemetry-investments.com> + + * interpret.h [UNFIELD]: Fix condition for assignment from + value with valref == 1. Fixes problems introduced at gawk 4.1.2. + 2017-01-27 Arnold D. Robbins <arnold@skeeve.com> * interpret.h: Updaet copyright year. diff --git a/interpret.h b/interpret.h index 15d77522..bb7cba96 100644 --- a/interpret.h +++ b/interpret.h @@ -26,10 +26,7 @@ #define UNFIELD(l, r) \ { \ /* if was a field, turn it into a var */ \ - if ((r->flags & FIELD) == 0) { \ - l = r; \ - } else if (r->valref == 1) { \ - r->flags &= ~FIELD; \ + if ((r->flags & FIELD) == 0 || r->valref == 1) { \ l = r; \ } else { \ l = dupnode(r); \ diff --git a/test/ChangeLog b/test/ChangeLog index d07a062a..8b16532c 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,8 @@ +2017-01-27 Andrew J. Schorr <aschorr@telemetry-investments.com> + + * Makefile.am (gensub3): New test. + * gensub3.awk, gensub3.in, gensub3.ok: New files. + 2017-01-15 Andrew J. Schorr <aschorr@telemetry-investments.com> * Makefile.am (concat5): New test. diff --git a/test/Makefile.am b/test/Makefile.am index f63c02ac..d89e6108 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -365,6 +365,9 @@ EXTRA_DIST = \ gensub.ok \ gensub2.awk \ gensub2.ok \ + gensub3.awk \ + gensub3.in \ + gensub3.ok \ getline.awk \ getline.in \ getline.ok \ @@ -1119,7 +1122,7 @@ GAWK_EXT_TESTS = \ crlf dbugeval delsub devfd devfd1 devfd2 dumpvars exit \ fieldwdth fpat1 fpat2 fpat3 fpat4 fpat5 fpatnull fsfwfs funlen \ functab1 functab2 functab3 fwtest fwtest2 fwtest3 \ - genpot gensub gensub2 getlndir gnuops2 gnuops3 gnureops \ + genpot gensub gensub2 gensub3 getlndir gnuops2 gnuops3 gnureops \ icasefs icasers id igncdym igncfs ignrcas2 ignrcase \ incdupe incdupe2 incdupe3 incdupe4 incdupe5 incdupe6 incdupe7 \ include include2 indirectbuiltin indirectcall indirectcall2 \ diff --git a/test/Makefile.in b/test/Makefile.in index 2fad102f..5269d0cd 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -622,6 +622,9 @@ EXTRA_DIST = \ gensub.ok \ gensub2.awk \ gensub2.ok \ + gensub3.awk \ + gensub3.in \ + gensub3.ok \ getline.awk \ getline.in \ getline.ok \ @@ -1375,7 +1378,7 @@ GAWK_EXT_TESTS = \ crlf dbugeval delsub devfd devfd1 devfd2 dumpvars exit \ fieldwdth fpat1 fpat2 fpat3 fpat4 fpat5 fpatnull fsfwfs funlen \ functab1 functab2 functab3 fwtest fwtest2 fwtest3 \ - genpot gensub gensub2 getlndir gnuops2 gnuops3 gnureops \ + genpot gensub gensub2 gensub3 getlndir gnuops2 gnuops3 gnureops \ icasefs icasers id igncdym igncfs ignrcas2 ignrcase \ incdupe incdupe2 incdupe3 incdupe4 incdupe5 incdupe6 incdupe7 \ include include2 indirectbuiltin indirectcall indirectcall2 \ @@ -3779,6 +3782,11 @@ gensub2: @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +gensub3: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + getlndir: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/Maketests b/test/Maketests index 84909f37..e7099ea2 100644 --- a/test/Maketests +++ b/test/Maketests @@ -1147,6 +1147,11 @@ gensub2: @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +gensub3: + @echo $@ + @AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + getlndir: @echo $@ @AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/gensub3.awk b/test/gensub3.awk new file mode 100644 index 00000000..be0f7538 --- /dev/null +++ b/test/gensub3.awk @@ -0,0 +1,8 @@ +/apple/ { + $0 = $0 + x = $0 +} + +END { + print x +} diff --git a/test/gensub3.in b/test/gensub3.in new file mode 100644 index 00000000..f38fe2fa --- /dev/null +++ b/test/gensub3.in @@ -0,0 +1,2 @@ +apple +pear diff --git a/test/gensub3.ok b/test/gensub3.ok new file mode 100644 index 00000000..4c479def --- /dev/null +++ b/test/gensub3.ok @@ -0,0 +1 @@ +apple |