NLS files and FONTSIGNATURE
Pablo Saratxaga
pablo at walon.org
Sat Jan 28 14:57:08 CST 2012
Kaixo,
I'm planning to create/fix/check all the possible NLS files.
There is, however, an entry on those files that is problematic for me,
namely the LOCALE_FONTSIGNATURE one.
>From the Microsoft docs I understand it is made of 3 bitfields,
one 128bit for unicode coverage, and two 64bit ones for codepage
("default" and "supported").
For those last two there is no problem, after the normal
endianess switching I get an hex number with bits that make sens.
eg for rus.nls file I have a fontsignature being:
L"\x0203\x8000\x3848\x0000\x0000\x0000\x0000\x0000\x0004\x0000\x0000\x0002\x0004\x0000\x0000\x0202"
the default and supported codepage parts are respectively:
\x0004\x0000\x0000\x0002
\x0004\x0000\x0000\x0202
after switching \x(1)\x(2)\x(3)\x(4) to 0x(4)(3)(2)(1) I get:
0x0002000000000004 and 0x0202000000000004
which perfectly match bits 2, 49, 57; code pages 1250, 866, 855
But for the unicode coverage part I'm lost...
In the LOCALE_FONTSIGNATURE it is:
\x00a3\x8000\x7878\x38c9\x0016\x0000\x0000\x0000
In order to get a 128 bit number that makes sense I had to do
the following switching:
\x(1)\x(2)\x(3)\x(4)\x(5)\x(6)\x(7)\x(8) to 0x(2)(7)(6)(5)(4)(3)(8)(1)
but it seems strange to me.
Also, font signatures for other nls don't make sense with that substitution.
So; how should I made the conversion between the format used in *.nls
files and the 128 bit number used as bitfield to calculate the flags?
Are the values in *.nls files trusty?
Thanks
--
Ki ça vos våye bén,
Pablo Saratxaga
http://chanae.walon.org/pablo/ PGP Key available, key ID: 0xD9B85466
More information about the wine-devel
mailing list