Re: [PATCH 1/3] t0028: eliminate non-standard usage of printf
- From
brian m. carlson <sandals@crustytoothpaste.net>
- Date
- Oct 31, 2019, 19:50 UTC
- Message-ID
- <20191031195058.prp6cpx6ivf57lz7@camp.crustytoothpaste.net>
- In-Reply-To
- <20191031092618.29073-2-congdanhqx@gmail.com>
On 2019-10-31 at 09:26:16, Doan Tran Cong Danh wrote:
Show 22 quoted lines
> diff --git a/t/t0028-working-tree-encoding.sh b/t/t0028-working-tree-encoding.sh
> index 7aa0945d8d..bfc4fb9af5 100755
> --- a/t/t0028-working-tree-encoding.sh
> +++ b/t/t0028-working-tree-encoding.sh
> @@ -17,7 +17,7 @@ test_lazy_prereq NO_UTF32_BOM '
> write_utf16 () {
> if test_have_prereq NO_UTF16_BOM
> then
> - printf '\xfe\xff'
> + printf '\376\377'
> fi &&
> iconv -f UTF-8 -t UTF-16
> }
> @@ -25,7 +25,7 @@ write_utf16 () {
> write_utf32 () {
> if test_have_prereq NO_UTF32_BOM
> then
> - printf '\x00\x00\xfe\xff'
> + printf '\0\0\376\377'
> fi &&
> iconv -f UTF-8 -t UTF-32
> }Yeah, this patch looks obviously correct. For some reason, I knew that printf(1) didn't accept hex sequences and yet I still wrote them.
As Peff pointed out, this is because we only trigger this case on musl; musl is the only known implementation of iconv that produces big-endian data without a BOM for UTF-16 and UTF-32.
-- brian m. carlson: Houston, Texas, US OpenPGP: https://keybase.io/bk2204