[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] gawk branch, gawk-5.2-stable, updated. gawk-4.1.0-5032-gb930d79a
From: |
Arnold Robbins |
Subject: |
[SCM] gawk branch, gawk-5.2-stable, updated. gawk-4.1.0-5032-gb930d79a |
Date: |
Thu, 13 Apr 2023 14:28:27 -0400 (EDT) |
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-5.2-stable has been updated
via b930d79a316d08c899787c0d2e39865913863a52 (commit)
from 654c103be236d56f7e1fdcb09c9602641e2037c3 (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=b930d79a316d08c899787c0d2e39865913863a52
commit b930d79a316d08c899787c0d2e39865913863a52
Author: Arnold D. Robbins <arnold@skeeve.com>
Date: Thu Apr 13 21:28:02 2023 +0300
Bug fix for asort(SYMTAB, arr).
diff --git a/ChangeLog b/ChangeLog
index 8555a0b3..9ffcaa5d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2023-04-13 Arnold D. Robbins <arnold@skeeve.com>
+
+ * array.c (asort_actual): Handle Node_var_new. Can happen
+ if you sort SYMTAB. Thanks to zhou shuiqing
+ <zhoushuiqing321@outlook.com> for the report.
+
2023-04-07 Arnold D. Robbins <arnold@skeeve.com>
* array.c (assoc_info): Update to handle additional cases so
diff --git a/array.c b/array.c
index 09151169..62fd0597 100644
--- a/array.c
+++ b/array.c
@@ -935,17 +935,24 @@ asort_actual(int nargs, sort_context_t ctxt)
NODE *value;
- if (r->type == Node_val)
+ switch (r->type) {
+ case Node_val:
value = dupnode(r);
- else if (r->type == Node_var)
+ break;
+ case Node_var:
/* SYMTAB ... */
value = dupnode(r->var_value);
- else if (r->type == Node_builtin_func
- || r->type == Node_func
- || r->type == Node_ext_func) {
+ break;
+ case Node_var_new:
+ value = dupnode(Nnull_string);
+ break;
+ case Node_builtin_func:
+ case Node_func:
+ case Node_ext_func:
/* FUNCTAB ... */
value = make_string(r->vname, strlen(r->vname));
- } else {
+ break;
+ case Node_var_array:
NODE *arr;
arr = make_array();
subs = force_string(subs);
@@ -956,6 +963,9 @@ asort_actual(int nargs, sort_context_t ctxt)
arr->parent_array = array; /* actual parent,
not the temporary one. */
value = assoc_copy(r, arr);
+ break;
+ default:
+ cant_happen("asort_actual: got unexpected type
%s", nodetype2str(r->type));
}
assoc_set(result, subs, value);
}
diff --git a/pc/ChangeLog b/pc/ChangeLog
index 9df38d9d..0da31a42 100644
--- a/pc/ChangeLog
+++ b/pc/ChangeLog
@@ -1,6 +1,7 @@
2023-04-13 Arnold D. Robbins <arnold@skeeve.com>
* config.h: Regenerated.
+ * Makefile.tst: Regenerated.
2023-03-12 Eli Zaretskii <eliz@gnu.org>
diff --git a/pc/Makefile.tst b/pc/Makefile.tst
index f9e9681b..d012f626 100644
--- a/pc/Makefile.tst
+++ b/pc/Makefile.tst
@@ -189,6 +189,7 @@ UNIX_TESTS = \
GAWK_EXT_TESTS = \
aadelete1 aadelete2 aarray1 aasort aasorti argtest arraysort \
arraysort2 arraytype asortbool backw badargs beginfile1 beginfile2 \
+ asortsymtab \
binmode1 charasbytes clos1way clos1way2 clos1way3 clos1way4 \
clos1way5 clos1way6 colonwarn commas crlf dbugeval dbugeval2 \
dbugeval3 dbugeval4 dbugtypedre1 dbugtypedre2 delsub \
@@ -2676,6 +2677,11 @@ backw:
@-AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1
|| echo EXIT CODE: $$? >>_$@
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+asortsymtab:
+ @echo $@
+ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE:
$$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
clos1way:
@echo $@
@-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=C; export GAWKLOCALE; \
diff --git a/test/ChangeLog b/test/ChangeLog
index 19d7ead9..651fdb98 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,8 @@
+2023-04-13 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (EXTRA_DIST): New test: asortsymtab.
+ * asortsymtab.awk, asortsymtab.ok: New files.
+
2023-04-13 Arnold D. Robbins <arnold@skeeve.com>
* badargs.ok: Update after code changes.
diff --git a/test/Makefile.am b/test/Makefile.am
index b30d3d7a..cc99dfa9 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -127,15 +127,17 @@ EXTRA_DIST = \
asgext.ok \
asort.awk \
asort.ok \
+ asortbool.awk \
+ asortbool.ok \
asorti.awk \
asorti.ok \
+ asortsymtab.awk \
+ asortsymtab.ok \
assignnumfield.awk \
assignnumfield.in \
assignnumfield.ok \
assignnumfield2.awk \
assignnumfield2.ok \
- asortbool.awk \
- asortbool.ok \
awkpath.ok \
back89.awk \
back89.in \
@@ -1502,6 +1504,7 @@ UNIX_TESTS = \
GAWK_EXT_TESTS = \
aadelete1 aadelete2 aarray1 aasort aasorti argtest arraysort \
arraysort2 arraytype asortbool backw badargs beginfile1 beginfile2 \
+ asortsymtab \
binmode1 charasbytes clos1way clos1way2 clos1way3 clos1way4 \
clos1way5 clos1way6 colonwarn commas crlf dbugeval dbugeval2 \
dbugeval3 dbugeval4 dbugtypedre1 dbugtypedre2 delsub \
diff --git a/test/Makefile.in b/test/Makefile.in
index ed835ab6..3ed140cc 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -395,15 +395,17 @@ EXTRA_DIST = \
asgext.ok \
asort.awk \
asort.ok \
+ asortbool.awk \
+ asortbool.ok \
asorti.awk \
asorti.ok \
+ asortsymtab.awk \
+ asortsymtab.ok \
assignnumfield.awk \
assignnumfield.in \
assignnumfield.ok \
assignnumfield2.awk \
assignnumfield2.ok \
- asortbool.awk \
- asortbool.ok \
awkpath.ok \
back89.awk \
back89.in \
@@ -1770,6 +1772,7 @@ UNIX_TESTS = \
GAWK_EXT_TESTS = \
aadelete1 aadelete2 aarray1 aasort aasorti argtest arraysort \
arraysort2 arraytype asortbool backw badargs beginfile1 beginfile2 \
+ asortsymtab \
binmode1 charasbytes clos1way clos1way2 clos1way3 clos1way4 \
clos1way5 clos1way6 colonwarn commas crlf dbugeval dbugeval2 \
dbugeval3 dbugeval4 dbugtypedre1 dbugtypedre2 delsub \
@@ -4441,6 +4444,11 @@ backw:
@-AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1
|| echo EXIT CODE: $$? >>_$@
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+asortsymtab:
+ @echo $@
+ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE:
$$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
clos1way:
@echo $@
@-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=C; export GAWKLOCALE; \
diff --git a/test/Maketests b/test/Maketests
index a4b215c6..f532fc92 100644
--- a/test/Maketests
+++ b/test/Maketests
@@ -1370,6 +1370,11 @@ backw:
@-AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1
|| echo EXIT CODE: $$? >>_$@
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+asortsymtab:
+ @echo $@
+ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE:
$$? >>_$@
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
clos1way:
@echo $@
@-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=C; export GAWKLOCALE; \
diff --git a/test/asortsymtab.awk b/test/asortsymtab.awk
new file mode 100644
index 00000000..7cb65a69
--- /dev/null
+++ b/test/asortsymtab.awk
@@ -0,0 +1,10 @@
+BEGIN {
+ asort(SYMTAB, arr)
+ for (idx in arr) {
+ print idx
+ }
+ asort(FUNCTAB, arr)
+ for (idx in arr) {
+ print idx
+ }
+}
diff --git a/test/asortsymtab.ok b/test/asortsymtab.ok
new file mode 100644
index 00000000..9b4799bf
--- /dev/null
+++ b/test/asortsymtab.ok
@@ -0,0 +1,72 @@
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 6 +++++
array.c | 22 +++++++++++-----
pc/ChangeLog | 1 +
pc/Makefile.tst | 6 +++++
test/ChangeLog | 5 ++++
test/Makefile.am | 7 +++--
test/Makefile.in | 12 +++++++--
test/Maketests | 5 ++++
test/asortsymtab.awk | 10 ++++++++
test/asortsymtab.ok | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++
10 files changed, 136 insertions(+), 10 deletions(-)
create mode 100644 test/asortsymtab.awk
create mode 100644 test/asortsymtab.ok
hooks/post-receive
--
gawk
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] gawk branch, gawk-5.2-stable, updated. gawk-4.1.0-5032-gb930d79a,
Arnold Robbins <=