Petr Sumbera wrote:
Hi,we are running Bash 3.2.38 on Solaris 10 where asprintf() isn't available. Thus code in snprintf.c is used. There is a problem with following command: bash -c 'printf "x%10.0fx\n" 123' x0000000123x Where correct output should be: x 123x It seems that '0' after '.' enables zero padding. Please see proposed patch bellow: --- bash-3.2.48/lib/sh/snprintf.c Tue Dec 12 12:10:18 2006 +++ bash-3.2.48/lib/sh/snprintf.c Thu Apr 12 08:55:44 2012 @@ -1277,6 +1277,8 @@ data->flags |= PF_ALTFORM; continue; case '0': + if (data->flags & PF_DOT) + continue; data->flags |= PF_ZEROPAD; data->pad = '0'; continue; The same code seems to be also in Bash 4.1 so I guess the problem is still there.
Same code is in bash-4.2.24, the latest currently
