[glib] glib-mkenums: fix handling of forward enum declarations
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] glib-mkenums: fix handling of forward enum declarations
- Date: Tue, 7 Feb 2012 23:43:54 +0000 (UTC)
commit f049262a6105ecad71e5515300cbb0239800b10d
Author: Dan Winship <danw gnome org>
Date: Tue Feb 7 10:54:22 2012 -0500
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
gobject/glib-mkenums.in | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
---
diff --git a/gobject/glib-mkenums.in b/gobject/glib-mkenums.in
index 34440aa..b776e1f 100755
--- a/gobject/glib-mkenums.in
+++ b/gobject/glib-mkenums.in
@@ -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;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]