Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
e1fd4390
Commit
e1fd4390
authored
Jun 07, 2010
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winapi: Fix a few C parser bugs.
parent
84ff0631
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
9 additions
and
3 deletions
+9
-3
c_parser.pm
tools/winapi/c_parser.pm
+9
-3
No files found.
tools/winapi/c_parser.pm
View file @
e1fd4390
...
...
@@ -513,6 +513,12 @@ sub parse_c_declaration($$$$)
if
(
s/\)//
)
{
$column
++
;
}
}
elsif
(
s/^__ASM_STDCALL_FUNC\(\s*(\w+)\s*,\s*\d+\s*,\s*//s
)
{
# FIXME: Wine specific kludge
$self
->
_update_c_position
(
$&
,
\
$line
,
\
$column
);
$self
->
_parse_c_until_one_of
(
"\)"
,
\
$_
,
\
$line
,
\
$column
);
if
(
s/\)//
)
{
$column
++
;
}
}
elsif
(
s/^(?:DEFINE_AVIGUID|DEFINE_OLEGUID)\s*(?=\()//s
)
{
# FIXME: Wine specific kludge
$self
->
_update_c_position
(
$&
,
\
$line
,
\
$column
);
...
...
@@ -934,7 +940,7 @@ sub parse_c_file($$$$)
$self
->
_parse_c_error
(
$_
,
$line
,
$column
,
"file"
,
") without ("
);
}
$declaration
.=
$&
;
if
(
$plevel
==
1
&&
$declaration
=~
/^
__ASM_GLOBAL_FUNC
/
)
{
if
(
$plevel
==
1
&&
$declaration
=~
/^
(__ASM_GLOBAL_FUNC|__ASM_STDCALL_FUNC)
/
)
{
if
(
!
$self
->
parse_c_declaration
(
\
$declaration
,
\
$declaration_line
,
\
$declaration_column
))
{
return
0
;
}
...
...
@@ -1390,11 +1396,11 @@ sub parse_c_struct_union($$$$$$$$$)
$self
->
_parse_c_until_one_of
(
"\\S"
,
\
$_
,
\
$line
,
\
$column
);
if
(
!
s/^(interface|struct|union)
\s+((?:MSVCRT|WS)\(\s*\w+\s*\)|\w+
)?\s*\{\s*//s
)
{
if
(
!
s/^(interface|struct|union)
(\s+((?:MSVCRT|WS)\(\s*\w+\s*\)|\w+)
)?\s*\{\s*//s
)
{
return
0
;
}
$kind
=
$1
;
$_name
=
$
2
||
""
;
$_name
=
$
3
||
""
;
$self
->
_update_c_position
(
$&
,
\
$line
,
\
$column
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment