Possible to add new precomposed characters for local language in Togo?

Philippe Verdy verdy_p at wanadoo.fr
Fri Nov 4 17:22:42 CDT 2016


Look at this example using LIGATURE3 (kbdinasa.dll : "ASSAMESE - INSCRIPT"):

https://doxygen.reactos.org/da/dc5/kbdinasa_8c_source.html

2016-11-04 23:16 GMT+01:00 Philippe Verdy <verdy_p at wanadoo.fr>:

> 2016-11-04 21:52 GMT+01:00 Doug Ewell <doug at ewellic.org>:
>
>> OK, I understand now. We are rehashing the discussion on this list from
>> August 2015, in which Marcel claimed that the presence of these lines in
>> kbd.h:
>>
>> #define TYPEDEF_LIGATURE(i) \
>> typedef struct _LIGATURE ## i { \
>>         BYTE VirtualKey; \
>>         WORD ModificationNumber; \
>>         WCHAR wch[i]; \
>> } LIGATURE ## i, *PLIGATURE ## i;
>>
>>         TYPEDEF_LIGATURE(1)
>>         TYPEDEF_LIGATURE(2)
>>         TYPEDEF_LIGATURE(3)
>>         TYPEDEF_LIGATURE(4)
>>         TYPEDEF_LIGATURE(5)
>>
>> was proof that some version of Windows actually supported ligatures
>> longer than 4 code units (WCHARs).
>
>
> Why then the SDK predefines a structure with 5 code units ???
>
>
>> But no such proof ever materialized.
>>
>
> You'll find examples in the ReactOS  sources (the link I gave) that
> provides drivers for many more languages than the two example drivers
> provided with the SDK.
>
>
>> And once again, that is not what Mats was talking about. He was talking
>> about dead-key combinations not being able to generate more than ONE
>> code unit. And if you go back and look at kbd.h, you will see this:
>>
>> typedef struct _DEADKEY {
>>         DWORD dwBoth;
>>         WCHAR wchComposed;
>>         USHORT uFlags;
>> } DEADKEY, *PDEADKEY;
>>
>> typedef WCHAR *DEADKEY_LPWSTR;
>>
>
> Here again, the support of 4 code points in structures allows binding
> "ligatures" in keymaps, even if their entries contain a single WCHAR, using
> the special value for "ligatures" (which are looked up in a separate table.
>
>>
>> Notice the absence of any array of 4, 6, or 8192 WCHARs.
>
>
> You don't need to ! you assign a value WCH_LGTR=0xF002 (the PUA code
> unit), which triggers a lookup in the "LIGATUREn" tables.
>
>
>> Only one WCHAR
>> can be composed from a dead-key sequence.
>
>
> Wrong, you assign a WCH_LGTR and then ligature tables are used, they are
> not limited to just one code unit.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://unicode.org/pipermail/unicode/attachments/20161104/3ffe58c8/attachment.html>


More information about the Unicode mailing list