[
https://issues.apache.org/jira/browse/DAFFODIL-2703?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17552833#comment-17552833
]
Steve Lawrence commented on DAFFODIL-2703:
------------------------------------------
I have an explanation for the %#xNN; issue, and I think it is behaving as
expected.
The %#xNN syntax specifies a code point in the dfdl:encoding. But both FF and
F0 are not valid in the US-ASCII encoding define in the TDML file and so are
replaced with the replacement character ('?' or 0x3F). This explains the
unexpected results and why both FF and 0F had the same results--both were
actually using 0x3F a the fill byte.
If you sent encoding="ISO-8859-1", where all code points are valid, then it
works exactly the same as the #rNN syntax and works in runtime1. I also ensures
that using #F0 in the US-ASCII encoding does give the expected results, with
the assumption that 0x3F is used as the fill byte.
So I think the %#xNN; syntax and runtime1 is acting as expected, and this is
just a bug in runtime2.
> Unaligned RightFill does not unparse correctly
> ----------------------------------------------
>
> Key: DAFFODIL-2703
> URL: https://issues.apache.org/jira/browse/DAFFODIL-2703
> Project: Daffodil
> Issue Type: Bug
> Components: Back End, Back End C-Generator
> Affects Versions: 3.3.0
> Reporter: Steve Lawrence
> Priority: Major
> Attachments: unalignedRightFill.tdml, unalignedRightFills.tdml
>
>
> See the attached unalignedRightFill.tdml file for reproducible tests.
> Data is a single byte. Only the most significant bit is actual data. The
> remaining 7 bits are RightFill region using a fillByte value of 0xF0. So the
> data should always unparse to X111 0000, where the value of X comes from the
> infoset.
> Note that runtime1 and runtime2 have different behaviors, neither of which I
> think is correct:
>
>
> *unalignedRightFill_01* (bit from infoset is 1)
> should unparse to 0xF0 (1111 0000)
> runtime1 unparses to 0xBF (1011 1111)
> runtime2 unparses to 0x9F (1001 1111)
>
> *unalignedRightFill_02* (bit from infoset is 0)
> should unparse to 0x70 (0111 0000)
> runtime1 unaprses to 0x3F (0011 1111)
> runtime2 unparses to 0x1F (0001 1111)
--
This message was sent by Atlassian Jira
(v8.20.7#820007)