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