NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: lib/59067: wctrans got error member.
The following reply was made to PR lib/59067; it has been noted by GNATS.
From: RVP <rvp%SDF.ORG@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: lib/59067: wctrans got error member.
Date: Wed, 26 Feb 2025 07:38:34 +0000 (UTC)
> >Fix:
> https://github.com/NetBSD/src/blob/trunk/lib/libc/locale/iswctype_mb.c
>
> line 132 update to:
>
> return (wctrans_t)__UNCONST(&rl->rl_wctype[i]);
>
> =====>
>
> return (wctrans_t)__UNCONST(&rl->rl_wctrans[i]);
>
Yah, I think this is correct, but, there's one additional fix needed for this
to work in the "C"/"POSIX" locale too. So, we now have:
---START patch---
diff -urN a/src/lib/libc/locale/iswctype_mb.c b/src/lib/libc/locale/iswctype_mb.c
--- a/src/lib/libc/locale/iswctype_mb.c 2024-06-07 22:20:47.236031995 +0000
+++ b/src/lib/libc/locale/iswctype_mb.c 2025-02-12 11:38:55.548531035 +0000
@@ -129,7 +129,7 @@
for (i = 0; i < _WCTRANS_NINDEXES; ++i) {
_DIAGASSERT(rl->rl_wctrans[i].te_name != NULL);
if (!strcmp(rl->rl_wctrans[i].te_name, charmap))
- return (wctrans_t)__UNCONST(&rl->rl_wctype[i]);
+ return (wctrans_t)__UNCONST(&rl->rl_wctrans[i]);
}
return (wctrans_t)NULL;
}
diff -urN a/src/lib/libc/locale/runetable.c b/src/lib/libc/locale/runetable.c
--- a/src/lib/libc/locale/runetable.c 2013-08-18 20:03:48.000000000 +0000
+++ b/src/lib/libc/locale/runetable.c 2025-02-12 11:45:11.254300802 +0000
@@ -320,11 +320,11 @@
"646",
&_citrus_ctype_default,
{
- { "towlower",
+ { "tolower",
__UNCONST(&_DefaultRuneLocale.rl_maplower[0]),
__UNCONST(&_DefaultRuneLocale.rl_maplower_ext)
},
- { "towupper",
+ { "toupper",
__UNCONST(&_DefaultRuneLocale.rl_mapupper[0]),
__UNCONST(&_DefaultRuneLocale.rl_mapupper_ext)
},
---END patch---
Should be pulled up to -9, and -10.
-RVP
Home |
Main Index |
Thread Index |
Old Index