diff --git a/srcpkgs/gawk/patches/fix-str2wstr.patch b/srcpkgs/gawk/patches/fix-str2wstr.patch index 078ba8b1c74..e0b3e66f560 100644 --- a/srcpkgs/gawk/patches/fix-str2wstr.patch +++ b/srcpkgs/gawk/patches/fix-str2wstr.patch @@ -1,32 +1,18 @@ -https://bugs.gentoo.org/921503 -https://lists.gnu.org/archive/html/bug-gawk/2024-01/msg00013.html -https://git.savannah.gnu.org/cgit/gawk.git/commit/?h=gawk-5.3-stable&id=e05040b5d81b5a0e809fc56df2a7c3d654c77e1d +commit e05040b5d81b5a0e809fc56df2a7c3d654c77e1d +Author: Arnold D. Robbins +Date: Sun Jan 28 20:24:09 2024 +0200 -From e05040b5d81b5a0e809fc56df2a7c3d654c77e1d Mon Sep 17 00:00:00 2001 -From: "Arnold D. Robbins" -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 + Bug fix in str2wstr. diff --git a/node.c b/node.c -index de12f05..5aac5e8 100644 +index de12f05d..5aac5e88 100644 --- a/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); - /* ++ /* + * For use by do_match, create and fill in an array. + * For each byte `i' in n->stptr (the original string), + * 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"); + } + -+ /* + /* * Don't convert global null string or global null field * 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) emalloc(n->wstptr, wchar_t *, sizeof(wchar_t) * (n->stlen + 1), "str2wstr"); wsp = n->wstptr; @@ -63,131 +48,3 @@ index de12f05..5aac5e8 100644 sp = n->stptr; src_count = n->stlen; 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 diff --git a/srcpkgs/gawk/template b/srcpkgs/gawk/template index d3574fd16ff..b0fd7e51718 100644 --- a/srcpkgs/gawk/template +++ b/srcpkgs/gawk/template @@ -1,10 +1,9 @@ # Template file for 'gawk' pkgname=gawk version=5.3.0 -revision=1 +revision=2 build_style=gnu-configure configure_args="--with-readline --disable-pma" -hostmakedepends="automake" # Needed to run because of sed makedepends="readline-devel" short_desc="GNU awk utility" maintainer="Enno Boland "