From 63db97e9ad68bb252dfc3bd62b29c84d4b73a466 Mon Sep 17 00:00:00 2001 From: Bertrand Lorentz Date: Sun, 31 Jul 2011 12:32:43 +0200 Subject: [PATCH] parser: Handle the G_DEFINE_TYPE_EXTENDED macro G_DEFINE_TYPE_EXTENDED is the general macro for type implementations, on which G_DEFINE_TYPE_WITH_CODE is based. Handle it just like G_DEFINE_TYPE_WITH_CODE. Reparse the API with that change, which marks a few classes as implementing GtkStyleProvider. --- gtk/gtk-api.raw | 12 ++++++++++++ parser/gapi2xml.pl | 6 +++--- parser/gapi_pp.pl | 4 ++-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/gtk/gtk-api.raw b/gtk/gtk-api.raw index 1720b1282..d0f3d292f 100644 --- a/gtk/gtk-api.raw +++ b/gtk/gtk-api.raw @@ -8393,6 +8393,9 @@ + + + @@ -13182,6 +13185,9 @@ + + + @@ -16740,6 +16746,9 @@ + + + @@ -18309,6 +18318,9 @@ + + + diff --git a/parser/gapi2xml.pl b/parser/gapi2xml.pl index bbb974272..e6dfeca34 100755 --- a/parser/gapi2xml.pl +++ b/parser/gapi2xml.pl @@ -161,8 +161,8 @@ while ($line = ) { last if ($line =~ /^(deprecated)?}/); } $typefuncs{lc($class)} = $pedef; - } elsif ($line =~ /^G_DEFINE_TYPE_WITH_CODE\s*\(\s*(\w+)/) { - $typefuncs{lc($1)} = $line; + } elsif ($line =~ /^G_DEFINE_TYPE_(EXTENDED|WITH_CODE)\s*\(\s*(\w+)/) { + $typefuncs{lc($2)} = $line; } elsif ($line =~ /^G_DEFINE_BOXED_TYPE\s*\(\s*(\w+)/) { $boxdefs{$1} = $line; } elsif ($line =~ /^G_DEFINE_INTERFACE\s*\(\s*(\w+)\s*,\s*(\w+)/) { @@ -410,7 +410,7 @@ foreach $type (sort(keys(%objects))) { # Get the interfaces from the class_init func. if ($typefunc) { - if ($typefunc =~ /G_DEFINE_TYPE_WITH_CODE/) { + if ($typefunc =~ /G_DEFINE_TYPE_(EXTENDED|WITH_CODE)/) { parseTypeFuncMacro($obj_el, $typefunc); } else { parseTypeFunc($obj_el, $typefunc); diff --git a/parser/gapi_pp.pl b/parser/gapi_pp.pl index 777e54323..faafc9832 100755 --- a/parser/gapi_pp.pl +++ b/parser/gapi_pp.pl @@ -207,9 +207,9 @@ foreach $fname (@srcs, @privhdrs) { } while ($line = ) { - next if ($line !~ /^(struct|typedef struct.*;|\w+_class_init|\w+_base_init|\w+_default_init|\w+_get_type\b|G_DEFINE_TYPE_WITH_CODE|G_DEFINE_BOXED_TYPE|G_DEFINE_INTERFACE)/); + next if ($line !~ /^(struct|typedef struct.*;|\w+_class_init|\w+_base_init|\w+_default_init|\w+_get_type\b|G_DEFINE_TYPE_EXTENDED|G_DEFINE_TYPE_WITH_CODE|G_DEFINE_BOXED_TYPE|G_DEFINE_INTERFACE)/); - if ($line =~ /^G_DEFINE_(TYPE_WITH_CODE|BOXED_TYPE|INTERFACE)/) { + if ($line =~ /^G_DEFINE_(TYPE_EXTENDED|TYPE_WITH_CODE|BOXED_TYPE|INTERFACE)/) { my $macro; my $parens = 0; do {