dev-libs/oniguruma: Sync with Gentoo

It's from Gentoo commit d698238def02f756ddd7b8e5b369bd2542f79a75.
This commit is contained in:
Flatcar Buildbot 2024-11-25 07:05:35 +00:00 committed by Krzesimir Nowak
parent bbaf7aa560
commit 72a0c0631d
2 changed files with 229 additions and 0 deletions

View File

@ -0,0 +1,170 @@
https://github.com/kkos/oniguruma/issues/312
https://github.com/kkos/oniguruma/commit/5f1408dee4a01dee60c4cd67f2e2e46484ef50a5
https://github.com/kkos/oniguruma/commit/b803288174dcef9b56836aee1ee78a4f3256d8f6
From 5f1408dee4a01dee60c4cd67f2e2e46484ef50a5 Mon Sep 17 00:00:00 2001
From: "K.Kosako" <kkosako0@gmail.com>
Date: Mon, 18 Nov 2024 00:18:12 +0900
Subject: [PATCH] fix #312: Build failure with GCC 15 (C23)
---
src/regparse.c | 44 ++++++++++++++++++++++++++++++++++++--------
src/st.h | 9 +--------
2 files changed, 37 insertions(+), 16 deletions(-)
diff --git a/src/regparse.c b/src/regparse.c
index 24bcbaac..9acdd6e2 100644
--- a/src/regparse.c
+++ b/src/regparse.c
@@ -793,8 +793,13 @@ onig_print_names(FILE* fp, regex_t* reg)
#endif /* ONIG_DEBUG */
static int
-i_free_name_entry(UChar* key, NameEntry* e, void* arg ARG_UNUSED)
+i_free_name_entry(st_data_t akey, st_data_t ae, st_data_t arg ARG_UNUSED)
{
+ UChar* key;
+ NameEntry* e;
+
+ key = (UChar* )akey;
+ e = (NameEntry* )ae;
xfree(e->name);
if (IS_NOT_NULL(e->back_refs)) xfree(e->back_refs);
xfree(key);
@@ -850,8 +855,14 @@ typedef struct {
} INamesArg;
static int
-i_names(UChar* key ARG_UNUSED, NameEntry* e, INamesArg* arg)
+i_names(st_data_t key ARG_UNUSED, st_data_t ae, st_data_t aarg)
{
+ NameEntry* e;
+ INamesArg* arg;
+
+ e = (NameEntry* )ae;
+ arg = (INamesArg* )aarg;
+
int r = (*(arg->func))(e->name,
e->name + e->name_len,
e->back_num,
@@ -883,9 +894,14 @@ onig_foreach_name(regex_t* reg,
}
static int
-i_renumber_name(UChar* key ARG_UNUSED, NameEntry* e, GroupNumMap* map)
+i_renumber_name(st_data_t key ARG_UNUSED, st_data_t ae, st_data_t amap)
{
int i;
+ NameEntry* e;
+ GroupNumMap* map;
+
+ e = (NameEntry* )ae;
+ map = (GroupNumMap* )amap;
if (e->back_num > 1) {
for (i = 0; i < e->back_num; i++) {
@@ -1374,9 +1390,14 @@ static int CalloutNameIDCounter;
#ifdef USE_ST_LIBRARY
static int
-i_free_callout_name_entry(st_callout_name_key* key, CalloutNameEntry* e,
- void* arg ARG_UNUSED)
+i_free_callout_name_entry(st_data_t akey, st_data_t ae, st_data_t arg ARG_UNUSED)
{
+ st_callout_name_key* key;
+ CalloutNameEntry* e;
+
+ key = (st_callout_name_key* )akey;
+ e = (CalloutNameEntry* )ae;
+
if (IS_NOT_NULL(e)) {
xfree(e->name);
}
@@ -1870,10 +1891,14 @@ typedef intptr_t CalloutTagVal;
#define CALLOUT_TAG_LIST_FLAG_TAG_EXIST (1<<0)
static int
-i_callout_callout_list_set(UChar* key, CalloutTagVal e, void* arg)
+i_callout_callout_list_set(st_data_t key ARG_UNUSED, st_data_t ae, st_data_t arg)
{
int num;
- RegexExt* ext = (RegexExt* )arg;
+ CalloutTagVal e;
+ RegexExt* ext;
+
+ e = (CalloutTagVal )ae;
+ ext = (RegexExt* )arg;
num = (int )e - 1;
ext->callout_list[num].flag |= CALLOUT_TAG_LIST_FLAG_TAG_EXIST;
@@ -1926,8 +1951,11 @@ onig_callout_tag_is_exist_at_callout_num(regex_t* reg, int callout_num)
}
static int
-i_free_callout_tag_entry(UChar* key, CalloutTagVal e, void* arg ARG_UNUSED)
+i_free_callout_tag_entry(st_data_t akey, st_data_t e ARG_UNUSED, st_data_t arg ARG_UNUSED)
{
+ UChar* key;
+
+ key = (UChar* )akey;
xfree(key);
return ST_DELETE;
}
diff --git a/src/st.h b/src/st.h
index 5efee8bb..70798dc5 100644
--- a/src/st.h
+++ b/src/st.h
@@ -34,13 +34,6 @@ enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK};
#ifndef _
# define _(args) args
#endif
-#ifndef ANYARGS
-# ifdef __cplusplus
-# define ANYARGS ...
-# else
-# define ANYARGS
-# endif
-#endif
st_table *st_init_table _((struct st_hash_type *));
st_table *st_init_table_with_size _((struct st_hash_type *, int));
@@ -52,7 +45,7 @@ int st_delete _((st_table *, st_data_t *, st_data_t *));
int st_delete_safe _((st_table *, st_data_t *, st_data_t *, st_data_t));
int st_insert _((st_table *, st_data_t, st_data_t));
int st_lookup _((st_table *, st_data_t, st_data_t *));
-int st_foreach _((st_table *, int (*)(ANYARGS), st_data_t));
+int st_foreach _((st_table *, int (*)(st_data_t, st_data_t, st_data_t), st_data_t));
void st_add_direct _((st_table *, st_data_t, st_data_t));
void st_free_table _((st_table *));
void st_cleanup_safe _((st_table *, st_data_t));
From b803288174dcef9b56836aee1ee78a4f3256d8f6 Mon Sep 17 00:00:00 2001
From: "K.Kosako" <kkosako0@gmail.com>
Date: Tue, 19 Nov 2024 00:01:17 +0900
Subject: [PATCH] follow up previous fix
---
src/regparse.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/regparse.c b/src/regparse.c
index 9acdd6e2..1d00b82a 100644
--- a/src/regparse.c
+++ b/src/regparse.c
@@ -758,10 +758,14 @@ typedef st_data_t HashDataType; /* 1.6 st.h doesn't define st_data_t type */
#ifdef ONIG_DEBUG
static int
-i_print_name_entry(UChar* key, NameEntry* e, void* arg)
+i_print_name_entry(st_data_t akey, st_data_t ae, st_data_t arg)
{
int i;
- FILE* fp = (FILE* )arg;
+ FILE* fp;
+ NameEntry* e;
+
+ e = (NameEntry* )ae;
+ fp = (FILE* )arg;
fprintf(fp, "%s: ", e->name);
if (e->back_num == 0)

View File

@ -0,0 +1,59 @@
# Copyright 2003-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
inherit multilib-minimal
if [[ "${PV}" == "9999" ]]; then
inherit autotools git-r3
EGIT_REPO_URI="https://github.com/kkos/oniguruma"
fi
DESCRIPTION="Regular expression library for different character encodings"
HOMEPAGE="https://github.com/kkos/oniguruma"
if [[ "${PV}" == "9999" ]]; then
SRC_URI=""
else
SRC_URI="https://github.com/kkos/${PN}/releases/download/v${PV}/onig-${PV}.tar.gz"
fi
LICENSE="BSD-2"
SLOT="0/5"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="crnl-as-line-terminator static-libs"
BDEPEND=""
DEPEND=""
RDEPEND=""
if [[ "${PV}" != "9999" ]]; then
S="${WORKDIR}/onig-${PV}"
fi
DOCS=(AUTHORS HISTORY README{,_japanese} doc/{API,CALLOUTS.API,CALLOUTS.BUILTIN,FAQ,RE}{,.ja} doc/{SYNTAX.md,UNICODE_PROPERTIES})
PATCHES=(
"${FILESDIR}"/${P}-c23.patch
)
src_prepare() {
default
if [[ "${PV}" == "9999" ]]; then
eautoreconf
fi
}
multilib_src_configure() {
ECONF_SOURCE="${S}" econf \
--enable-posix-api \
$(use_enable crnl-as-line-terminator) \
$(use_enable static-libs static)
}
multilib_src_install_all() {
einstalldocs
find "${ED}" -name "*.la" -delete || die
}