summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--field.c5
-rw-r--r--test/ChangeLog5
-rw-r--r--test/Makefile.am10
-rw-r--r--test/Makefile.in10
-rw-r--r--test/readdir_retest.awk7
6 files changed, 40 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 986eb8fe..ba52b7e9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/field.c b/field.c
index 0d7e6330..52963249 100644
--- a/field.c
+++ b/field.c
@@ -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
+}