[RFC PATCH 3/9] ntdll: Fix functions that depend on wctype table.
Jacek Caban
jacek at codeweavers.com
Thu Jan 9 09:14:14 CST 2020
On 09.01.2020 16:09, Jacek Caban wrote:
> Hi Jeff,
>
> On 09.01.2020 07:53, Jeff Smith wrote:
>> +/* Some abbreviations to make the following table readable */
>> +#define_C_ C1_CNTRL
>> +#define_S_ C1_SPACE
>> +#define_P_ C1_PUNCT
>> +#define_D_ C1_DIGIT
>> +#define_H_ C1_XDIGIT
>> +#define_U_ C1_UPPER|C1_ALPHA
>> +#define_L_ C1_LOWER|C1_ALPHA
>> +#define_B_ C1_BLANK
>> +
>> +static const WORD NTDLL_wctype [256] = {
>> +_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_S_|_C_|_B_,_S_|_C_,_S_|_C_,
>> +_S_|_C_,_S_|_C_,_C_,_C_,
>> +_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,
>> +_S_|_B_,_P_,_P_,_P_,_P_,_P_,_P_,_P_,_P_,_P_,_P_,_P_,_P_,_P_,_P_,_P_,
>> +_D_|_H_,_D_|_H_,_D_|_H_,_D_|_H_,_D_|_H_,_D_|_H_,_D_|_H_,_D_|_H_,_D_|_H_,_D_|_H_,
>>
>> +_P_,_P_,_P_,_P_,_P_,_P_,
>> +_P_,_U_|_H_,_U_|_H_,_U_|_H_,_U_|_H_,_U_|_H_,_U_|_H_,_U_,_U_,_U_,_U_,_U_,
>>
>> +_U_,_U_,_U_,_U_,
>> +_U_,_U_,_U_,_U_,_U_,_U_,_U_,_U_,_U_,_U_,_U_,_P_,_P_,_P_,_P_,_P_,
>> +_P_,_L_|_H_,_L_|_H_,_L_|_H_,_L_|_H_,_L_|_H_,_L_|_H_,_L_,_L_,_L_,_L_,_L_,
>>
>> +_L_,_L_,_L_,_L_,
>> +_L_,_L_,_L_,_L_,_L_,_L_,_L_,_L_,_L_,_L_,_L_,_P_,_P_,_P_,_P_,_C_,
>> +_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,
>> +_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,_C_,
>> +_S_|_B_,_P_,_P_,_P_,_P_,_P_,_P_,_P_,_P_,_P_,_P_,_P_,_P_,_P_,_P_,_P_,
>> +_P_,_P_,_P_|_D_,_P_|_D_,_P_,_P_,_P_,_P_,_P_,_P_|_D_,_P_,_P_,_P_,_P_,_P_,_P_,
>>
>> +_U_,_U_,_U_,_U_,_U_,_U_,_U_,_U_,_U_,_U_,_U_,_U_,_U_,_U_,_U_,_U_,
>> +_U_,_U_,_U_,_U_,_U_,_U_,_U_,_P_,_U_,_U_,_U_,_U_,_U_,_U_,_U_,_L_,
>> +_L_,_L_,_L_,_L_,_L_,_L_,_L_,_L_,_L_,_L_,_L_,_L_,_L_,_L_,_L_,_L_,
>> +_L_,_L_,_L_,_L_,_L_,_L_,_L_,_P_,_L_,_L_,_L_,_L_,_L_,_L_,_L_,_L_
>> +};
>
>
> Those macros don't really make the table much more readable, IMHO. You
> could just use numeric literals and make it more compact. In fact, you
> could probably just copy the first chunk of wctype_table from
> kernelbase/wctype.c.
Also, this patch needs a careful review of code that uses those
function, most notably kernelbase.dll. A quick look suggests that it
depends on working at least iswalpha for values above 255, so it will
need to be changed first.
Thanks,
Jacek
More information about the wine-devel
mailing list