Fix naming of nested Enums with short names
This commit is contained in:
@@ -92,9 +92,9 @@ class Enum:
|
|||||||
if enum_options.long_names:
|
if enum_options.long_names:
|
||||||
self.values = [(self.names + x.name, x.number) for x in desc.value]
|
self.values = [(self.names + x.name, x.number) for x in desc.value]
|
||||||
else:
|
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):
|
def __str__(self):
|
||||||
result = 'typedef enum _%s {\n' % self.names
|
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)
|
message_options = get_nanopb_suboptions(message, file_options)
|
||||||
messages.append(Message(names, message, message_options))
|
messages.append(Message(names, message, message_options))
|
||||||
for enum in message.enum_type:
|
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.
|
# Fix field default values where enum short names are used.
|
||||||
for enum in enums:
|
for enum in enums:
|
||||||
|
|||||||
@@ -3,3 +3,4 @@ char msgsize\[30\];
|
|||||||
char fieldsize\[40\];
|
char fieldsize\[40\];
|
||||||
pb_callback_t int32_callback;
|
pb_callback_t int32_callback;
|
||||||
\sEnumValue1 = 1
|
\sEnumValue1 = 1
|
||||||
|
Message5_EnumValue1
|
||||||
|
|||||||
@@ -43,3 +43,14 @@ message EnumTest
|
|||||||
{
|
{
|
||||||
required Enum1 field = 1 [default = EnumValue2];
|
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