Fix naming of nested Enums with short names
This commit is contained in:
@@ -92,9 +92,9 @@ class Enum:
|
||||
if enum_options.long_names:
|
||||
self.values = [(self.names + x.name, x.number) for x in desc.value]
|
||||
else:
|
||||
self.values = [(x.name, x.number) for x in desc.value]
|
||||
self.values = [(names + x.name, x.number) for x in desc.value]
|
||||
|
||||
self.value_longnames = [names + desc.name + x.name for x in desc.value]
|
||||
self.value_longnames = [self.names + x.name for x in desc.value]
|
||||
|
||||
def __str__(self):
|
||||
result = 'typedef enum _%s {\n' % self.names
|
||||
@@ -395,7 +395,8 @@ def parse_file(fdesc, file_options):
|
||||
message_options = get_nanopb_suboptions(message, file_options)
|
||||
messages.append(Message(names, message, message_options))
|
||||
for enum in message.enum_type:
|
||||
enums.append(Enum(names, enum, message_options))
|
||||
enum_options = get_nanopb_suboptions(enum, message_options)
|
||||
enums.append(Enum(names, enum, enum_options))
|
||||
|
||||
# Fix field default values where enum short names are used.
|
||||
for enum in enums:
|
||||
|
||||
@@ -3,3 +3,4 @@ char msgsize\[30\];
|
||||
char fieldsize\[40\];
|
||||
pb_callback_t int32_callback;
|
||||
\sEnumValue1 = 1
|
||||
Message5_EnumValue1
|
||||
|
||||
@@ -43,3 +43,14 @@ message EnumTest
|
||||
{
|
||||
required Enum1 field = 1 [default = EnumValue2];
|
||||
}
|
||||
|
||||
// Short enum names inside message
|
||||
message Message5
|
||||
{
|
||||
enum Enum2
|
||||
{
|
||||
option (nanopb_enumopt).long_names = false;
|
||||
EnumValue1 = 1;
|
||||
}
|
||||
required Enum2 field = 1 [default = EnumValue1];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user