PINFCACHESECTION cur_section; /* pointer to the section being parsed*/
PINFCACHELINE line; /* current line */
unsigned int line_pos; /* current line position in file */
- unsigned int error; /* error code */
+ INFSTATUS error; /* error code */
unsigned int token_len; /* current token len */
TCHAR token[MAX_FIELD_LEN+1]; /* current token */
};
}
/* Allocate and initialize the new section */
- Size = sizeof(INFCACHESECTION) + (_tcslen (Name) * sizeof(TCHAR));
+ Size = (ULONG)FIELD_OFFSET(INFCACHESECTION,
+ Name[_tcslen (Name) + 1]);
Section = (PINFCACHESECTION)MALLOC (Size);
if (Section == NULL)
{
PINFCACHEFIELD Field;
ULONG Size;
- Size = sizeof(INFCACHEFIELD) + (_tcslen(Data) * sizeof(TCHAR));
+ Size = (ULONG)FIELD_OFFSET(INFCACHEFIELD,
+ Data[_tcslen(Data) + 1]);
Field = (PINFCACHEFIELD)MALLOC(Size);
if (Field == NULL)
{
/* push data from current token start up to pos into the current token */
static int push_token( struct parser *parser, const CHAR *pos )
{
- unsigned int len = pos - parser->start;
+ UINT len = (UINT)(pos - parser->start);
const CHAR *src = parser->start;
TCHAR *dst = parser->token + parser->token_len;
parser->token_len += len;
for ( ; len > 0; len--, dst++, src++)
- *dst = *src ? (TCHAR)*src : L' ';
+ {
+ if (*src)
+ {
+ *dst = *src;
+ }
+ else
+ {
+ *dst = _T(' ');
+ }
+ }
+
*dst = 0;
parser->start = pos;