From 0b63c2c64d678f77e1eb3c1a7b473a00c8f9f1cc Mon Sep 17 00:00:00 2001 From: Royce Mitchell III Date: Thu, 6 Nov 2003 02:50:12 +0000 Subject: [PATCH] the code does, in fact, handle bitfields correctly. svn path=/trunk/; revision=6540 --- reactos/apps/utils/sdkparse/sdkparse.cpp | 2 +- reactos/apps/utils/sdkparse/test.h | 10 +++++----- reactos/apps/utils/sdkparse/tokenize.cpp | 13 +++++++++++++ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/reactos/apps/utils/sdkparse/sdkparse.cpp b/reactos/apps/utils/sdkparse/sdkparse.cpp index 5265f22b68a..56216438335 100644 --- a/reactos/apps/utils/sdkparse/sdkparse.cpp +++ b/reactos/apps/utils/sdkparse/sdkparse.cpp @@ -261,7 +261,7 @@ void depend ( const string& ident, vector& dependencies ) int parse_variable ( const vector& tokens, int off, vector& names, vector& dependencies ) { - // FIXME - handle bitfields properly + // NOTE - Test with bitfields, I think this code will actually handle them properly... depend ( tokens[off++], dependencies ); int done = tokens.size(); while ( off < done && tokens[off] != ";" ) diff --git a/reactos/apps/utils/sdkparse/test.h b/reactos/apps/utils/sdkparse/test.h index a4646325f73..e75436a89c7 100644 --- a/reactos/apps/utils/sdkparse/test.h +++ b/reactos/apps/utils/sdkparse/test.h @@ -1,4 +1,4 @@ -/* $Id: test.h,v 1.1 2003/11/05 20:24:23 royce Exp $ +/* $Id: test.h,v 1.2 2003/11/06 02:50:12 royce Exp $ */ /* * test.h @@ -22,11 +22,11 @@ #ifndef __INTERNAL_PSAPI_H_INCLUDED__ #define __INTERNAL_PSAPI_H_INCLUDED__ -typedef struct foo_ +typedef struct tagFOO { - int lonibble : 4; - int hinibble : 4; -} foo; + INT lonibble : 4; + INT hinibble : 4; +} FOO, *PFOO, FAR *LPFOO; /* INCLUDES */ #define NTOS_MODE_USER diff --git a/reactos/apps/utils/sdkparse/tokenize.cpp b/reactos/apps/utils/sdkparse/tokenize.cpp index b09205901f6..fed9f7413e8 100644 --- a/reactos/apps/utils/sdkparse/tokenize.cpp +++ b/reactos/apps/utils/sdkparse/tokenize.cpp @@ -122,6 +122,19 @@ void tokenize ( const string& text, vector& tokens ) tokens.push_back ( ";" ); p++; break; + case ':': + switch ( p[1] ) + { + case ':': + tokens.push_back ( string ( p, 2 ) ); + p += 2; + break; + default: + tokens.push_back ( ":" ); + p++; + break; + } + break; case '*': switch ( p[1] ) {