Add missing #define for submsg callbacks, add regression test (#472)
diff --git a/pb.h b/pb.h
index 3fc6c5e..8bf00e3 100644
--- a/pb.h
+++ b/pb.h
@@ -746,6 +746,7 @@
#define PB_FIELDINFO_WIDTH_INT32 1
#define PB_FIELDINFO_WIDTH_INT64 1
#define PB_FIELDINFO_WIDTH_MESSAGE 2
+#define PB_FIELDINFO_WIDTH_MSG_W_CB 2
#define PB_FIELDINFO_WIDTH_SFIXED32 1
#define PB_FIELDINFO_WIDTH_SFIXED64 1
#define PB_FIELDINFO_WIDTH_SINT32 1
diff --git a/tests/regression/issue_472/SConscript b/tests/regression/issue_472/SConscript
new file mode 100644
index 0000000..64e8678
--- /dev/null
+++ b/tests/regression/issue_472/SConscript
@@ -0,0 +1,7 @@
+# Regression test for issue #472: submsg_callback fails to compile in Atmel Studio
+
+Import("env")
+
+env.NanopbProto("test")
+env.Object("test.pb.c")
+
diff --git a/tests/regression/issue_472/test.proto b/tests/regression/issue_472/test.proto
new file mode 100644
index 0000000..c3597cb
--- /dev/null
+++ b/tests/regression/issue_472/test.proto
@@ -0,0 +1,16 @@
+syntax = "proto3";
+
+import "nanopb.proto";
+
+message FirmwareUpdateCommand {
+ string version = 1;
+ uint32 size = 2;
+}
+
+message CommandWrapperMessage {
+ option (nanopb_msgopt).submsg_callback = true;
+
+ oneof payload {
+ FirmwareUpdateCommand firmware_update = 1;
+ }
+}