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:
authorChristian Balcom <robot.inventor@gmail.com>2022-08-05 17:21:26 +0300
committerChristian Balcom <robot.inventor@gmail.com>2022-08-05 17:21:26 +0300
commit08487ae13bce377daf553540059222382847870b (patch)
tree08675a33d479b255f9bdd3fc05888ab9c2d27537
parent99490162a781f938bd8cfd40a7c894c2cb0b5857 (diff)
Generate ENUMTYPE macros for enums instead of MSGTYPE macros.
-rwxr-xr-xgenerator/nanopb_generator.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/generator/nanopb_generator.py b/generator/nanopb_generator.py
index c9fc4cf..77036b2 100755
--- a/generator/nanopb_generator.py
+++ b/generator/nanopb_generator.py
@@ -1422,7 +1422,7 @@ class Message(ProtoElement):
result += '#define %s_DEFAULT NULL\n' % Globals.naming_style.define_name(self.name)
for field in sorted_fields:
- if field.pbtype in ['MESSAGE', 'MSG_W_CB', "UENUM"]:
+ if field.pbtype in ['MESSAGE', 'MSG_W_CB']:
if field.rules == 'ONEOF':
result += "#define %s_%s_%s_MSGTYPE %s\n" % (
Globals.naming_style.type_name(self.name),
@@ -1437,6 +1437,21 @@ class Message(ProtoElement):
Globals.naming_style.type_name(field.ctype)
)
+ if field.pbtype in ['ENUM', "UENUM"]:
+ if field.rules == 'ONEOF':
+ result += "#define %s_%s_%s_ENUMTYPE %s\n" % (
+ Globals.naming_style.type_name(self.name),
+ Globals.naming_style.var_name(field.union_name),
+ Globals.naming_style.var_name(field.name),
+ Globals.naming_style.type_name(field.ctype)
+ )
+ else:
+ result += "#define %s_%s_ENUMTYPE %s\n" % (
+ Globals.naming_style.type_name(self.name),
+ Globals.naming_style.var_name(field.name),
+ Globals.naming_style.type_name(field.ctype)
+ )
+
return result
def fields_declaration_cpp_lookup(self):