diff options
author | Josh Strohminger <joshstrohminger@users.noreply.github.com> | 2023-08-17 01:45:55 +0300 |
---|---|---|
committer | Petteri Aimonen <jpa@github.mail.kapsi.fi> | 2023-08-17 14:14:39 +0300 |
commit | e643c4fcce22eb0e85661110af56effdace36643 (patch) | |
tree | e62ebc9a9d24956be346955a0a325d6730da7ebf | |
parent | 9b47f864bb9c7cc453f3c08eb8571f1178785440 (diff) |
Keep track of enum auxiliary defines as mangled pairs
-rwxr-xr-x | generator/nanopb_generator.py | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/generator/nanopb_generator.py b/generator/nanopb_generator.py index 808be3d..4354086 100755 --- a/generator/nanopb_generator.py +++ b/generator/nanopb_generator.py @@ -481,16 +481,32 @@ class Enum(ProtoElement): def auxiliary_defines(self): # sort the enum by value sorted_values = sorted(self.values, key = lambda x: (x[1], x[0])) - result = '#define %s %s\n' % ( - Globals.naming_style.define_name('_%s_MIN' % self.names), + + unmangledName = self.protofile.manglenames.unmangle(self.names) + identifier = Globals.naming_style.define_name('_%s_MIN' % self.names) + result = '#define %s %s\n' % ( + identifier, Globals.naming_style.enum_entry(sorted_values[0][0])) + if unmangledName: + unmangledIdentifier = Globals.naming_style.define_name('_%s_MIN' % unmangledName) + self.protofile.manglenames.reverse_name_mapping[identifier] = unmangledIdentifier + + identifier = Globals.naming_style.define_name('_%s_MAX' % self.names) result += '#define %s %s\n' % ( - Globals.naming_style.define_name('_%s_MAX' % self.names), + identifier, Globals.naming_style.enum_entry(sorted_values[-1][0])) + if unmangledName: + unmangledIdentifier = Globals.naming_style.define_name('_%s_MAX' % unmangledName) + self.protofile.manglenames.reverse_name_mapping[identifier] = unmangledIdentifier + + identifier = Globals.naming_style.define_name('_%s_ARRAYSIZE' % self.names) result += '#define %s ((%s)(%s+1))\n' % ( - Globals.naming_style.define_name('_%s_ARRAYSIZE' % self.names), + identifier, Globals.naming_style.type_name(self.names), Globals.naming_style.enum_entry(sorted_values[-1][0])) + if unmangledName: + unmangledIdentifier = Globals.naming_style.define_name('_%s_ARRAYSIZE' % unmangledName) + self.protofile.manglenames.reverse_name_mapping[identifier] = unmangledIdentifier if not self.options.long_names: # Define the long names always so that enum value references |