mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-24 22:46:15 +01:00
glib-mkenums: fix handling of forward enum declarations
Given typedef enum MyFoo MyFoo; glib-mkenums would get confused, not notice the ";", and then keep skipping lines until it found one that started with a "{", possibly even going into the next file. Fix it to just ignore those lines instead (and also, to error out if it hits eof while parsing an enum). https://bugzilla.gnome.org/show_bug.cgi?id=669595
This commit is contained in:
parent
808346c6ab
commit
f049262a61
@ -290,6 +290,9 @@ while (<>) {
|
||||
([^*]+|\*(?!/))*
|
||||
\*/@@gx;
|
||||
|
||||
# ignore forward declarations
|
||||
next if /^\s*typedef\s+enum.*;/;
|
||||
|
||||
if (m@^\s*typedef\s+enum\s*
|
||||
({)?\s*
|
||||
(?:/\*<
|
||||
@ -321,6 +324,9 @@ while (<>) {
|
||||
# Didn't have trailing '{' look on next lines
|
||||
if (!defined $1 && !defined $4) {
|
||||
while (<>) {
|
||||
if (eof) {
|
||||
die "Hit end of file while parsing enum in $ARGV";
|
||||
}
|
||||
if (s/^\s*\{//) {
|
||||
last;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user