Add some helpful debug output to LAYOUT parsing, and enable DoLAYOUT code. The tool is able to fully decode/parse the test.klc English US layout file!

svn path=/trunk/; revision=43950
This commit is contained in:
Arch Blackmann 2009-11-04 19:52:36 +00:00
parent 7662e72971
commit 66afccbaeb

View file

@ -890,9 +890,6 @@ DoLAYOUT(IN PLAYOUT LayoutData,
PLAYOUTENTRY Entry; PLAYOUTENTRY Entry;
UCHAR CharacterType, LigatureChar; UCHAR CharacterType, LigatureChar;
/* Only attempt this is Verbose is enabled (FOR DEBUGGING ONLY) */
if (!Verbose) return SkipLines();
/* Zero out the layout */ /* Zero out the layout */
memset(LayoutData, 0, sizeof(LAYOUT)); memset(LayoutData, 0, sizeof(LAYOUT));
@ -930,6 +927,7 @@ DoLAYOUT(IN PLAYOUT LayoutData,
} }
/* One more */ /* One more */
DPRINT1("RAW ENTRY: [%x %s %s]\n", ScanCode, Token, Cap);
Entry++; Entry++;
if (++ScanCodeCount >= 110) if (++ScanCodeCount >= 110)
{ {
@ -988,6 +986,8 @@ DoLAYOUT(IN PLAYOUT LayoutData,
/* Get the virtual key from the entry */ /* Get the virtual key from the entry */
VirtualKey = getVKNum(Token); VirtualKey = getVKNum(Token);
Entry->VirtualKey = VirtualKey; Entry->VirtualKey = VirtualKey;
DPRINT1("ENTRY: [%x %x %x %s] with ",
Entry->VirtualKey, Entry->OriginalVirtualKey, Entry->ScanCode, Entry->Name);
/* Make sure it's valid */ /* Make sure it's valid */
if (VirtualKey == 0xFFFF) if (VirtualKey == 0xFFFF)
@ -1024,6 +1024,7 @@ DoLAYOUT(IN PLAYOUT LayoutData,
State[6], State[6],
State[7]); State[7]);
Entry->StateCount = Count; Entry->StateCount = Count;
DPRINT1("%d STATES: [", Count);
/* Check if there are less than 2 states */ /* Check if there are less than 2 states */
if ((Count < 2) && (FullEntry)) if ((Count < 2) && (FullEntry))
@ -1037,6 +1038,7 @@ DoLAYOUT(IN PLAYOUT LayoutData,
for (i = 0; i < Count; i++) for (i = 0; i < Count; i++)
{ {
/* Check if this is an undefined state */ /* Check if this is an undefined state */
DPRINT1("%s ", State[i]);
if (!strcmp(State[i], "-1")) if (!strcmp(State[i], "-1"))
{ {
/* No data for this state */ /* No data for this state */
@ -1061,6 +1063,7 @@ DoLAYOUT(IN PLAYOUT LayoutData,
} }
/* Check for sanity checks */ /* Check for sanity checks */
DPRINT1("]\n");
if (SanityCheck) if (SanityCheck)
{ {
/* Not yet handled... */ /* Not yet handled... */