git://git.jankratochvil.net
/
reactos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
update for HEAD-2003091401
[reactos.git]
/
tools
/
mkhive
/
infcache.c
diff --git
a/tools/mkhive/infcache.c
b/tools/mkhive/infcache.c
index
6c3fbc4
..
c51fbe1
100644
(file)
--- a/
tools/mkhive/infcache.c
+++ b/
tools/mkhive/infcache.c
@@
-426,7
+426,10
@@
inline static int is_eof( struct parser *parser, const CHAR *ptr )
/* check if the pointer points to an end of line */
inline static int is_eol( struct parser *parser, const CHAR *ptr )
{
/* check if the pointer points to an end of line */
inline static int is_eol( struct parser *parser, const CHAR *ptr )
{
- return (ptr >= parser->end || *ptr == CONTROL_Z || *ptr == '\r' /*'\n'*/);
+ return (ptr >= parser->end ||
+ *ptr == CONTROL_Z ||
+ *ptr == '\n' ||
+ (*ptr == '\r' && *(ptr + 1) == '\n'));
}
}
@@
-544,20
+547,24
@@
static const CHAR *line_start_state( struct parser *parser, const CHAR *pos )
{
switch(*p)
{
{
switch(*p)
{
-// case '\n':
case '\r':
case '\r':
- p++;
+ continue;
+
+ case '\n':
parser->line_pos++;
close_current_line( parser );
break;
parser->line_pos++;
close_current_line( parser );
break;
+
case ';':
push_state( parser, LINE_START );
set_state( parser, COMMENT );
return p + 1;
case ';':
push_state( parser, LINE_START );
set_state( parser, COMMENT );
return p + 1;
+
case '[':
parser->start = p + 1;
set_state( parser, SECTION_NAME );
return p + 1;
case '[':
parser->start = p + 1;
set_state( parser, SECTION_NAME );
return p + 1;
+
default:
if (!isspace(*p))
{
default:
if (!isspace(*p))
{
@@
-711,20
+718,23
@@
static const CHAR *eol_backslash_state( struct parser *parser, const CHAR *pos )
{
switch(*p)
{
{
switch(*p)
{
-// case '\n':
case '\r':
case '\r':
+ continue;
+
+ case '\n':
parser->line_pos++;
parser->line_pos++;
-// parser->start = p + 1;
- parser->start = p + 2;
+ parser->start = p + 1;
set_state( parser, LEADING_SPACES );
set_state( parser, LEADING_SPACES );
-
//
return p + 1;
- return p + 2;
+
return p + 1;
+
case '\\':
continue;
case '\\':
continue;
+
case ';':
push_state( parser, EOL_BACKSLASH );
set_state( parser, COMMENT );
return p + 1;
case ';':
push_state( parser, EOL_BACKSLASH );
set_state( parser, COMMENT );
return p + 1;
+
default:
if (isspace(*p))
continue;
default:
if (isspace(*p))
continue;