[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gawk-diffs] [SCM] gawk branch, gawk-4.0-stable, updated. 953f97ddd184f3
From: |
Arnold Robbins |
Subject: |
[gawk-diffs] [SCM] gawk branch, gawk-4.0-stable, updated. 953f97ddd184f3dfb1ce16ee2965012965b17fac |
Date: |
Sun, 02 Oct 2011 18:22:34 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".
The branch, gawk-4.0-stable has been updated
via 953f97ddd184f3dfb1ce16ee2965012965b17fac (commit)
from 8dbfb49319c538b0682d4dbcc977ba5b811b86b0 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=953f97ddd184f3dfb1ce16ee2965012965b17fac
commit 953f97ddd184f3dfb1ce16ee2965012965b17fac
Author: Arnold D. Robbins <address@hidden>
Date: Sun Oct 2 20:21:29 2011 +0200
Fix RT handling if partial terminators.
diff --git a/ChangeLog b/ChangeLog
index 2d70417..6bf7901 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-10-02 Arnold D. Robbins <address@hidden>
+
+ * io.c (rsnullscan, get_a_record): Fix the cases where terminators
+ are incomplete when RS == "". Also fix the case where the new value
+ is shorter than the old one. Based on patch from Rogier
+ <address@hidden> as submitted by Jeroen Schot
+ <address@hidden>.
+
2011-09-24 Arnold D. Robbins <address@hidden>
* eval.c, io.c, re.c: Fix some spelling errors. Thanks to
diff --git a/io.c b/io.c
index bece1a5..df79499 100644
--- a/io.c
+++ b/io.c
@@ -2870,8 +2870,12 @@ scan_data:
while (*bp++ != '\n')
continue;
- if (bp >= iop->dataend) { /* no terminator */
+ if (bp >= iop->dataend) { /* no full terminator */
iop->scanoff = recm->len = bp - iop->off - 1;
+ if (bp == iop->dataend) { /* half a terminator */
+ recm->rt_start = bp - 1;
+ recm->rt_len = 1;
+ }
*state = INDATA;
return NOTERM;
}
@@ -3042,9 +3046,10 @@ get_a_record(char **out, /* pointer to pointer to
data */
/* else
leave it alone */
} else if (matchrec == rsnullscan) {
- if (rtval->stlen <= recm.rt_len)
+ if (rtval->stlen >= recm.rt_len) {
rtval->stlen = recm.rt_len;
- else
+ free_wstr(rtval);
+ } else
set_RT(recm.rt_start, recm.rt_len);
} else
set_RT(recm.rt_start, recm.rt_len);
diff --git a/test/ChangeLog b/test/ChangeLog
index 8c165b0..21224fd 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,10 @@
+2011-10-02 Arnold D. Robbins <address@hidden>
+
+ * Makefile.am (rtlen, rtlen01, rtlenmb): New tests.
+ * rtlen.ok, rtlen.sh, rtlen01.ok, rtlen01.sh: New files.
+ Thanks to Rogier <address@hidden> as forwarded by
+ Jeroen Schot <address@hidden>.
+
2011-08-10 Arnold D. Robbins <address@hidden>
* Makefile.am (beginfile2, fpat3, fwtest3): New tests.
diff --git a/test/Makefile.am b/test/Makefile.am
index 3d259af..57d4d46 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -655,6 +655,10 @@ EXTRA_DIST = \
rswhite.awk \
rswhite.in \
rswhite.ok \
+ rtlen.ok \
+ rtlen.sh \
+ rtlen01.ok \
+ rtlen01.sh \
scalar.awk \
scalar.ok \
sclforin.awk \
@@ -808,7 +812,8 @@ BASIC_TESTS = \
wjposer1 zero2 zeroe0 zeroflag
UNIX_TESTS = \
- fflush getlnhd localenl pid pipeio1 pipeio2 poundbang space strftlng
+ fflush getlnhd localenl pid pipeio1 pipeio2 poundbang rtlen rtlen01 \
+ space strftlng
GAWK_EXT_TESTS = \
aadelete1 aadelete2 aarray1 aasort aasorti argtest arraysort \
@@ -834,7 +839,7 @@ MACHINE_TESTS = double1 double2 fmtspcl intformat
LOCALE_CHARSET_TESTS = \
asort asorti fmttest fnarydel fnparydl lc_num1 mbfw1 \
- mbprintf1 mbprintf2 mbprintf3 rebt8b2 sort1 sprintfc
+ mbprintf1 mbprintf2 mbprintf3 rebt8b2 rtlenmb sort1 sprintfc
# List of the tests which should be run with --lint option:
NEED_LINT = \
@@ -1264,6 +1269,22 @@ rsstart3::
@head $(srcdir)/rsstart1.in | $(AWK) -f $(srcdir)/rsstart2.awk >_$@
@-$(CMP) $(srcdir)/address@hidden _$@ && rm -f _$@
+rtlen::
+ @echo $@
+ @$(srcdir)/address@hidden >_$@ || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/address@hidden _$@ && rm -f _$@
+
+rtlen01::
+ @echo $@
+ @$(srcdir)/address@hidden >_$@ || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/address@hidden _$@ && rm -f _$@
+
+rtlenmb::
+ @echo $@
+ @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
+ $(srcdir)/rtlen.sh >_$@ || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/rtlen.ok _$@ && rm -f _$@
+
nondec2::
@echo $@
@$(AWK) --non-decimal-data -v a=0x1 -f $(srcdir)/address@hidden >_$@
diff --git a/test/Makefile.in b/test/Makefile.in
index 3dd318f..e5ff200 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -840,6 +840,10 @@ EXTRA_DIST = \
rswhite.awk \
rswhite.in \
rswhite.ok \
+ rtlen.ok \
+ rtlen.sh \
+ rtlen01.ok \
+ rtlen01.sh \
scalar.awk \
scalar.ok \
sclforin.awk \
@@ -993,7 +997,8 @@ BASIC_TESTS = \
wjposer1 zero2 zeroe0 zeroflag
UNIX_TESTS = \
- fflush getlnhd localenl pid pipeio1 pipeio2 poundbang space strftlng
+ fflush getlnhd localenl pid pipeio1 pipeio2 poundbang rtlen rtlen01 \
+ space strftlng
GAWK_EXT_TESTS = \
aadelete1 aadelete2 aarray1 aasort aasorti argtest arraysort \
@@ -1016,7 +1021,7 @@ INET_TESTS = inetdayu inetdayt inetechu inetecht
MACHINE_TESTS = double1 double2 fmtspcl intformat
LOCALE_CHARSET_TESTS = \
asort asorti fmttest fnarydel fnparydl lc_num1 mbfw1 \
- mbprintf1 mbprintf2 mbprintf3 rebt8b2 sort1 sprintfc
+ mbprintf1 mbprintf2 mbprintf3 rebt8b2 rtlenmb sort1 sprintfc
# List of the tests which should be run with --lint option:
@@ -1615,6 +1620,22 @@ rsstart3::
@head $(srcdir)/rsstart1.in | $(AWK) -f $(srcdir)/rsstart2.awk >_$@
@-$(CMP) $(srcdir)/address@hidden _$@ && rm -f _$@
+rtlen::
+ @echo $@
+ @$(srcdir)/address@hidden >_$@ || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/address@hidden _$@ && rm -f _$@
+
+rtlen01::
+ @echo $@
+ @$(srcdir)/address@hidden >_$@ || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/address@hidden _$@ && rm -f _$@
+
+rtlenmb::
+ @echo $@
+ @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
+ $(srcdir)/rtlen.sh >_$@ || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/rtlen.ok _$@ && rm -f _$@
+
nondec2::
@echo $@
@$(AWK) --non-decimal-data -v a=0x1 -f $(srcdir)/address@hidden >_$@
diff --git a/test/rtlen.ok b/test/rtlen.ok
new file mode 100644
index 0000000..b8a484d
--- /dev/null
+++ b/test/rtlen.ok
@@ -0,0 +1,3 @@
+3
+5
+2
diff --git a/test/rtlen.sh b/test/rtlen.sh
new file mode 100755
index 0000000..4a74045
--- /dev/null
+++ b/test/rtlen.sh
@@ -0,0 +1,5 @@
+#! /bin/sh
+
+AWK=${AWK:-../gawk}
+
+$AWK 'BEGIN {printf "0\n\n\n1\n\n\n\n\n2\n\n"; exit}' | $AWK 'BEGIN {RS=""};
{print length(RT)}'
diff --git a/test/rtlen01.ok b/test/rtlen01.ok
new file mode 100644
index 0000000..4539bbf
--- /dev/null
+++ b/test/rtlen01.ok
@@ -0,0 +1,3 @@
+0
+1
+2
diff --git a/test/rtlen01.sh b/test/rtlen01.sh
new file mode 100755
index 0000000..72156d9
--- /dev/null
+++ b/test/rtlen01.sh
@@ -0,0 +1,8 @@
+#! /bin/sh
+
+AWK=${AWK:-../gawk}
+
+$AWK 'BEGIN {printf "0"; exit}' | $AWK 'BEGIN {RS=""}; {print length(RT)}'
+$AWK 'BEGIN {printf "0\n"; exit}' | $AWK 'BEGIN {RS=""}; {print length(RT)}'
+$AWK 'BEGIN {printf "0\n\n"; exit}' | $AWK 'BEGIN {RS=""}; {print length(RT)}'
+
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 8 ++++++++
io.c | 11 ++++++++---
test/ChangeLog | 7 +++++++
test/Makefile.am | 25 +++++++++++++++++++++++--
test/Makefile.in | 25 +++++++++++++++++++++++--
test/{reg/exp-eq.in => rtlen.ok} | 4 ++--
test/rtlen.sh | 5 +++++
test/{nulrsend.ok => rtlen01.ok} | 1 +
test/rtlen01.sh | 8 ++++++++
9 files changed, 85 insertions(+), 9 deletions(-)
copy test/{reg/exp-eq.in => rtlen.ok} (66%)
create mode 100755 test/rtlen.sh
copy test/{nulrsend.ok => rtlen01.ok} (66%)
create mode 100755 test/rtlen01.sh
hooks/post-receive
--
gawk
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gawk-diffs] [SCM] gawk branch, gawk-4.0-stable, updated. 953f97ddd184f3dfb1ce16ee2965012965b17fac,
Arnold Robbins <=