diff --git a/ChangeLog b/ChangeLog index 77c52e3f3..ec7a691b3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,19 @@ +2004-01-25 Mike Kestner + + * art/art-api.xml : regen + * gdk/gdk-api.xml : regen + * generator/SymbolTable.cs : add unsigned char mapping + * gnome/gnome-api.xml : regen + * parser/gapi2xml.pl : handle unsigned keyword in fields, + typedefs, and parameter types. + [Fixes #53055] + 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; + * parser/gapi2xml.pl : handle typedef struct {...} Foo; [Fixes #53312] 2004-01-22 Martin Willemoes Hansen diff --git a/art/art-api.xml b/art/art-api.xml index a4132e3d0..b2710ccff 100644 --- a/art/art-api.xml +++ b/art/art-api.xml @@ -299,7 +299,7 @@ - + @@ -686,7 +686,7 @@ - + @@ -748,6 +748,9 @@ + + + diff --git a/gdk/gdk-api.xml b/gdk/gdk-api.xml index 7b2fc552c..0fdc9aa28 100644 --- a/gdk/gdk-api.xml +++ b/gdk/gdk-api.xml @@ -4285,8 +4285,8 @@ - - + + diff --git a/generator/SymbolTable.cs b/generator/SymbolTable.cs index 4987e6cfe..7d04f958d 100644 --- a/generator/SymbolTable.cs +++ b/generator/SymbolTable.cs @@ -56,6 +56,7 @@ namespace GtkSharp.Generation { AddType (new SimpleGen ("guint1", "bool")); AddType (new SimpleGen ("gpointer", "IntPtr")); AddType (new SimpleGen ("guchar", "byte")); + AddType (new SimpleGen ("unsigned char", "byte")); AddType (new SimpleGen ("short", "short")); AddType (new SimpleGen ("long", "long")); AddType (new SimpleGen ("ulong", "ulong")); diff --git a/gnome/gnome-api.xml b/gnome/gnome-api.xml index 5c3688ce9..5b2267278 100644 --- a/gnome/gnome-api.xml +++ b/gnome/gnome-api.xml @@ -729,13 +729,13 @@ - - - - - - - + + + + + + + @@ -1073,7 +1073,7 @@ - + @@ -1285,7 +1285,7 @@ - + @@ -1497,8 +1497,8 @@ - - + + @@ -3748,11 +3748,11 @@ - - - - - + + + + + diff --git a/parser/gapi2xml.pl b/parser/gapi2xml.pl index 450ff070b..a429cba96 100755 --- a/parser/gapi2xml.pl +++ b/parser/gapi2xml.pl @@ -64,6 +64,8 @@ while ($line = ) { $sdef =~ s!/\*.*?(\*/|\n)!!g; $sdef =~ s/\n\s*//g; $types{$1} = $sdef if ($sdef =~ /.*\}\s*(\w+);/); + } elsif ($line =~ /typedef\s+(unsigned\s+\w+)\s+(\**)(\w+);/) { + $types{$3} = $1 . $2; } elsif ($line =~ /typedef\s+(\w+)\s+(\**)(\w+);/) { $types{$3} = $1 . $2; } elsif ($line =~ /typedef\s+enum\s+(\w+)\s+(\w+);/) { @@ -443,8 +445,8 @@ sub addFieldElems $elem = addNameElem($parent, 'callback', $2); addReturnElem($elem, $1); addParamsElem($elem, $3); - } elsif ($field =~ /(\S+)\s+(.+)/) { - $type = $1; $symb = $2; + } elsif ($field =~ /(unsigned )?(\S+)\s+(.+)/) { + $type = $1 . $2; $symb = $3; foreach $tok (split (/,\s*/, $symb)) { if ($tok =~ /(\w+)\s*\[(.*)\]/) { $elem = addNameElem($parent, 'field', $1); @@ -689,9 +691,9 @@ sub addParamsElem if ($parm =~ /struct\s+(\S+)\s+(\S+)/) { $parm_elem->setAttribute('type', $1); $name = $2; - }elsif ($parm =~ /(\S+)\s+(\S+)/) { - $parm_elem->setAttribute('type', $1); - $name = $2; + }elsif ($parm =~ /(unsigned )?(\S+)\s+(\S+)/) { + $parm_elem->setAttribute('type', $1 . $2); + $name = $3; } elsif ($parm =~ /(\S+)/) { $parm_elem->setAttribute('type', $1); $name = "arg" . $parm_num;