Petteri Aimonen
314460c2a5
Clean up the comments in pb_encode.h and pb_decode.h
2013-07-06 15:55:15 +03:00
Petteri Aimonen
0ed3158560
Add section in pb.h for changing compilation settings.
...
Update issue 76
Status: FixedInGit
2013-07-06 15:27:31 +03:00
Petteri Aimonen
4b705bf64b
Add error message macros to API reference.
2013-07-06 15:25:42 +03:00
Petteri Aimonen
6e9e532927
Document the .options file usage.
...
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-06 13:49:47 +03:00
Petteri Aimonen
68dd0171bc
Switch the example project to use the new .options file
2013-07-06 13:01:21 +03:00
Petteri Aimonen
a1cec46b3e
Include the field tags in the generated .pb.h file.
...
Patch from Michael Haberler.
2013-06-03 22:46:19 +03:00
Petteri Aimonen
bfd7cb36b9
Setting version to 0.2.2-dev
2013-04-14 10:07:46 +03:00
Petteri Aimonen
ef741ea530
Publishing nanopb-0.2.1
nanopb-0.2.1
2013-04-14 10:06:47 +03:00
Petteri Aimonen
26b52b79ad
Update changelog
2013-04-14 10:04:46 +03:00
Petteri Aimonen
d2063ff0b6
Handle unterminated strings when encoding.
...
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-14 09:46:39 +03:00
Petteri Aimonen
9939910833
Fix bug with empty strings in repeated string callbacks.
...
Fix suggested by Henrik Carlgren. Added also unit test for the bug.
Update issue 73
Status: FixedInGit
2013-04-14 09:26:42 +03:00
Petteri Aimonen
6a02298584
Avoid maybe-uninitialized warning
...
Patch from dch.
2013-04-08 11:00:28 +03:00
dch
a968233777
No need to include stdbool.h separately
2013-04-08 10:56:23 +03:00
dch
710465a8e0
__pragma keyword is only supported by recent Microsoft compilers
2013-04-08 10:56:13 +03:00
Petteri Aimonen
384e686fe6
Do not generate has_ fields for callback fields.
...
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-02 20:01:31 +03:00
Petteri Aimonen
214b0eae8a
Change the callback function to use void**.
...
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-04-02 19:55:21 +03:00
Petteri Aimonen
6f3740f74e
Fix warning on clang.
...
Update issue 67
Status: FixedInGit
2013-03-13 15:34:12 +02:00
Petteri Aimonen
1396dce2ae
Add support for packed structures on IAR and MSVC.
...
Update issue 66
Status: FixedInGit
2013-03-13 15:22:00 +02:00
Petteri Aimonen
6468f23d23
Make the generator options accept a file name in addition to format string.
2013-03-09 23:03:09 +02:00
Petteri Aimonen
03e5393072
Add PB_SYSTEM_HEADER compile time option.
...
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-09 14:56:34 +02:00
Petteri Aimonen
d580b225e8
Rename pb_field_iterator_t field 'current' to 'pos'.
...
This avoids a name clash when compiling as Linux kernel module.
Update issue 60
Status: FixedInGit
2013-03-09 14:52:38 +02:00
Petteri Aimonen
0352647118
Implement error message support for the encoder side.
...
Update issue 7
Status: FixedInGit
2013-03-09 14:49:15 +02:00
Petteri Aimonen
9b6641ac64
alltypes.proto no longer needs to include nanopb.proto
2013-03-09 14:45:41 +02:00
Petteri Aimonen
5f3bf35e01
Switch alltypes.proto to use the new .options file mechanism.
2013-03-09 14:23:44 +02:00
Petteri Aimonen
6f8dbc73eb
Add simple support for separate options file.
...
Update issue 12
Still needs documentation.
2013-03-09 14:21:21 +02:00
Petteri Aimonen
e1b8a555f3
Fix additional bug with empty message types.
...
pb_field_next() would access past the fields array.
2013-03-09 13:12:09 +02:00
Petteri Aimonen
60109c0be1
Add option to run the tests with mudflap to detect pointer errors.
2013-03-09 13:09:14 +02:00
Petteri Aimonen
96d4016838
Improve the fuzztest.
...
Enable -fstack-protector-all to detect any stack smashing bugs. Also
use test_decode3 for maximal vulnerable surface.
2013-03-09 12:51:47 +02:00
Petteri Aimonen
a9c88f5570
Fix error in backwards compatibility testcase
2013-03-09 12:43:35 +02:00
Petteri Aimonen
d2e3c1ad93
Fix bug with decoding empty message types. Add test for the same.
...
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-09 12:35:07 +02:00
Petteri Aimonen
5522e02133
Add a dummy field if struct would otherwise be empty.
...
Update issue 64
Status: FixedInGit
2013-03-06 18:02:57 +02:00
Petteri Aimonen
64bf72d73d
Add generator option to configure #include directives.
...
This suits complex projects, where there are multiple interdependent .proto files
in various directories. Patch by Michael Haberler.
2013-03-04 19:27:42 +02:00
Petteri Aimonen
104710b26c
Setting version to 0.2.1-dev
2013-03-02 16:35:17 +02:00
Petteri Aimonen
c8e0732e6b
Publishing nanopb-0.2.0
nanopb-0.2.0
2013-03-02 16:32:54 +02:00
Petteri Aimonen
86ae2541e6
Update changelog
2013-03-02 16:32:15 +02:00
Petteri Aimonen
f8a143fdfe
Update documentation
2013-03-02 16:27:31 +02:00
Petteri Aimonen
0e3053894f
Add --extension option to generator.
...
Patch courtesy of Michael Haberler.
2013-02-28 16:42:34 +02:00
Pavel Ilin
57e81ca73b
Added CMake file for use in projects linking against nanopb.
2013-02-22 20:25:39 +02:00
Petteri Aimonen
5442e690f6
Merge branch 'dev-0.2'
2013-02-21 19:38:56 +02:00
Petteri Aimonen
80a2d33fa9
Move STATIC_ASSERTs to .pb.c file.
...
This way the .pb.h will remain cleaner and easier to read.
2013-02-21 19:35:20 +02:00
Petteri Aimonen
41f98343c8
Separate PB_HTYPE to PB_ATYPE and PB_HTYPE.
...
Also clean up the logic so that it is easier to implement more
allocation types in the future.
Update issue 53
Status: FixedInGit
2013-02-20 22:55:59 +02:00
Petteri Aimonen
69085d9387
Rename PB_HTYPE_ARRAY -> PB_HTYPE_REPEATED.
...
This is a more logical name in parallel with PB_HTYPE_REQUIRED and PB_HTYPE_OPTIONAL.
Warning: This breaks backwards-compatibility of generated .pb.c files.
You will have to regenerate the files and recompile.
2013-02-20 21:58:18 +02:00
Petteri Aimonen
258ba8335d
Reformat generated .pb.c files using macros.
...
This has the following advantages:
1) Easier to modify pb_field_t encoding
2) Simpler generator logic
3) Tidier looking, easier to read .pb.c files
Update issue 58
Status: FixedInGit
2013-02-17 00:10:47 +02:00
Petteri Aimonen
5b536d40a1
Setting version to 0.1.9.1-dev
2013-02-13 21:13:35 +02:00
Petteri Aimonen
4cc3372b03
Publishing nanopb-0.1.9
nanopb-0.1.9
2013-02-13 21:12:09 +02:00
Petteri Aimonen
9d3d7b5730
Add gitignore.
...
This is a bit bloated gitignore file. Having binaries
in a separate build directory would be cleaner, but I don't
bother to make that change now.
2013-02-11 22:03:14 +02:00
Petteri Aimonen
ec4a7a0cce
Replace pb_type_t enum with #defines.
...
See issue #57 .
2013-02-11 21:55:55 +02:00
Petteri Aimonen
c1a355b23e
Set version to 0.2.0-dev
2013-02-11 21:54:24 +02:00
Petteri Aimonen
22e0a78e5e
Update changelog
2013-02-07 18:06:42 +02:00
Petteri Aimonen
c1bd1a6ad3
Fix error message bugs with packed arrays.
...
Error messages were not propagated correctly with PB_HTYPE_ARRAY.
Error status (boolean return value) was correct.
Update issue 56
Status: FixedInGit
2013-02-07 17:56:52 +02:00