]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Fix '\%o' for printf from coreutils
authorKacper Kornet <draenog@pld-linux.org>
Thu, 31 Oct 2013 11:51:32 +0000 (12:51 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 31 Oct 2013 17:24:33 +0000 (10:24 -0700)
The printf utility provided by coreutils when interpreting '\%o' format
does not recognize %o as formatting directive. For example
printf '\%o 0 returns \%o and warning: ignoring excess arguments,
starting with ‘0’, which results in failed tests in
t5309-pack-delta-cycles.sh. In most shells the test ends with success as
the printf is a builtin utility.

Fix it by using '\\%o' which is interpreted consistently in all versions
of printf.

Signed-off-by: Kacper Kornet <draenog@pld-linux.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/lib-pack.sh

index 7e8685b44c90047bff973bec61f046f6900637e5..b96e1254dd36821b4a390726c7aefb5286c243f3 100644 (file)
 # Print the big-endian 4-byte octal representation of $1
 uint32_octal () {
        n=$1
-       printf '\%o' $(($n / 16777216)); n=$((n % 16777216))
-       printf '\%o' $(($n /    65536)); n=$((n %    65536))
-       printf '\%o' $(($n /      256)); n=$((n %      256))
-       printf '\%o' $(($n           ));
+       printf '\\%o' $(($n / 16777216)); n=$((n % 16777216))
+       printf '\\%o' $(($n /    65536)); n=$((n %    65536))
+       printf '\\%o' $(($n /      256)); n=$((n %      256))
+       printf '\\%o' $(($n           ));
 }
 
 # Print the big-endian 4-byte binary representation of $1