diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2018-04-17 15:44:57 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2018-04-17 15:44:57 +0300 |
commit | dde5bd1c2baadf2c34f15187efb481694043d606 (patch) | |
tree | 2f265c4eb53bcbc447ead67bc07a89dce9a19fac | |
parent | 0690ca31fad162d869544246b4d2693942c8fec9 (diff) | |
download | egawk-dde5bd1c2baadf2c34f15187efb481694043d606.tar.gz egawk-dde5bd1c2baadf2c34f15187efb481694043d606.tar.bz2 egawk-dde5bd1c2baadf2c34f15187efb481694043d606.zip |
Fix problem with rebuilding records if using API parser.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | field.c | 5 | ||||
-rw-r--r-- | test/ChangeLog | 5 | ||||
-rw-r--r-- | test/Makefile.am | 10 | ||||
-rw-r--r-- | test/Makefile.in | 10 | ||||
-rw-r--r-- | test/readdir_retest.awk | 7 |
6 files changed, 40 insertions, 2 deletions
@@ -1,3 +1,8 @@ +2018-04-14 Manuel Collado <m-collado@users.sourceforge.net> + + * field.c (reset_record): Disable fieldwidth from API + get_record() if $0 is explicitly assigned a new value. + 2018-04-02 Arnold D. Robbins <arnold@skeeve.com> * config.guess, config.sub, install-sh: Updated from GNULIB. @@ -338,6 +338,11 @@ reset_record() { fields_arr[0] = force_string(fields_arr[0]); purge_record(); + if (api_parser_override) { + api_parser_override = false; + parse_field = normal_parse_field; + update_PROCINFO_str("FS", current_field_sep_str()); + } } static void diff --git a/test/ChangeLog b/test/ChangeLog index 5f806e11..7934f640 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,8 @@ +2018-04-14 Manuel Collado <m-collado@users.sourceforge.net> + + * Makefile.am (readdir_retest): Add new test. + * readdir_retest.awk: New file. + 2018-04-01 Arnold D. Robbins <arnold@skeeve.com> * Makefile.am (EXTRA_DIST): Add files for mpfrfield. diff --git a/test/Makefile.am b/test/Makefile.am index fe4fd816..5baa9061 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -910,6 +910,7 @@ EXTRA_DIST = \ readbuf.ok \ readdir.awk \ readdir0.awk \ + readdir_retest.awk \ readfile2.awk \ readfile2.ok \ rebrackloc.awk \ @@ -1326,7 +1327,7 @@ SHLIB_TESTS = \ getfile \ inplace1 inplace2 inplace3 \ ordchr ordchr2 \ - readdir readdir_test readfile readfile2 revout \ + readdir readdir_test readdir_retest readfile readfile2 revout \ revtwoway rwarray \ testext time @@ -2271,6 +2272,12 @@ readdir_test: @$(AWK) -lreaddir_test '{printf "[%s] [%s] [%s] [%s]\n", $$1, $$2, $$3, $$4}' "$(top_srcdir)" > _$@ @-$(CMP) $@.ok _$@ && rm -f $@.ok _$@ +readdir_retest: + @echo $@ + @$(AWK) -lreaddir -F/ -f $@.awk "$(top_srcdir)" > $@.ok + @$(AWK) -lreaddir_test -F/ -f $@.awk "$(top_srcdir)" > _$@ + @-$(CMP) $@.ok _$@ && rm -f $@.ok _$@ + fts: @case `uname` in \ IRIX) \ @@ -2492,6 +2499,7 @@ Maketests: $(srcdir)/Makefile.am $(srcdir)/Gentests clean-local: rm -fr _* core core.* fmtspcl.ok junk strftime.ok test1 test2 \ seq *~ readfile.ok fork.tmp.* testext.awk fts.ok readdir.ok \ + readdir_test.ok readdir_retest.ok \ profile1.ok # An attempt to print something that can be grepped for in build logs diff --git a/test/Makefile.in b/test/Makefile.in index 33e2b0bf..c827340d 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -1168,6 +1168,7 @@ EXTRA_DIST = \ readbuf.ok \ readdir.awk \ readdir0.awk \ + readdir_retest.awk \ readfile2.awk \ readfile2.ok \ rebrackloc.awk \ @@ -1579,7 +1580,7 @@ SHLIB_TESTS = \ getfile \ inplace1 inplace2 inplace3 \ ordchr ordchr2 \ - readdir readdir_test readfile readfile2 revout \ + readdir readdir_test readdir_retest readfile readfile2 revout \ revtwoway rwarray \ testext time @@ -2711,6 +2712,12 @@ readdir_test: @$(AWK) -lreaddir_test '{printf "[%s] [%s] [%s] [%s]\n", $$1, $$2, $$3, $$4}' "$(top_srcdir)" > _$@ @-$(CMP) $@.ok _$@ && rm -f $@.ok _$@ +readdir_retest: + @echo $@ + @$(AWK) -lreaddir -F/ -f $@.awk "$(top_srcdir)" > $@.ok + @$(AWK) -lreaddir_test -F/ -f $@.awk "$(top_srcdir)" > _$@ + @-$(CMP) $@.ok _$@ && rm -f $@.ok _$@ + fts: @case `uname` in \ IRIX) \ @@ -4666,6 +4673,7 @@ Maketests: $(srcdir)/Makefile.am $(srcdir)/Gentests clean-local: rm -fr _* core core.* fmtspcl.ok junk strftime.ok test1 test2 \ seq *~ readfile.ok fork.tmp.* testext.awk fts.ok readdir.ok \ + readdir_test.ok readdir_retest.ok \ profile1.ok # An attempt to print something that can be grepped for in build logs diff --git a/test/readdir_retest.awk b/test/readdir_retest.awk new file mode 100644 index 00000000..079a9930 --- /dev/null +++ b/test/readdir_retest.awk @@ -0,0 +1,7 @@ +# Test field values after reparsing +FNR == 1 { record1 = $0 } +{ + printf "[%s] [%s] [%s] [%s]\n", $1, $2, $3, $4 + $0 = record1 + printf "[%s] [%s] [%s] [%s]\n", $1, $2, $3, $4 +} |