Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nanopb/nanopb.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Strohminger <joshstrohminger@users.noreply.github.com>2023-08-17 01:45:55 +0300
committerPetteri Aimonen <jpa@github.mail.kapsi.fi>2023-08-17 14:14:39 +0300
commite643c4fcce22eb0e85661110af56effdace36643 (patch)
treee62ebc9a9d24956be346955a0a325d6730da7ebf
parent9b47f864bb9c7cc453f3c08eb8571f1178785440 (diff)
Keep track of enum auxiliary defines as mangled pairs
-rwxr-xr-xgenerator/nanopb_generator.py24
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