diff --git a/lib/c/labcomm_encoder.c b/lib/c/labcomm_encoder.c index ff38dfed89fb691ddfa317288c0b60539363f4b5..f9125055274fed7fa03e37ac553cc470608117e7 100644 --- a/lib/c/labcomm_encoder.c +++ b/lib/c/labcomm_encoder.c @@ -216,7 +216,7 @@ free_encoder: #endif -int labcomm_internal_encoder_register( +static int labcomm_internal_encoder_reg_type( struct labcomm_encoder *e, struct labcomm_signature *signature, labcomm_encoder_function encode) @@ -257,6 +257,18 @@ out: return result; } +int labcomm_internal_encoder_register( + struct labcomm_encoder *e, + struct labcomm_signature *signature, + labcomm_encoder_function encode) +{ + if(e->context_type == LABCOMM_PRAGMA && e->context){ + e=((struct pragma_packet_builder *)e->context)->parent; + } + return labcomm_internal_encoder_reg_type( + e, signature, encode); +} + int labcomm_internal_encode( struct labcomm_encoder *e, struct labcomm_signature *signature,