aboutsummaryrefslogtreecommitdiffstats
path: root/rrlp-ephemeris/asn1c_patches/01_fix_per_encoding_dieter.diff
diff options
context:
space:
mode:
Diffstat (limited to 'rrlp-ephemeris/asn1c_patches/01_fix_per_encoding_dieter.diff')
-rw-r--r--rrlp-ephemeris/asn1c_patches/01_fix_per_encoding_dieter.diff17
1 files changed, 17 insertions, 0 deletions
diff --git a/rrlp-ephemeris/asn1c_patches/01_fix_per_encoding_dieter.diff b/rrlp-ephemeris/asn1c_patches/01_fix_per_encoding_dieter.diff
new file mode 100644
index 000000000..a09c20159
--- /dev/null
+++ b/rrlp-ephemeris/asn1c_patches/01_fix_per_encoding_dieter.diff
@@ -0,0 +1,17 @@
+Index: skeletons/per_support.c
+===================================================================
+--- skeletons/per_support.c (revision 1407)
++++ skeletons/per_support.c (working copy)
+@@ -336,7 +336,12 @@
+ buf[3] = bits;
+ else {
+ ASN_DEBUG("->[PER out split %d]", obits);
++#if 1 // Dieter
++ po->nboff -= obits; // undo incrementation from a few lines above
++ per_put_few_bits(po, bits >> (obits - 24), 24); // shift according to the rest of the bits
++#else
+ per_put_few_bits(po, bits >> 8, 24);
++#endif
+ per_put_few_bits(po, bits, obits - 24);
+ ASN_DEBUG("<-[PER out split %d]", obits);
+ }