summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2013-09-11Get rid of the ternary operator in the pb_field_t initialization.Petteri Aimonen2-20/+39
Some compilers where unable to detect that the ternary operator can be evaluated at the compile time. This commit does the evaluation on the Python side, which should fix the problem. The new .pb.c files are generated using PB_FIELD2() macro. The old PB_FIELD() macro remains, so that previously generated files keep working.
2013-09-09Move the declarations of _pb_ostream_t and _pb_istream_t before first use.Petteri Aimonen2-67/+67
Otherwise Microsoft Visual C++ threats them as C++ classes instead of plain structs, forbidding use in C linkage functions. Thanks to Markus Schwarzenberg for the patch. Update issue 84 Status: Started
2013-09-08Add support for running the nanopb generator as protoc plugin.Petteri Aimonen4-55/+419
Will be used to implement issue 47. For now, symlink nanopb_generator.py as protoc-gen-nanopb and use protoc --nanopb_out=. to call it.
2013-09-08Handle unsupported extension field types more gracefully.Petteri Aimonen2-5/+16
Previously the generator would stop with NotImplementedException as soon as a required or repeated extension field is found. New behaviour is to just ignore the unsupported field and note that in a comment in the generated file. Furthermore, allow skipping of extension fields using the generator option (nanopb).type = FT_IGNORE. Update issue 83 Status: FixedInGit
2013-08-18Setting version to 0.2.3-devPetteri Aimonen2-2/+2
2013-08-18Publishing nanopb-0.2.2Petteri Aimonen2-2/+2
2013-08-08Update changelogPetteri Aimonen1-0/+9
2013-08-08Document field extensions supportPetteri Aimonen3-1/+80
Update issue 17 Status: FixedInGit
2013-08-08Document PB_SYSTEM_HEADERPetteri Aimonen2-1/+8
2013-07-22Finish the testcase for extensionsPetteri Aimonen4-6/+29
2013-07-22Fix bugs in extension support when multiple extension fields are present.Petteri Aimonen3-4/+23
2013-07-17Extension support implemented for decoder.Petteri Aimonen3-7/+109
Testing is still needed. Also only 'optional' extension fields are supported now, 'repeated' fields are not yet supported.
2013-07-17Add test case for extensions decodingPetteri Aimonen3-2/+39
2013-07-17Implement extension support for the encoderPetteri Aimonen2-22/+74
2013-07-17Implement generator support for extension fields (no encoder/decoder support ↵Petteri Aimonen6-16/+183
yet)
2013-07-16Fix formatting in documentationPetteri Aimonen1-23/+41
2013-07-16Check for empty message type before incrementing required_field_index.Kent Ryhorchuk1-3/+3
If you have a message that defined as empty, but attempt to decode a message that has one or more unknown fields then pb_decode fails. The method used to count the number of required fields counts 1 required field because the default type of PB_LAST_FIELD is PB_HTYPE_REQUIRED.
2013-07-16Add test case for extra fields in AllTypesPetteri Aimonen2-0/+1
2013-07-06Add pb_decode_delimited and pb_encode_delimited wrapper functions.Petteri Aimonen6-0/+48
Update issue 74 Status: FixedInGit
2013-07-06Clean up the comments in pb_encode.h and pb_decode.hPetteri Aimonen2-86/+150
2013-07-06Add section in pb.h for changing compilation settings.Petteri Aimonen2-19/+64
Update issue 76 Status: FixedInGit
2013-07-06Add error message macros to API reference.Petteri Aimonen1-0/+25
2013-07-06Document the .options file usage.Petteri Aimonen3-48/+193
Also add note about the 'packed' message option being incompatible with CPUs that do not support unaligned access. Update issue 12 Status: FixedInGit Update issue 77 Status: FixedInGit
2013-07-06Switch the example project to use the new .options filePetteri Aimonen2-11/+16
2013-06-03Include the field tags in the generated .pb.h file.Petteri Aimonen1-0/+11
Patch from Michael Haberler.
2013-04-14Setting version to 0.2.2-devPetteri Aimonen2-2/+2
2013-04-14Publishing nanopb-0.2.1Petteri Aimonen2-2/+2
2013-04-14Update changelogPetteri Aimonen1-0/+17
2013-04-14Handle unterminated strings when encoding.Petteri Aimonen3-5/+19
If the null terminator is not present, string will be limited to the data size of the field. If you are still using the pb_enc_string (deprecated since 0.1.3) from callbacks, now would be an excellent time to stop. The pb_field_t for the callback will not contain proper data_size. Use pb_encode_string() instead. Update issue 68 Status: FixedInGit
2013-04-14Fix bug with empty strings in repeated string callbacks.Petteri Aimonen4-2/+23
Fix suggested by Henrik Carlgren. Added also unit test for the bug. Update issue 73 Status: FixedInGit
2013-04-08Avoid maybe-uninitialized warningPetteri Aimonen1-4/+6
Patch from dch.
2013-04-08No need to include stdbool.h separatelydch2-2/+0
2013-04-08__pragma keyword is only supported by recent Microsoft compilersdch1-1/+1
2013-04-02Do not generate has_ fields for callback fields.Petteri Aimonen1-1/+1
The arg field can be used to store the field presence from inside the callback. Furthermore, having the has_ field for encoding callbacks would be more annoying than useful. Update issue 70 Status: FixedInGit
2013-04-02Change the callback function to use void**.Petteri Aimonen11-30/+58
NOTE: This change breaks backwards-compatibility by default. If you have old callback functions, you can define PB_OLD_CALLBACK_STYLE to retain the old behaviour. If you want to convert your old callbacks to new signature, you need to do the following: 1) Change decode callback argument to void **arg and encode callback argument to void * const *arg. 2) Change any reference to arg into *arg. The rationale for making the new behaviour the default is that it simplifies the common case of "allocate some memory in decode callback". Update issue 69 Status: FixedInGit
2013-03-13Fix warning on clang.Petteri Aimonen1-1/+1
Update issue 67 Status: FixedInGit
2013-03-13Add support for packed structures on IAR and MSVC.Petteri Aimonen2-4/+29
Update issue 66 Status: FixedInGit
2013-03-09Make the generator options accept a file name in addition to format string.Petteri Aimonen1-2/+10
2013-03-09Add PB_SYSTEM_HEADER compile time option.Petteri Aimonen3-2/+5
This allows replacing the C99 standard include file names with a single system-specific file. It should provide all the necessary system functions (typedefs, memset, memcpy, strlen). Update issue 62 Status: FixedInGit
2013-03-09Rename pb_field_iterator_t field 'current' to 'pos'.Petteri Aimonen1-38/+38
This avoids a name clash when compiling as Linux kernel module. Update issue 60 Status: FixedInGit
2013-03-09Implement error message support for the encoder side.Petteri Aimonen5-15/+41
Update issue 7 Status: FixedInGit
2013-03-09alltypes.proto no longer needs to include nanopb.protoPetteri Aimonen1-2/+0
2013-03-09Switch alltypes.proto to use the new .options file mechanism.Petteri Aimonen2-23/+26
2013-03-09Add simple support for separate options file.Petteri Aimonen2-33/+87
Update issue 12 Still needs documentation.
2013-03-09Fix additional bug with empty message types.Petteri Aimonen1-0/+3
pb_field_next() would access past the fields array.
2013-03-09Add option to run the tests with mudflap to detect pointer errors.Petteri Aimonen1-0/+8
2013-03-09Improve the fuzztest.Petteri Aimonen1-4/+4
Enable -fstack-protector-all to detect any stack smashing bugs. Also use test_decode3 for maximal vulnerable surface.
2013-03-09Fix error in backwards compatibility testcasePetteri Aimonen1-1/+1
2013-03-09Fix bug with decoding empty message types. Add test for the same.Petteri Aimonen4-1/+13
Note: the bug only applies to empty message types. Empty messages of non-empty message types are not affected. Update issue 65 Status: FixedInGit
2013-03-06Add a dummy field if struct would otherwise be empty.Petteri Aimonen1-0/+6
Update issue 64 Status: FixedInGit