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=43888&r1=43887&r2=43888&view=diff
==============================================================================
--- 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();
 }
 


Reply via email to