From 336bb6a786cec136d3bd6996f7bab3f58db22607 Mon Sep 17 00:00:00 2001 From: Mike Kestner Date: Mon, 26 Jan 2004 04:10:32 +0000 Subject: [PATCH] 2004-01-25 Mike Kestner * gdk/gdk-api.xml : regen * gnome/gnome-api.xml : regen * gtk/gtk-api.xml : regen * parser/gapi2xml.pl : handle typedef struct {...} Foo; [Fixes #53312] svn path=/trunk/gtk-sharp/; revision=22486 --- ChangeLog | 8 ++++++++ gdk/gdk-api.xml | 4 ++++ gnome/gnome-api.xml | 28 ++++++++++++++++------------ gtk/gtk-api.xml | 1 + parser/gapi2xml.pl | 23 ++++++++++++++++------- 5 files changed, 45 insertions(+), 19 deletions(-) diff --git a/ChangeLog b/ChangeLog index 84f54d12a..77c52e3f3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2004-01-25 Mike Kestner + + * gdk/gdk-api.xml : regen + * gnome/gnome-api.xml : regen + * gtk/gtk-api.xml : regen + * parser/gapi2.xml.pl : handle typedef struct {...} Foo; + [Fixes #53312] + 2004-01-22 Martin Willemoes Hansen * generator/Ctor.cs: Warnings was output like "ctor" fixed to diff --git a/gdk/gdk-api.xml b/gdk/gdk-api.xml index 333ccd026..7b2fc552c 100644 --- a/gdk/gdk-api.xml +++ b/gdk/gdk-api.xml @@ -2155,6 +2155,7 @@ + @@ -2732,6 +2733,9 @@ + + + diff --git a/gnome/gnome-api.xml b/gnome/gnome-api.xml index ff4c764ca..5c3688ce9 100644 --- a/gnome/gnome-api.xml +++ b/gnome/gnome-api.xml @@ -4130,6 +4130,22 @@ + + + + + + + + + + + + + + + + @@ -4281,18 +4297,6 @@ - - - - - - - - - - - - diff --git a/gtk/gtk-api.xml b/gtk/gtk-api.xml index 23f395564..e3f418d88 100644 --- a/gtk/gtk-api.xml +++ b/gtk/gtk-api.xml @@ -12082,6 +12082,7 @@ + diff --git a/parser/gapi2xml.pl b/parser/gapi2xml.pl index 39cdb4898..450ff070b 100755 --- a/parser/gapi2xml.pl +++ b/parser/gapi2xml.pl @@ -55,6 +55,15 @@ while ($line = ) { # fixme: siiigh $2 = "GdkDrawable" if ($1 eq "_GdkDrawable"); $types{$2} = $1; + } elsif ($line =~ /typedef\s+struct/) { + $sdef = $line; + while ($line = ) { + $sdef .= $line; + last if ($line =~ /^}/); + } + $sdef =~ s!/\*.*?(\*/|\n)!!g; + $sdef =~ s/\n\s*//g; + $types{$1} = $sdef if ($sdef =~ /.*\}\s*(\w+);/); } elsif ($line =~ /typedef\s+(\w+)\s+(\**)(\w+);/) { $types{$3} = $1 . $2; } elsif ($line =~ /typedef\s+enum\s+(\w+)\s+(\w+);/) { @@ -329,19 +338,19 @@ foreach $key (sort (keys (%types))) { if ($types{$type} =~ /struct\s+(\w+)/) { $type = $1; + if (exists($sdefs{$type})) { + $def = $sdefs{$type}; + } else { + $def = "privatestruct"; + } + } elsif ($types{$type} =~ /struct/ && $type =~ /^$ns/) { + $def = $types{$type}; } else { $elem = addNameElem($ns_elem, 'alias', $key, $ns); $elem->setAttribute('type', $lasttype); warn "alias $key to $lasttype\n" if $debug; next; } - - if (exists($sdefs{$type})) { - $def = $sdefs{$type}; - } else { - $def = "privatestruct"; - } - # fixme: hack if ($key eq "GdkBitmap") {