mirror of
https://github.com/void-linux/void-packages.git
synced 2025-06-05 06:33:50 +02:00
gawk: fix cycle.
This commit is contained in:
parent
4b2b035607
commit
2314967408
2 changed files with 10 additions and 154 deletions
|
@ -1,32 +1,18 @@
|
||||||
https://bugs.gentoo.org/921503
|
commit e05040b5d81b5a0e809fc56df2a7c3d654c77e1d
|
||||||
https://lists.gnu.org/archive/html/bug-gawk/2024-01/msg00013.html
|
Author: Arnold D. Robbins <arnold@skeeve.com>
|
||||||
https://git.savannah.gnu.org/cgit/gawk.git/commit/?h=gawk-5.3-stable&id=e05040b5d81b5a0e809fc56df2a7c3d654c77e1d
|
Date: Sun Jan 28 20:24:09 2024 +0200
|
||||||
|
|
||||||
From e05040b5d81b5a0e809fc56df2a7c3d654c77e1d Mon Sep 17 00:00:00 2001
|
Bug fix in str2wstr.
|
||||||
From: "Arnold D. Robbins" <arnold@skeeve.com>
|
|
||||||
Date: Sun, 28 Jan 2024 20:24:09 +0200
|
|
||||||
Subject: Bug fix in str2wstr.
|
|
||||||
|
|
||||||
---
|
|
||||||
node.c | 26 ++++++++++++++------------
|
|
||||||
pc/Makefile.tst | 6 ++++++
|
|
||||||
test/Makefile.am | 5 ++++-
|
|
||||||
test/Makefile.in | 10 +++++++++-
|
|
||||||
test/Maketests | 5 +++++
|
|
||||||
test/match4.awk | 1 +
|
|
||||||
test/match4.ok | 1 +
|
|
||||||
10 files changed, 56 insertions(+), 14 deletions(-)
|
|
||||||
create mode 100644 test/match4.awk
|
|
||||||
create mode 100644 test/match4.ok
|
|
||||||
|
|
||||||
diff --git a/node.c b/node.c
|
diff --git a/node.c b/node.c
|
||||||
index de12f05..5aac5e8 100644
|
index de12f05d..5aac5e88 100644
|
||||||
--- a/node.c
|
--- a/node.c
|
||||||
+++ b/node.c
|
+++ b/node.c
|
||||||
@@ -816,6 +816,20 @@ str2wstr(NODE *n, size_t **ptr)
|
@@ -815,6 +815,20 @@ str2wstr(NODE *n, size_t **ptr)
|
||||||
|
|
||||||
assert((n->flags & (STRING|STRCUR)) != 0);
|
assert((n->flags & (STRING|STRCUR)) != 0);
|
||||||
|
|
||||||
/*
|
+ /*
|
||||||
+ * For use by do_match, create and fill in an array.
|
+ * For use by do_match, create and fill in an array.
|
||||||
+ * For each byte `i' in n->stptr (the original string),
|
+ * For each byte `i' in n->stptr (the original string),
|
||||||
+ * a[i] is equal to `j', where `j' is the corresponding wchar_t
|
+ * a[i] is equal to `j', where `j' is the corresponding wchar_t
|
||||||
|
@ -40,10 +26,9 @@ index de12f05..5aac5e8 100644
|
||||||
+ ezalloc(*ptr, size_t *, sizeof(size_t) * (n->stlen + 1), "str2wstr");
|
+ ezalloc(*ptr, size_t *, sizeof(size_t) * (n->stlen + 1), "str2wstr");
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ /*
|
/*
|
||||||
* Don't convert global null string or global null field
|
* Don't convert global null string or global null field
|
||||||
* variables to a wide string. They are both zero-length anyway.
|
* variables to a wide string. They are both zero-length anyway.
|
||||||
* This also avoids future double-free errors while releasing
|
|
||||||
@@ -848,18 +862,6 @@ str2wstr(NODE *n, size_t **ptr)
|
@@ -848,18 +862,6 @@ str2wstr(NODE *n, size_t **ptr)
|
||||||
emalloc(n->wstptr, wchar_t *, sizeof(wchar_t) * (n->stlen + 1), "str2wstr");
|
emalloc(n->wstptr, wchar_t *, sizeof(wchar_t) * (n->stlen + 1), "str2wstr");
|
||||||
wsp = n->wstptr;
|
wsp = n->wstptr;
|
||||||
|
@ -63,131 +48,3 @@ index de12f05..5aac5e8 100644
|
||||||
sp = n->stptr;
|
sp = n->stptr;
|
||||||
src_count = n->stlen;
|
src_count = n->stlen;
|
||||||
memset(& mbs, 0, sizeof(mbs));
|
memset(& mbs, 0, sizeof(mbs));
|
||||||
diff --git a/pc/Makefile.tst b/pc/Makefile.tst
|
|
||||||
index daf3c56..9ab61c7 100644
|
|
||||||
--- a/pc/Makefile.tst
|
|
||||||
+++ b/pc/Makefile.tst
|
|
||||||
@@ -180,6 +180,7 @@ BASIC_TESTS = \
|
|
||||||
substr swaplns synerr1 synerr2 synerr3 tailrecurse tradanch \
|
|
||||||
trailbs tweakfld uninit2 uninit3 uninit4 uninit5 uninitialized \
|
|
||||||
unterm uparrfs uplus wideidx wideidx2 widesub widesub2 widesub3 \
|
|
||||||
+ match4 \
|
|
||||||
widesub4 wjposer1 zero2 zeroe0 zeroflag
|
|
||||||
|
|
||||||
UNIX_TESTS = \
|
|
||||||
@@ -2602,6 +2603,11 @@ widesub3:
|
|
||||||
AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
|
|
||||||
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
|
|
||||||
|
|
||||||
+match4:
|
|
||||||
+ @echo $@
|
|
||||||
+ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
|
|
||||||
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
|
|
||||||
+
|
|
||||||
widesub4:
|
|
||||||
@echo $@ $(ZOS_FAIL)
|
|
||||||
@-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=ENU_USA.1252; export GAWKLOCALE; \
|
|
||||||
diff --git a/test/Makefile.am b/test/Makefile.am
|
|
||||||
index a876b3a..e1e1f3f 100644
|
|
||||||
--- a/test/Makefile.am
|
|
||||||
+++ b/test/Makefile.am
|
|
||||||
@@ -1,7 +1,7 @@
|
|
||||||
#
|
|
||||||
# test/Makefile.am --- automake input file for gawk
|
|
||||||
#
|
|
||||||
-# Copyright (C) 1988-2023 the Free Software Foundation, Inc.
|
|
||||||
+# Copyright (C) 1988-2024 the Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# This file is part of GAWK, the GNU implementation of the
|
|
||||||
# AWK Programming Language.
|
|
||||||
@@ -763,6 +763,8 @@ EXTRA_DIST = \
|
|
||||||
match3.awk \
|
|
||||||
match3.in \
|
|
||||||
match3.ok \
|
|
||||||
+ match4.awk \
|
|
||||||
+ match4.ok \
|
|
||||||
math.awk \
|
|
||||||
math.ok \
|
|
||||||
mbfw1.awk \
|
|
||||||
@@ -1544,6 +1546,7 @@ BASIC_TESTS = \
|
|
||||||
substr swaplns synerr1 synerr2 synerr3 tailrecurse tradanch \
|
|
||||||
trailbs tweakfld uninit2 uninit3 uninit4 uninit5 uninitialized \
|
|
||||||
unterm uparrfs uplus wideidx wideidx2 widesub widesub2 widesub3 \
|
|
||||||
+ match4 \
|
|
||||||
widesub4 wjposer1 zero2 zeroe0 zeroflag
|
|
||||||
|
|
||||||
UNIX_TESTS = \
|
|
||||||
diff --git a/test/Makefile.in b/test/Makefile.in
|
|
||||||
index 1ef143f..681a85b 100644
|
|
||||||
--- a/test/Makefile.in
|
|
||||||
+++ b/test/Makefile.in
|
|
||||||
@@ -17,7 +17,7 @@
|
|
||||||
#
|
|
||||||
# test/Makefile.am --- automake input file for gawk
|
|
||||||
#
|
|
||||||
-# Copyright (C) 1988-2023 the Free Software Foundation, Inc.
|
|
||||||
+# Copyright (C) 1988-2024 the Free Software Foundation, Inc.
|
|
||||||
#
|
|
||||||
# This file is part of GAWK, the GNU implementation of the
|
|
||||||
# AWK Programming Language.
|
|
||||||
@@ -1027,6 +1027,8 @@ EXTRA_DIST = \
|
|
||||||
match3.awk \
|
|
||||||
match3.in \
|
|
||||||
match3.ok \
|
|
||||||
+ match4.awk \
|
|
||||||
+ match4.ok \
|
|
||||||
math.awk \
|
|
||||||
math.ok \
|
|
||||||
mbfw1.awk \
|
|
||||||
@@ -1808,6 +1810,7 @@ BASIC_TESTS = \
|
|
||||||
substr swaplns synerr1 synerr2 synerr3 tailrecurse tradanch \
|
|
||||||
trailbs tweakfld uninit2 uninit3 uninit4 uninit5 uninitialized \
|
|
||||||
unterm uparrfs uplus wideidx wideidx2 widesub widesub2 widesub3 \
|
|
||||||
+ match4 \
|
|
||||||
widesub4 wjposer1 zero2 zeroe0 zeroflag
|
|
||||||
|
|
||||||
UNIX_TESTS = \
|
|
||||||
@@ -4414,6 +4417,11 @@ widesub3:
|
|
||||||
AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
|
|
||||||
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
|
|
||||||
|
|
||||||
+match4:
|
|
||||||
+ @echo $@
|
|
||||||
+ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
|
|
||||||
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
|
|
||||||
+
|
|
||||||
widesub4:
|
|
||||||
@echo $@ $(ZOS_FAIL)
|
|
||||||
@-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
|
|
||||||
diff --git a/test/Maketests b/test/Maketests
|
|
||||||
index bac220f..9a00140 100644
|
|
||||||
--- a/test/Maketests
|
|
||||||
+++ b/test/Maketests
|
|
||||||
@@ -1288,6 +1288,11 @@ widesub3:
|
|
||||||
AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
|
|
||||||
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
|
|
||||||
|
|
||||||
+match4:
|
|
||||||
+ @echo $@
|
|
||||||
+ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
|
|
||||||
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
|
|
||||||
+
|
|
||||||
widesub4:
|
|
||||||
@echo $@ $(ZOS_FAIL)
|
|
||||||
@-[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; export GAWKLOCALE; \
|
|
||||||
diff --git a/test/match4.awk b/test/match4.awk
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..e50150a
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/test/match4.awk
|
|
||||||
@@ -0,0 +1 @@
|
|
||||||
+BEGIN { print match (m, /a?/) }
|
|
||||||
diff --git a/test/match4.ok b/test/match4.ok
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..d00491f
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/test/match4.ok
|
|
||||||
@@ -0,0 +1 @@
|
|
||||||
+1
|
|
||||||
--
|
|
||||||
cgit v1.1
|
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
# Template file for 'gawk'
|
# Template file for 'gawk'
|
||||||
pkgname=gawk
|
pkgname=gawk
|
||||||
version=5.3.0
|
version=5.3.0
|
||||||
revision=1
|
revision=2
|
||||||
build_style=gnu-configure
|
build_style=gnu-configure
|
||||||
configure_args="--with-readline --disable-pma"
|
configure_args="--with-readline --disable-pma"
|
||||||
hostmakedepends="automake" # Needed to run because of sed
|
|
||||||
makedepends="readline-devel"
|
makedepends="readline-devel"
|
||||||
short_desc="GNU awk utility"
|
short_desc="GNU awk utility"
|
||||||
maintainer="Enno Boland <gottox@voidlinux.org>"
|
maintainer="Enno Boland <gottox@voidlinux.org>"
|
||||||
|
|
Loading…
Add table
Reference in a new issue