[PATCH] <wchar.h>: Make wmempcy, wcwidth, wcswidth available by default

Florian Weimer fweimer@redhat.com
Thu Dec 8 18:14:13 GMT 2022


* Adhemerval Zanella Netto:

> On 06/12/22 07:25, Florian Weimer via Libc-alpha wrote:
>> * Andreas Schwab:
>> 
>>> On Dez 06 2022, Florian Weimer via Libc-alpha wrote:
>>>
>>>> @@ -363,14 +363,14 @@ extern size_t wcsnrtombs (char *__restrict __dst,
>>>>  
>>>>  
>>>>  /* The following functions are extensions found in X/Open CAE.  */
>>>> -#ifdef __USE_XOPEN
>>>> +#if defined __USE_XOPEN || defined __USE_MISC
>>>>  /* Determine number of column positions required for C.  */
>>>>  extern int wcwidth (wchar_t __c) __THROW;
>>>>  
>>>>  /* Determine number of column positions required for first N wide
>>>>     characters (or fewer if S ends before this) in S.  */
>>>>  extern int wcswidth (const wchar_t *__s, size_t __n) __THROW;
>>>> -#endif	/* Use X/Open.  */
>>>> +#endif /* __USE_XOPEN || __USE_MISC.  */
>>>
>>> Again, I do not see how that matches what FreeBSD does.  Both
>>> definitions are protected by __XSI_VISIBLE there.
>> 
>> Should we do this instead?
>> 
>> diff --git a/include/features.h b/include/features.h
>> index 123de9fd47..40d10a0fb5 100644
>> --- a/include/features.h
>> +++ b/include/features.h
>> @@ -393,6 +393,7 @@
>>  
>>  #if defined _DEFAULT_SOURCE
>>  # define __USE_MISC	1
>> +# define __USE_XOPEN	1
>>  #endif
>>  
>>  #ifdef	_ATFILE_SOURCE
>> 
>> Should we also define __USE_XOPEN_EXTENDED and __USE_XOPEN2K8 in this
>> case?  This would allow us to simplify a lot of conditionals involving
>> __USE_MISC.
>
>
> What is the define flags used by this old programs? I don't see much trouble
> adding __USE_XOPEN for _DEFAULT_SOURCE.

The program doesn't know anything about feature macros, so it uses
implicit _DEFAULT_SOURCE by default.

Thanks,
Florian



More information about the Libc-alpha mailing list