Author: ablackmann Date: Sat Oct 31 22:54:26 2009 New Revision: 43888
URL: http://svn.reactos.org/svn/reactos?rev=43888&view=rev Log: Implement DoKBD. The tool can now handle the KBD section of a .klc layout.
Modified: trunk/reactos/tools/kbdtool/parser.c
Modified: trunk/reactos/tools/kbdtool/parser.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/kbdtool/parser.c?rev=... ============================================================================== --- trunk/reactos/tools/kbdtool/parser.c [iso-8859-1] (original) +++ trunk/reactos/tools/kbdtool/parser.c [iso-8859-1] Sat Oct 31 22:54:26 2009 @@ -18,10 +18,13 @@
#define KEYWORD_COUNT 17
-extern BOOLEAN Verbose; +extern BOOLEAN Verbose, UnicodeFile; extern PCHAR gpszFileName; extern FILE* gfpInput; CHAR gBuf[256]; +CHAR gKBDName[10]; +CHAR gDescription[256]; +ULONG gID = 0; CHAR g_Layout[4096]; ULONG gLineCount; PCHAR KeyWordList[KEYWORD_COUNT] = @@ -129,6 +132,25 @@ ULONG DoKBD(VOID) { + PCHAR p; + + /* On Unicode files, we need to find the Unicode marker (FEEF) */ + ASSERT(UnicodeFile == FALSE); + + /* Initial values */ + *gKBDName = '\0'; + *gDescription = '\0'; + + /* Scan for the values */ + if (sscanf(gBuf, "KBD %8s "%40[^"]" %d", gKBDName, gDescription, &gID) < 2) + { + /* Couldn't find them */ + printf("Unable to read keyboard name or description.\n"); + exit(1); + } + + /* Debug only */ + DPRINT1("KBD Name: [%8s] Description: [%40s] ID: [%d]\n", gKBDName, gDescription, gID); return SkipLines(); }