Merged 0003-Fixed-format-specifiers.patch by Matt Kern.
authorPetteri Aimonen <jpa@npb.mail.kapsi.fi>
Wed, 30 Nov 2011 15:01:59 +0000 (15:01 +0000)
committerPetteri Aimonen <jpa@npb.mail.kapsi.fi>
Wed, 30 Nov 2011 15:01:59 +0000 (15:01 +0000)
Fixes cross-platform issues with the length modifier in printf specifiers,
most importantly %d -> %ld.

git-svn-id: https://svn.kapsi.fi/jpa/nanopb@1020 e3a754e5-d11d-0410-8d38-ebb782a927b9

tests/test_decode1.c
tests/test_decode_callbacks.c

index 3f02745..b412ea8 100644 (file)
@@ -23,7 +23,7 @@ bool print_person(pb_istream_t *stream)
     /* Now the decoding is done, rest is just to print stuff out. */
 
     printf("name: \"%s\"\n", person.name);
-    printf("id: %d\n", person.id);
+    printf("id: %ld\n", (long)person.id);
     
     if (person.has_email)
         printf("email: \"%s\"\n", person.email);
index 6c0072d..aaf4cdc 100644 (file)
@@ -30,7 +30,7 @@ bool print_int32(pb_istream_t *stream, const pb_field_t *field, void *arg)
     if (!pb_decode_varint(stream, &value))
         return false;
     
-    printf((char*)arg, (int32_t)value);
+    printf((char*)arg, (long)value);
     return true;
 }
 
@@ -40,7 +40,7 @@ bool print_fixed32(pb_istream_t *stream, const pb_field_t *field, void *arg)
     if (!pb_dec_fixed32(stream, NULL, &value))
         return false;
     
-    printf((char*)arg, value);
+    printf((char*)arg, (long)value);
     return true;
 }
 
@@ -50,7 +50,7 @@ bool print_fixed64(pb_istream_t *stream, const pb_field_t *field, void *arg)
     if (!pb_dec_fixed64(stream, NULL, &value))
         return false;
     
-    printf((char*)arg, value);
+    printf((char*)arg, (long long)value);
     return true;
 }
 
@@ -69,18 +69,18 @@ int main()
     testmessage.submsg.stringvalue.funcs.decode = &print_string;
     testmessage.submsg.stringvalue.arg = "submsg {\n  stringvalue: \"%s\"\n";
     testmessage.submsg.int32value.funcs.decode = &print_int32;
-    testmessage.submsg.int32value.arg = "  int32value: %d\n";
+    testmessage.submsg.int32value.arg = "  int32value: %ld\n";
     testmessage.submsg.fixed32value.funcs.decode = &print_fixed32;
-    testmessage.submsg.fixed32value.arg = "  fixed32value: %d\n";
+    testmessage.submsg.fixed32value.arg = "  fixed32value: %ld\n";
     testmessage.submsg.fixed64value.funcs.decode = &print_fixed64;
     testmessage.submsg.fixed64value.arg = "  fixed64value: %lld\n}\n";
     
     testmessage.stringvalue.funcs.decode = &print_string;
     testmessage.stringvalue.arg = "stringvalue: \"%s\"\n";
     testmessage.int32value.funcs.decode = &print_int32;
-    testmessage.int32value.arg = "int32value: %d\n";
+    testmessage.int32value.arg = "int32value: %ld\n";
     testmessage.fixed32value.funcs.decode = &print_fixed32;
-    testmessage.fixed32value.arg = "fixed32value: %d\n";
+    testmessage.fixed32value.arg = "fixed32value: %ld\n";
     testmessage.fixed64value.funcs.decode = &print_fixed64;
     testmessage.fixed64value.arg = "fixed64value: %lld\n";