]> Pileus Git - ~andy/gtk/blobdiff - gtk/makeenums.pl
Implement RTL flipping for GtkViewport: Adjust the "gravity" when resizing
[~andy/gtk] / gtk / makeenums.pl
index 986e934e99405d9bb962b880c41e3943a924d62b..2bdd3693976f61bfb7bcd6221ce65ad2d0de64a4 100755 (executable)
@@ -3,7 +3,7 @@
 # Information about the current enumeration
 
 my $flags;                     # Is enumeration a bitmask
-my $seenbitshift;                      # Have we seen bitshift operators?
+my $seenbitshift;              # Have we seen bitshift operators?
 my $prefix;                    # Prefix for this enumeration
 my $enumname;                  # Name for this enumeration
 my $firstenum = 1;             # Is this the first enumeration in file?
@@ -43,7 +43,7 @@ sub parse_entries {
 
        # Handle include files
        if (/^\#include\s*<([^>]*)>/ ) {
-            my $file= "$ENV{'srcdir'}/../$1";
+            my $file= "../$1";
            open NEWFILE, $file or die "Cannot open include file $file: $!\n";
            
            if (parse_entries (\*NEWFILE)) {
@@ -199,11 +199,12 @@ while (<>) {
            print ")\n";
 
        } else {
-           ($valuename = $enumname) =~ s/([A-Z][a-z])/_$1/g;
-           $valuename =~ s/([a-z])([A-Z])/$1_$2/g;
-           $valuename = lc($valuename);
+           my $valuename = $enumname;
+            $valuename =~ s/([^A-Z])([A-Z])/$1_$2/g;
+            $valuename =~ s/([A-Z][A-Z])([A-Z][0-9a-z])/$1_$2/g;
+            $valuename = lc($valuename);
 
-           print "static GtkEnumValue $ {valuename}_values[] = {\n";
+           print "static const GtkEnumValue _${valuename}_values[] = {\n";
            for (@entries) {
                my ($name,$nick) = @{$_};
                print qq(  { $name, "$name", "$nick" },\n);