Browse Source

t0028: eliminate non-standard usage of printf

man 1p printf:
   In addition to the escape sequences shown in the Base Definitions
   volume of POSIX.1‐2008, Chapter 5, File Format Notation ('\\',
   '\a', '\b', '\f', '\n', '\r', '\t', '\v'), "\ddd", where ddd is a
   one, two, or three-digit octal number, shall be written as a byte
   with the numeric value specified by the octal number.

printf '\xfe\xff' is an extension of some shell.
Dash, a popular yet simple shell, do not implement this extension.

This wasn't caught by most people running the tests, even though
common shells like dash don't handle hex escapes, because their
systems don't trigger the NO_UTF16_BOM prereq. But systems with musl
libc do; when combined with dash, the test fails.

Correct it.

Signed-off-by: Doan Tran Cong Danh <congdanhqx@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Doan Tran Cong Danh 5 years ago committed by Junio C Hamano
parent
commit
99b2ba35f5
  1. 4
      t/t0028-working-tree-encoding.sh

4
t/t0028-working-tree-encoding.sh

@ -17,7 +17,7 @@ test_lazy_prereq NO_UTF32_BOM ' @@ -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 () { @@ -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
}

Loading…
Cancel
Save