summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/gen_dispatch.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/gen_dispatch.py b/src/gen_dispatch.py
index 637fd8f..6172756 100755
--- a/src/gen_dispatch.py
+++ b/src/gen_dispatch.py
@@ -446,8 +446,16 @@ class Generator(object):
self.outln('#define {0} 1'.format(name))
self.outln('')
- for name, value in self.enums.items():
- self.outln('#define ' + name.ljust(self.max_enum_name_len + 3) + value + '')
+ # We want to sort by enum number (which puts a bunch of things
+ # in a logical order), then by name after that, so we do those
+ # sorts in reverse. This is still way uglier than doing some
+ # sort based on what version/extensions things are introduced
+ # in, but we haven't paid any attention to those attributes
+ # for enums yet.
+ sorted_by_name = sorted(self.enums.keys())
+ sorted_by_number = sorted(sorted_by_name, key=lambda name: self.enums[name])
+ for name in sorted_by_number:
+ self.outln('#define ' + name.ljust(self.max_enum_name_len + 3) + self.enums[name] + '')
def write_function_ptr_typedefs(self):
for func in self.sorted_functions: