[Gtk-sharp-list] patch: gapi.pl allows renaming of enum and enum
members
Aleksey Sanin
aleksey@aleksey.com
Tue, 26 Aug 2003 22:00:16 -0700
This is a multi-part message in MIME format.
--------------060807090801030403020103
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
>I've made some comments below. Can you rework the patch to incorporate
>the comments and verify that it still works for your libzvt binding?
>
Done. See attached file. My wrapper still works after trivial renaming
enum-->class :)
>Also, please check out the guidelines on go-mono.org for obtaining a cvs
>account.
>
Thanks. I'll send a message to Miguel tonight.
Thanks for review!
Aleksey
--------------060807090801030403020103
Content-Type: text/plain;
name="gapi.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="gapi.diff"
Index: ChangeLog
===================================================================
RCS file: /mono/gtk-sharp/ChangeLog,v
retrieving revision 1.451
diff -u -r1.451 ChangeLog
--- ChangeLog 27 Aug 2003 02:26:04 -0000 1.451
+++ ChangeLog 27 Aug 2003 04:48:31 -0000
@@ -1,3 +1,8 @@
+2003-08-26 Aleksey Sanin <aleksey@aleksey.com>
+
+ * parser/GAPI/Metadata.pm: enable enums processing using
+ <class/> element syntax
+
2003-08-26 John Luke <jluke@cfl.rr.com>
* gtk/ThreadNotify.cs: mark dllimported methods private
Index: parser/GAPI/Metadata.pm
===================================================================
RCS file: /mono/gtk-sharp/parser/GAPI/Metadata.pm,v
retrieving revision 1.12
diff -u -r1.12 Metadata.pm
--- parser/GAPI/Metadata.pm 11 Jul 2003 02:00:12 -0000 1.12
+++ parser/GAPI/Metadata.pm 27 Aug 2003 04:48:31 -0000
@@ -25,18 +25,18 @@
my ($node, $classes) = @_;
my %methods = ();
my %signals = ();
- my %properties = ();
+ my %members = ();
my @attrs = $node->attributes;
my $class_name = $attrs[0]->value;
- ${$classes}{$class_name} = [\%methods, \%signals, \%properties];
+ ${$classes}{$class_name} = [\%methods, \%signals, \%members];
for ($method_node = $node->firstChild; $method_node != undef; $method_node = $method_node->nextSibling ()) {
if ($method_node->nodeName eq "method" or $method_node->nodeName eq "constructor") {
$methods{$method_node->firstChild->nodeValue} = 1;
} elsif ($method_node->nodeName eq "signal") {
$signals{$method_node->firstChild->nodeValue} = 1;
- } elsif ($method_node->nodeName eq "property") {
- $properties{$method_node->firstChild->nodeValue} = 1;
+ } elsif ($method_node->nodeName eq "property" or $method_node->nodeName eq "member") {
+ $members{$method_node->firstChild->nodeValue} = 1;
}
}
}
@@ -182,7 +182,7 @@
foreach $rule (@{$self->{rules}}) {
my ($classes_ref, $data_list_ref) = @$rule;
for ($node = $ns_node->firstChild; $node; $node = $node->nextSibling ()) {
- next if not ($node->nodeName eq "object" or $node->nodeName eq "interface" or $node->nodeName eq "struct" or $node->nodeName eq "boxed" or $node->nodeName eq "callback" or $node->nodeName eq "class");
+ next if not ($node->nodeName eq "object" or $node->nodeName eq "interface" or $node->nodeName eq "struct" or $node->nodeName eq "boxed" or $node->nodeName eq "callback" or $node->nodeName eq "class" or $node->nodeName eq "enum");
my $class, $methods_ref, $attr;
foreach $attr ($node->attributes) {
if ($attr->name eq "cname") {
@@ -194,13 +194,13 @@
my %classes = %$classes_ref;
$methods_ref = $classes{$class}[0];
$signals_ref = $classes{$class}[1];
- $properties_ref = $classes{$class}[2];
+ $members_ref = $classes{$class}[2];
if ({%$classes_ref}->{$class}) {
addClassData ($doc, $node, $class, $data_list_ref);
}
- next if not ($methods_ref or $signals_ref or $properties_ref);
+ next if not ($methods_ref or $signals_ref or $members_ref);
for ($method_node = $node->firstChild; $method_node; $method_node = $method_node->nextSibling ()) {
next if not ($method_node->nodeName eq "method" or $method_node->nodeName eq "constructor");
@@ -230,26 +230,24 @@
fixupParams ($signal_node, $data_list_ref);
}
- for ($property_node = $node->firstChild; $property_node; $property_node = $property_node->nextSibling ()) {
- next if $property_node->nodeName ne "property";
- my $property;
- foreach $attr ($property_node->attributes) {
+ for ($member_node = $node->firstChild; $member_node; $member_node = $member_node->nextSibling ()) {
+ next if $member_node->nodeName ne "property" and $member_node->nodeName ne "member";
+ my $member;
+ foreach $attr ($member_node->attributes) {
if ($attr->name eq "name") {
- $property = $attr->value;
+ $member = $attr->value;
last;
}
}
- next if not ${$properties_ref}{$property};
+ next if not ${$members_ref}{$member};
foreach $data (@$data_list_ref) {
- if ($$data[1] eq "property") {
- $property_node->setAttribute ($$data[5], $$data[6]);
+ if ($$data[1] eq "property" or $$data[1] eq "member") {
+ $member_node->setAttribute ($$data[5], $$data[6]);
next;
}
}
-
}
-
}
}
}
--------------060807090801030403020103--