[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--