> Le 19 août 2021 à 10:07, Dagobert Michelsen <[email protected]> a écrit :
>
> Hi Akim,
>
> Am 19.08.2021 um 10:01 schrieb Akim Demaille <[email protected]>:
>> This is good: the input and the output are correct. So it's the test
>> suite's post processing which is wrong. I guess Perl does not behave the
>> expected way. Could you please give me the results (and out.1 and out.2) of:
>>
>> perl --version
>> perl -p -e 's{([\0\200\210\360\377])}{sprintf "\\x%02x", ord($1)}ge' <log
>> >out.1
>> perl -p -e 's{([\000\200\210\360\377])}{sprintf "\\x%02x", ord($1)}ge' <log
>> >out.2
>>
>> where log is the previous log file (from LC_ALL=C tests/bison
>> tests/testsuite.dir/004/input.y 2>log).
>
> Sure, I also added the respective output from the system shipped perl:
Thanks. Neither work as I expect. It seems that \0 does not work in char
classes. Could you please try this also?
perl -p -e 's{(\0|[\200\210\360\377])}{sprintf "\\x%02x", ord($1)}ge' <log
>out.3
Currently your output looks like this:
tests/testsuite.dir/004/input.y:1.11: error: invalid null character
1 | %header "\xf0\x80\x88"
| ^
the expected output should also show \x00:
1 | %header "\xf0\x00\x80\x88"
| ^